# LispTemplate **Repository Path**: xian154563/lisp-template ## Basic Information - **Project Name**: LispTemplate - **Description**: DXF图形转参数化Lisp模板开发工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-05 - **Last Updated**: 2026-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LispTemplate > ⚠️ **项目已暂停研究**:自动从DXF逆向参数化Lisp模板这条路验证下来意义不大。 > > 原因:静态DXF只包含坐标,没有设计意图,自动生成的参数化代码(等比缩放)可读性差、人难以在此基础上修改,效率远不如人直接手写或在已有模板上改。 > > 代码保留作为Lisp解释器和画布渲染的参考,不再继续开发。 参数化AutoLISP模板开发IDE,从零写参数化.lsp模板的专用工具。 ## 定位 LispTemplate 不是"DXF转Lisp转换器",而是帮助工程师**从零编写参数化AutoLISP模板**的开发环境: - 左侧参数面板自动识别代码中的 `;;; 参数:` 定义,改值实时预览 - 右侧画布实时渲染Lisp代码执行结果,不用开AutoCAD - 常用图元片段一键插入(直线/圆/弧/矩形/阵列/getreal/getpoint等) - 可加载DXF作为参考底图 - 代码编辑器实时自动预览,600ms防抖 这和DxfForge的.djt模板向导定位完全不同——DxfForge做几何交互定义规则,LispTemplate产出纯AutoCAD原生.lsp文件,复制到任何AutoCAD就能用。 ## 快速开始 1. 点击「新建模板」自动生成参数化模板骨架 2. 在代码中用注释定义参数: ```lisp ;;; 参数: W=800 "宽度" ;;; 参数: H=100 "高度" ``` 3. 左侧自动出现参数输入框,修改数值右画布实时预览 4. 点左侧「插入图元片段」快速插入常用代码,在基础上修改坐标 5. 「保存lsp」生成可直接加载到AutoCAD的.lsp文件 ## 参数定义格式 ```lisp ;;; 参数: 变量名=默认值 "中文标签" ``` 例如: ```lisp ;;; 参数: W=806 "成型宽" ;;; 参数: H=120 "梁高" ;;; 参数: R=15 "孔半径" ``` 定义后: - 左侧面板自动生成输入框 - 预览时自动插入`(setq W 当前值)`覆盖默认值 - 生成的.lsp中保留`(getreal ...)`让用户在AutoCAD命令行输入,带默认值提示 ## 生成的标准模板骨架 新建模板自动生成的骨架就是AutoCAD原生参数化程序的标准写法: ```lisp (defun c:MyTemplate ( / W H p1) (setvar "CMDECHO" 0) (setvar "OSMODE" 0) (setq W (getreal (strcat "\n宽度 <" (rtos W) ">: "))) (setq H (getreal (strcat "\n高度 <" (rtos H) ">: "))) (setq p1 (getpoint "\n插入点: ")) ; ====== 在这里用p1/W/H绘制图形 ====== (command "_.RECTANG" p1 (list (+ (car p1) W) (+ (cadr p1) H))) (setvar "OSMODE" _old_osmode) (princ) ) ``` ## 编译依赖 本项目依赖 DxfGeoLite 几何内核,路径为 `../开源/DxfGeoLite/DxfGeoLite/DxfGeoLite.csproj`。 使用 .NET 8 SDK 编译: ```bash dotnet build LispTemplate.csproj -c Debug ```