# @lisp 扩展 **Repository Path**: atlisp/atlispext ## Basic Information - **Project Name**: @lisp 扩展 - **Description**: @lisp 的 vscode 扩展工具包,支持 autolisp/visuallisp dxf dcl 的 语法提示和自动完成。 简繁互换等。 autolisp基本函数、@lisp函数、系统变量的悬停提示与自动补全; vla-get-* vla-put-* vla-* 系列属性和方法 支持悬停提示与自动补全; DXF 查询。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: main - **Homepage**: https://atlisp.cn - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-12-23 - **Last Updated**: 2025-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: VSCode, AutoLisp ## README # lisp 语言服务 在设置中找到 @lisp 小节,并打勾启用 Atlisp > lsp :enabled 。 本扩展将会自动下载并运行 lisp 语言服务辅助功能。 ## 代码诊断 在设置中找到 @lisp 小节,并打勾启用 Atlisp > Enable Diagnostics(默认打开) 就可以实时进行代码静态分析,如括号是否匹配,变量是否赋初始值等。 ## REPL 在下方的 REPL 中,可以输入lisp表达式显示求值结果。 # 开发环境说明 使用 vscode 进行 autolisp/visuallisp的开发,需要 AutoCAD2021以上的版本。且 ACAD 中的环境变量 LISPSYS 的值须为 1 或 2 。 建议 将 LISPSYS 的值设置为 2 ,这样编译出来的 fas 可以运行在低版本的CAD中,即向下兼容。如果 LISPSYS 的值为 1 ,则编译出来的fas 文件不向下兼容。 lsp 源文件的编码 建议采用 UTF-8 。如果采用 GB2312 / ANSI ,在调试时会因为编码问题出现括号不匹配等无法加载到CAD的问题。 # @lisp函数库 @lisp 函数库是一个开源、共享、可云端加载的 autolisp 函数库。由像您一样热爱开源共享的爱好者所构筑并维护。可依据开放许可协议自由使用。 @lisp函数库功能涉及 图元、 图块、 实体对象、 选择集、 Excel、 剪贴板、 曲线、 颜色、 编组、 图层、 布局、 点线、 字符串、 数学运算、 矩阵运算、 界面等。更多内容持续迭代中. @lisp 可运行于 AutoCAD,浩辰CAD,中望CAD 以及 BricsCAD等多种兼容 autolisp/visuallisp 的CAD平台。 # @lisp 扩展 ## 语法提示与自动补全 Autolisp: - autolisp基本函数 支持悬停提示与自动补全 - vla-get-* vla-put-* vla-* 系列属性和方法 支持悬停提示与自动补全 - vlr 系列反应器函数 支持悬停提示与自动补全 - @lisp 函数 支持悬停提示与自动补全 - 系统变量 支持悬停提示与自动补全 - DXF 查询,输入dxf+数字,或 dxf+图元名,如 dxf-3 , dxf8 ,dxfcircle 可查看 dxf 组码说明,并输入组码点对。 输入 dxfcommon 可查看图元通用组码 - 用户自定义代码片段, [样例](https://gitee.com/atlisp/atlisp-docs/blob/main/aibot/snippets.custom.lsp) 用户自定义代码片段样例: ```lisp (exit) ;;; 说明: ;;; 4个分号开头的行是每个代码片段的开始,分号后为代码片段的key, ;;; 代码片段内容为当前key到下一个key之间的内容 ;;; 代码片段中的$(n:*)或$n表示光标在片段中跳转位置 ;;;;IFP ;;; if + progn (if (${1:TEST}) (progn ;你的程序 $2 ) ) ``` DCL: - DCL 框件与属性 ## 大纲视图 - 定义与引用快速定位。 ## Formatter - AutoLisp 和 DCL 代码缩进格式化 ## Debugger - 支持 AutoCAD 2021+ 和 浩辰CAD 2021+ 的调试。浩辰不支持调试控制台的通信,慎用。 ## 简繁互转 - 支持 lsp 和 DCL 文件的简繁互转,支持整个文件转换或所选区域转换 ## @lisp应用包管理 - 在 View @lisp项目中,当文件夹下存在 pkg.lsp 文件时,这个文件夹是 @lisp应用包。这个文件夹将显示 (@) 图标。 - 点击文件夹将打开新的 vscode 并打开点击的文件夹作为工作区 - TODO: 右键 @lisp应用包文件夹可以编译和发布应用包(开发中) ## 配色与主题 - 提供明暗两个配色主题 - 支持 基本函数、对象属性、方法,系统变量,只读变量(作为参数的变量) ,@lisp库函数 的分色显示。 # 在 lsp 中调用@lisp函数 为了使您的 CAD 运行环境支持 @lisp 函数。需要在 lsp 头部 或 函数定义体的头部添加 @lisp函数库的加载代码。 示例: ```commonlisp (defun foobar () ;; 加载@lisp函数,键入 load-@lib 直接得到下行。 (progn(vl-load-com)(setq s strcat h "http" o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://atlisp.""org/@"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText)))) ;; 以下的 foobar 函数定义体中,就可以直接使用@lisp函数了,我们以 ui:confirm1 为例。 (ui:confirm1 '("我是@lisp函数库。" "你用或不用," "我都在这里。" ) "用-不用") ) ``` 安装完成后,即可直接调用 @lisp函数库和管理安装 @lisp应用。 # 安装 @lisp 到 CAD 为了使您的 CAD 运行环境支持 @lisp 函数。需要在 CAD 中安装 @lisp的加载代码。 将以下代码复制到 CAD 命令行内,回车即可开始安装。 (在代码行里用鼠标连续三击全选,然后右键复制或Ctrl+C 。到CAD命令行内,右键粘贴或Ctrl+V) **经测试在 VScode 的扩展查看器中用鼠标右键无法成功复制,需按 Ctrl+C 才能成功复制。** ```commonlisp (progn(vl-load-com)(setq s strcat h "http" o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://atlisp.""org/@"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText)))) ``` 安装完成后,即可直接调用 @lisp函数库和管理安装 @lisp应用。 # Social ## 社区驱动 @lisp 函数库是一个多元化的信息分享社区,它充满激情,并且每天都在成长。我们的参与者包括 lisp 程序共享爱好者、lisp开发编程人员、CAD从业人员、服务器维护工程师,以及其他很多各界人士。 ## 开放代码 @lisp 函数库是开源代码,只要您表明使用了 @lisp 函数库并承认其贡献者的工作,您就可以使用 @lisp函数库。如果您改变或者使用这些代码,您必须按照相同的版权协议发布结果。@lisp函数库 遵循 MIT 开源协议。 ## 法律 此网站和很多其他相关服务已由 @lisp-CAD应用云 正式代表社群运营。使用所有由 @lisp-CAD应用云 运营的服务均需符合我们的可接受使用方针和我们的隐私政策 如果您有许可协议、版权或其他法律问题,请联络@lisp-CAD应用云。 # 更多信息 For more information 开发初期,持续更新中。有问题请及时反馈,万分感谢。 * 扩展使用问题交流区: https://gitee.com/atlisp/atlispext/issues * QQ群:[点我加群 @lisp:CAD应用云](https://qm.qq.com/cgi-bin/qm/qr?k=bgbBl2QIdHP0pOgRjvxddH28A3SXmYxv&jump_from=webapi&authKey=FdfoaEMbQbJ7Fg2QVCZNshGlbB7W5wKeRX63oAzB3k1NohvbfWfEfSyc1AkgdATS) ![@lisp:CAD应用云](https://atlisp.cn/static/qr-code-qq.png) * 微信公众号: ![CAD应用云](https://atlisp.cn/static/img/weixin-atlisp.png) * https://atlisp.cn * http://atlisp.org * https://gitee.com/atlisp * https://github.com/atlisp-org # 特别感谢 - remember