CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2023 开发者帮助

编辑 AutoLISP 文件 (AutoLISP/VS Code)

2024-5-18 18:52| 发布者: admin| 查看: 138| 评论: 0|原作者: admin|来自: AutoCAD

编辑 AutoLISP 文件 (AutoLISP/VS Code)

AutoCAD AutoLISP 扩展模块提供了多种功能,可以更轻松地编写 AutoLISP 程序和 DCL 文件,例如 IntelliSense 和代码段。

在本主题中,您可以了解:

  • 使用 IntelliSense 输入函数名称
  • 访问 AutoLISP 函数或 DCL 磁贴/属性的帮助
  • 添加注释
  • 转到函数或变量的定义
  • 插入区域
  • 插入代码片段

使用 IntelliSense 输入函数名称

在打开的 AutoLISP 源 (LSP) 或 DCL 文件的编辑器窗口中键入内容时,AutoCAD AutoLISP 扩展模块将显示与键入的字符匹配的建议函数和代码段的列表。键入的字符越多,列表中显示的项目就越少。在列表中选择一个项目以完成函数名称或使用代码片段,也可以使用箭头键突出显示要使用的项目,然后按 Tab 完成该项目。

访问 AutoLISP 函数或 DCL 磁贴/属性的帮助

可以从 VS Code 的编辑器窗口中按上下文访问内置 AutoLISP 函数或 DCL 磁贴/属性的帮助,而无需直接打开并浏览联机帮助。您可以通过在包含 AutoLISP 源 (LSP) 或 DCL 文件的编辑器窗口中单击或突出显示其名称,然后右键单击并选择“打开联机帮助”来打开 AutoLISP 函数或 DCL 磁贴/属性的帮助。

注意:从 AutoCAD AutoLISP 扩展模块 1.4.0 版开始,此功能可用。

添加注释

AutoLISP 源 (LSP) 或 DCL 文件支持行注释和块注释。注释可以手动添加到任何 AutoLISP 或 DCL 语句中,但 VS Code 支持在选定的 AutoLISP 或 DCL 语句中添加和删除行和块注释的功能。

  • AutoLISP 行注释 – 以一个或多个分号字符开头。同一行和分号右侧的函数将被忽略且不执行。VS Code 在向所选语句添加行注释时添加单个分号字符。
    ; Returns a CDATE value that includes milliseconds based on release
    ; Usage: (CDate)
    ; Replaces (rtos (getvar "CDATE") 2 8)
  • AutoLISP 块注释 – 以字符序列开始,以字符序列结束。字符序列之间的所有语句都将被忽略且不执行。;||;
    ;| Returns a CDATE value that includes milliseconds based on release
          Usage: (CDate)
          Replaces (rtos (getvar "CDATE") 2 8) |;
  • DCL 行注释 – 以一个或多个正斜杠字符开头。同一行和正斜杠右侧的定义将被忽略,并且不会计算。VS Code 在向所选定义添加行注释时添加两个正斜杠字符。
    // defines the Spacing Between Tiles edit box
    // :edit_box {
    //        label = "&Spacing between tiles";
    //        key = "gp_spac";
    //        edit_width = 6;
    // }
  • DCL 块注释 – 以字符序列开始,以字符序列结束。字符序列之间的所有定义都将被忽略且不计算。/**/
    /* defines the Spacing Between Tiles edit box
    :edit_box {
           label = "&Spacing between tiles";
           key = "gp_spac";
           edit_width = 6;
    } */

转到函数或变量的定义

VS Code 可以在当前编辑器窗口中搜索打开的 AutoLISP 源 (LSP) 文件中使用的用户定义函数或变量的定义。搜索函数或变量的定义时,VS Code 会搜索:

  • 当前和所有打开的LSP文件
  • “资源管理器”视图中打开的文件夹或工作区中的 LSP 文件
  • 在 AutoLISP 项目管理器中打开的项目中的 LSP 文件

用户定义函数或变量的定义定义为:

功能

函数的定义是通过使用函数来定义的。defun

(defun xxx ())
变量

变量的定义由

  • 变量名称在函数的第二个元素(或原子)中的位置defun
  • 该功能的使用setq
(defun xxx ( / varname))

(setq varname val)

首先在 AutoLISP 语句或代码块的局部作用域中查找变量定义,然后在全局作用域中查找变量定义。defun

可以通过在编辑器窗口中单击或突出显示用户定义函数或变量的名称,然后右键单击并选择“转到定义”或按 F12 来转到用户定义函数或变量的定义。如果找到定义,则焦点将移动到找到定义的位置。还可以找到多个定义,如果是这样,系统将提示您移动到应移动定义焦点的哪个实例。

注意:从 AutoCAD AutoLISP 扩展模块 1.4.0 版开始,此功能可用。

插入区域

VS Code 根据跨多行的 AutoLISP 语句或 DCL 定义自动定义所谓的区域。可以展开或折叠区域,以最大程度地减少编辑器窗口中当前显示的代码语句数。还可以插入用户定义的区域,以将多个语句和区域(也称为子区域)分组到单个可折叠区域中。

用户定义的区域以注释开头,以注释结束。由于这些是注释,因此可以在每个注释之后添加描述性文本,以解释该区域中语句和定义的使用。;#region;#endregion

扩展区域
区域折叠
注意:从 AutoCAD AutoLISP 扩展模块 1.4.0 版开始,此功能可用。

插入代码片段

AutoCAD AutoLISP 扩展模块支持小型代码块或示例(称为代码段)。代码片段可用于快速为常用函数或复杂代码块添加必要的语法。例如,AutoCAD AutoLISP 扩展模块有一个名为 which 的代码段,该代码段是 的缩写,它包含一个带有嵌套语句的语句。在代码编辑器中键入 ifp 并按 Tab 键可以插入代码片段。ifpIf… Prognifprogn

代码片段是 VS Code 中自动完成功能的一部分,以方形图标为前缀,而不是用于指示 AutoLISP 函数名称的扳手。



AutoCAD AutoLISP Extension 代码附带 60+ 代码段,以下是 AutoCAD AutoLISP Extension 附带的一些代码段:

getlayer
(setq layer (cdr (assoc 8 entname)))
ifp
(if (testexpr)
  (progn
    (thenexpr)
  )
)
line
(command "_line" "pt1" "pt2" "")
open
(setq fp "fname.txt")
(setq f (open fp "mode"))
 
(close f)
while
(while testexpr [expr ...])

AutoCAD AutoLISP Extension 的代码段存储在名为 snippets.json 的文件中,位于以下位置之一下:

  • Windows%USERPROFILE%\.vscode\extensions\autodesk.autolispext-n.n.n\snippets
  • Mac 操作系统~/.vscode/extensions/autodesk.autolispext-n.n.n/snippets
注: 前面路径中的 n.n.n 是占位符,AutoCAD AutoLISP 扩展模块的实际版本将随着扩展模块的更新而随时间而变化。

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-3-5 17:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部