
Autocad Mcp
AutoCAD LT AutoLISP MCP 服务器
概述
AutoCAD LT AutoLISP MCP 服务器
该 MCP 服务器通过生成和执行 AutoLISP 代码,实现了对 AutoCAD LT 2024/2025 的自然语言控制。它将 Claude 或其他 LLM 客户端与 AutoCAD LT 连接起来,通过对话式提示创建工程图纸。
功能
- 在 AutoCAD LT 中生成并执行 AutoLISP 代码
- 创建基本形状(线条、圆、多段线、文本)
- 处理带属性管理的块插入
- 支持通过命名连接点在块之间绘制连线
- 按顺序排列多个块,并自定义间距
- 提供强大的图层创建与管理功能
- 为技术图纸创建填充和标注
- 支持实体旋转与操作
- 支持直接执行自定义 AutoLISP 代码
- 通过自然语言实现文本到 CAD 的功能
前置条件
- AutoCAD LT 2024 或更高版本(支持 AutoLISP)
- Python 3.10 或更高版本
- Claude Desktop 或其他 MCP 客户端应用程序
设置说明
-
安装依赖:
git clone https://github.com/hvkshetry/autocad-mcp.git cd autocad-mcp python -m venv venv venv\Scripts\activate pip install -r requirements.txt -
配置 Claude Desktop:
- 打开 Claude Desktop 设置
- 编辑配置文件以包含:
json{ "mcpServers": { "autocad-lisp": { "command": "path\\to\\autocad-mcp\\venv\\Scripts\\python.exe", "args": ["path\\to\\autocad-mcp\\server_lisp.py"] } } }- 或者,您可以使用附带的
claude_desktop_config_lisp.json作为模板
-
启动 AutoCAD LT:
- 启动 AutoCAD LT
- 创建或打开一个图纸
- 确保窗口标题包含 "AutoCAD LT" 和 "Drawing"
-
启动服务器:
- 以管理员身份运行
start_lisp_server.bat - 如果遇到 LISP 加载问题,可以使用
restart_fixed_server.bat
- 以管理员身份运行
-
测试连接:
- 运行
test_connection.bat以验证功能是否正常
- 运行
可用工具
get_autocad_status: 检查与 AutoCAD 的连接create_line: 在两点之间绘制一条线create_circle: 创建具有定义中心和半径的圆create_text: 在指定坐标处添加文本标签insert_block: 插入带有可选 ID 属性、比例和旋转的块connect_blocks: 通过命名连接点在两个块之间绘制连线label_block: 为块添加文本标签arrange_blocks: 按顺序排列多个块,并自定义间距create_polyline: 根据一系列点创建多段线rotate_entity_by_id: 围绕基点旋转实体create_linear_dimension: 在两点之间添加线性标注create_hatch: 为闭合多段线区域添加填充set_layer_properties: 创建或修改图层,包括颜色、线型、线宽等execute_custom_autolisp: 直接运行自定义 AutoLISP 代码
LISP 库结构
服务器加载多个 LISP 文件以实现功能:
- error_handling.lsp: 基础错误处理和验证函数
- basic_shapes.lsp: 创建线条、圆和文本的核心函数
- drafting_helpers.lsp: 用于块操作、图层管理和连接元素的函数
- block_id_helpers.lsp: 通过 ID 属性查找和操作块的函数
- selection_and_file.lsp: 选择集管理和文件操作
- advanced_geometry.lsp: 扩展几何创建和操作
- annotation_helpers.lsp: 文本和标注创建工具
- layout_management.lsp: 用于管理布局和视口的函数
使用示例
-
基本绘图操作:
- "从坐标 (100,100) 到 (200,150) 绘制一条线"
- "在 (150,150) 创建一个半径为 25 的圆"
- "在位置 (100,200) 添加文本 'System Title'"
- "创建一个多段线,点位于 (10,10), (50,50), (100,10),并闭合它"
-
块操作:
- "在位置 (100,100) 插入名为 'PUMP' 的块,ID 为 'P-101'"
- "将 ID 为 'P-101' 的块标记为 'Feed Pump'"
- "在 'Piping' 图层上将块 'P-101' 连接到 'V-201'"
- "围绕插入点将块 'P-101' 旋转 45 度"
-
多块操作:
- "从 (50,100) 开始向右排列块 'PUMP', 'VALVE', 和 'TANK',间距为 30 单位"
- "创建名为 'Equipment' 的图层,颜色为 'yellow'"
- "在两个块之间添加标注以显示距离"
-
高级操作:
- "创建一个闭合多段线并在其中添加 ANSI31 填充"
- "创建一个标注以显示圆的直径"
- "将当前图层设置为 'Dimensions',颜色为 'cyan',线宽为 '0.30mm'"
-
自定义 AutoLISP:
- "执行此 AutoLISP 代码以创建自定义函数: (defun c:my-function ...)"
限制
- 需要 AutoCAD LT 2024 或更高版本(支持 AutoLISP)
- 依赖窗口焦点和键盘模拟来执行命令
- 用户在发送命令时不应与 AutoCAD 交互
- 仅限于 2D 绘图操作
- 块的连接点使用预定义的连接点名称(CONN_DEFAULT1, CONN_DEFAULT2)
- 图层颜色必须指定为字符串(例如,"red", "yellow", "120")
故障排除
请参阅 TROUBLESHOOTING.md 文件以获取常见问题及其解决方案。常见问题包括:
- LISP 文件加载失败
- AutoCAD 窗口焦点问题
- 函数取消错误
- 服务器与 AutoCAD 之间的通信问题
许可证
MIT
贡献
欢迎贡献!请随时提交 Pull Request。
