返回市场
自动cad-mcp

自动cad-mcp

作者:puran-water125 星标更新:2025-05-31

项目介绍

AutoCAD LT AutoLISP MCP Server

此MCP服务器通过自动生成并执行AutoLISP代码,实现了对AutoCAD LT 2024/2025的自然语言控制。它连接了Claude或其他LLM客户端与AutoCAD LT,通过对话提示创建工程图纸、P&ID图以及技术文档。

🚀 主要特性

核心绘图操作

  • 在AutoCAD LT 2024+中生成并执行AutoLISP代码
  • 创建基本形状(线、圆、多段线、文本)
  • 处理带综合属性管理的块插入
  • 支持高级几何图形(弧、椭圆、矩形)
  • 提供强大的图层创建和管理
  • 创建填充和尺寸标注以制作技术图纸

P&ID和工艺工程(新)

  • CTO库集成:完全访问CAD Tools Online P&ID符号库(超过600个ISA 5.1-2009标准符号)
  • 智能属性处理:设备清单和阀门列表的适当块属性
  • 工艺设备:泵、阀门、储罐、仪表及工艺设备
  • 标准注释:设备标签、描述和管线编号
  • 图层管理:行业标准P&ID图层组织

性能优化

  • 快速模式:最小延迟优化执行(速度提升80%)
  • 批量操作:单次操作创建多个对象
  • 剪贴板集成:高效执行大型脚本
  • 智能加载:仅加载必要的LISP文件以加快启动速度

📋 先决条件

  • AutoCAD LT 2024或更新版本(需支持AutoLISP)
  • Python 3.10或更高版本
  • Claude Desktop或其他MCP客户端应用
  • 可选:CAD Tools Online P&ID符号库(用于完整的P&ID功能)

🛠️ 安装指南

1. 安装依赖项

git clone https://github.com/hvkshetry/autocad-mcp.git
cd autocad-mcp
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

2. 配置Claude Desktop

对于拥有CTO库的用户:

{
  "mcpServers": {
    "autocad-mcp": {
      "command": "path\\to\\autocad-mcp\\venv\\Scripts\\python.exe",
      "args": ["path\\to\\autocad-mcp\\server_lisp_fast.py"]
    }
  }
}

对于没有CTO库的用户:

{
  "mcpServers": {
    "autocad-mcp": {
      "command": "path\\to\\autocad-mcp\\venv\\Scripts\\python.exe",
      "args": ["path\\to\\autocad-mcp\\server_lisp.py"]
    }
  }
}

3. CTO库设置(可选但推荐)

如果你有CAD Tools Online P&ID库:

  1. 将CTO库安装到C:\PIDv4-CTO\
  2. 验证以下目录存在:
    • C:\PIDv4-CTO\VALVES\
    • C:\PIDv4-CTO\EQUIPMENT\
    • C:\PIDv4-CTO\PUMPS-BLOWERS\
    • C:\PIDv4-CTO\TANKS\
    • (以及其他标准类别)

如果你没有CTO库:

  • 使用server_lisp.py而不是server_lisp_fast.py
  • P&ID工具将无法工作,但所有基础绘图操作仍然可用
  • 你可以创建自定义块并使用标准AutoCAD功能

4. 启动AutoCAD和服务器

  1. 启动AutoCAD LT

    • 创建或打开一个图纸
    • 确保命令行可见
  2. 启动服务器

    # 对于拥有CTO库的用户(推荐)
    start_fast_server.bat
    
    # 对于没有CTO库的用户
    start_lisp_server.bat
    
  3. 测试连接

    test_connection.bat
    

🔧 可用工具

基础绘图工具

  • create_line:在两点之间绘制线
  • create_circle:根据中心和半径创建圆
  • create_text:添加带有旋转支持的文本标签
  • create_polyline:从一系列点创建多段线
  • create_rectangle:根据角点创建矩形
  • batch_create_lines:高效创建多条线
  • batch_create_circles:高效创建多个圆
  • batch_create_texts:高效创建多个文本实体

块和图层管理

  • insert_block:插入带有属性和定位的块
  • set_layer_properties:创建/修改具有完整属性的图层
  • move_last_entity:移动最近创建的实体
  • update_block_attribute:插入后修改块属性

P&ID和工艺工具(需要CTO库)

  • setup_pid_layers:创建标准P&ID图纸图层
  • insert_pid_symbol:插入CTO库中的任何符号
  • insert_pid_equipment_with_attribs:插入带有适当属性的设备
  • insert_valve_with_attributes:插入带有CTO属性的阀门
  • insert_equipment_tag:添加设备识别标签
  • insert_equipment_description:添加设备描述块
  • insert_line_number_tag:添加工艺管线标识
  • draw_process_line:在两点之间绘制工艺管线
  • connect_equipment:使用正交路由连接设备
  • add_flow_arrow:添加方向流量指示器

高级操作

  • create_arc:根据中心、半径和角度创建弧
  • create_ellipse:根据主轴和比例创建椭圆
  • create_mtext:添加多行格式化文本
  • create_linear_dimension:添加线性尺寸
  • create_hatch:向封闭区域添加填充
  • list_pid_symbols:按类别列出可用符号

📖 使用示例

基础绘图

"从(0,0)到(100,100)绘制一条线"
"在(50,50)处创建一个半径为25的圆"
"在位置(75,125)添加文本'设备室'"

P&ID创建(需要CTO库)

"为新图纸设置P&ID图层"
"在(100,100)处插入一台离心泵,标签为P-101"
"在(150,100)处添加一个6英寸闸阀,标签为V-201"
"使用工艺管线连接泵P-101和阀门V-201"
"在泵上方添加设备标签P-101"

工艺流程创建

"创建一个污水处理过程,包括筛选、初级沉淀池、曝气池和二级沉淀池"
"在(200,100)处插入一个澄清池,设备编号CL-301"
"为主工艺管线添加管线编号8"-WW-001"

批量操作

"以每50单位中心间距创建10个圆的网格图案"
"绘制连接所有设备的工艺管线"
"为所有泵添加顺序编号的设备标签"

🚧 没有CTO库用户的配置

如果你没有CAD Tools Online库,你仍然可以有效地使用这个MCP服务器:

1. 使用标准服务器

替换服务器命令为:

"args": ["path\\to\\autocad-mcp\\server_lisp.py"]

2. 修改P&ID工具调用

没有CTO库的情况下,以下工具将无法工作:

  • insert_pid_symbol
  • insert_pid_equipment_with_attribs
  • insert_valve_with_attributes
  • list_pid_symbols

3. 替代方法

代替CTO符号,你可以:

  • 使用标准AutoCAD块
  • 创建简单的几何表示
  • 使用文本标签进行设备识别
  • 导入自己的符号库

4. 示例替代用法

"在(100,100)处画一个圆来代表泵"
"在其旁边添加文本'P-101离心泵'"
"在(200,100)处创建一个矩形作为储罐"
"用线条连接它们以表示管道"

📁 LISP库结构

服务器加载这些LISP文件以实现功能:

文件目的依赖关系
error_handling.lsp基础错误处理和验证无(先加载)
basic_shapes.lsp核心绘图函数error_handling.lsp
batch_operations.lsp批量创建工具basic_shapes.lsp
drafting_helpers.lsp块和图层管理basic_shapes.lsp
pid_tools.lspP&ID特定操作drafting_helpers.lsp
attribute_tools.lsp块属性处理pid_tools.lsp
advanced_geometry.lsp扩展几何图形创建basic_shapes.lsp
advanced_entities.lsp复杂实体创建advanced_geometry.lsp
annotation_helpers.lsp文本和尺寸工具basic_shapes.lsp
entity_modification.lsp实体操作drafting_helpers.lsp

⚡ 性能优化

快速模式优势

  • 使用批量工具绘制操作快80%
  • 仅加载必要文件时,服务器初始化快90%
  • 使用剪贴板执行复杂操作

批量操作示例

# 代替10次单独的create_line调用(8秒)
batch_create_lines([
    [0, 0, 100, 0],
    [100, 0, 100, 100],
    [100, 100, 0, 100],
    # 更多线...
])  # 单次调用(0.8秒)

性能设置

根据你的系统调整性能:

# 快速系统
set_performance_mode(fast_mode=True, minimal_delay=0.03)

# 较慢系统(更可靠)
set_performance_mode(fast_mode=False, minimal_delay=
0.1)

🔍 故障排除

常见问题及其解决方案:

LISP加载问题

  • 问题:"LOAD失败"错误
  • 解决办法:将LISP目录添加到AutoCAD信任路径
  • 参见TROUBLESHOOTING.md

CTO库问题

  • 问题:P&ID符号的"文件未找到"
  • 解决办法:验证CTO安装路径或使用标准服务器
  • 替代方案:不使用P&ID功能时使用server_lisp.py

窗口焦点问题

  • 问题:命令无法到达AutoCAD
  • 解决办法:确保AutoCAD处于活动状态,以管理员身份运行
  • 参见TROUBLESHOOTING.md

📊 新版本特性

版本2.0特性

  • 完整的CTO库集成(超过600个P&ID符号)
  • 智能块属性用于设备清单
  • 快速模式服务器性能提升80%
  • 批量操作用于多个对象创建
  • 工艺工程工具用于P&ID创建
  • 行业标准图层用于专业图纸
  • 增强的错误处理和故障排除指南

从v1.0迁移

原始版本的用户应:

  1. 更新至server_lisp_fast.py以获得更好的性能
  2. 如果可用,添加CTO库路径
  3. 查看新的P&ID工具用于工艺图纸
  4. 更新Claude Desktop配置

📄 许可

MIT许可 - 详情见LICENSE文件

🤝 贡献

欢迎贡献!请:

  1. 分叉仓库
  2. 创建功能分支
  3. 测试CTO和非CTO配置
  4. 提交包含清晰文档的拉取请求

📞 支持


有关详细的故障排除和高级配置,请参阅此仓库中的附加文档文件。