此MCP服务器通过自动生成并执行AutoLISP代码,实现了对AutoCAD LT 2024/2025的自然语言控制。它连接了Claude或其他LLM客户端与AutoCAD LT,通过对话提示创建工程图纸、P&ID图以及技术文档。
git clone https://github.com/hvkshetry/autocad-mcp.git
cd autocad-mcp
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
对于拥有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"]
}
}
}
如果你有CAD Tools Online P&ID库:
C:\PIDv4-CTO\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启动AutoCAD LT
启动服务器
# 对于拥有CTO库的用户(推荐)
start_fast_server.bat
# 对于没有CTO库的用户
start_lisp_server.bat
测试连接
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:插入后修改块属性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图层"
"在(100,100)处插入一台离心泵,标签为P-101"
"在(150,100)处添加一个6英寸的闸阀,标签为V-201"
"使用工艺管线连接泵P-101和阀门V-201"
"在泵上方添加设备标签P-101"
"创建一个污水处理工艺,包括筛分、初沉池、曝气池和二沉池"
"在(200,100)处插入一个澄清池,设备编号CL-301"
"为主工艺管线添加管线编号8"-WW-001""
"以每50个单位为中心,在网格模式下创建10个圆"
"绘制连接所有设备的工艺管线"
"为所有泵添加顺序编号的设备标签"
如果你没有CAD Tools Online库,你仍然可以有效地使用这个MCP服务器:
替换服务器命令为:
"args": ["path\\to\\autocad-mcp\\server_lisp.py"]
以下工具在没有CTO库的情况下将无法工作:
insert_pid_symbolinsert_pid_equipment_with_attribsinsert_valve_with_attributeslist_pid_symbols代替CTO符号,你可以:
"在(100,100)处画一个圆来表示泵"
"在其旁边添加文本'P-101离心泵'"
"在(200,100)处创建一个矩形作为储罐"
"用线条连接它们以表示管道"
服务器加载这些LISP文件以实现功能:
| 文件 | 目的 | 依赖关系 |
|---|---|---|
error_handling.lsp | 基础错误处理和验证 | 无(先加载) |
basic_shapes.lsp | 核心绘图函数 | error_handling.lsp |
batch_operations.lsp | 批量创建工具 | basic_shapes.lsp |
drafting_helpers.lsp | 块和图层管理 | basic_shapes.lsp |
pid_tools.lsp | P&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 |
# 代替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=.1)
常见问题及解决方案:
server_lisp.py原始版本的用户应:
server_lisp_fast.py以获得更好的性能MIT许可 - 详情见LICENSE文件
欢迎贡献!请:
对于详细的故障排除和高级配置,请参阅此仓库中的附加文档文件。