AutoCAD plugin with AI assistance for architectural repetitive tasks
- Python 60.5%
- Common Lisp 34%
- PowerShell 3.5%
- Batchfile 1.8%
- Dockerfile 0.2%
| backend | ||
| docs | ||
| examples | ||
| installer | ||
| lisp | ||
| .gitignore | ||
| build-win.ps1 | ||
| docker-compose.yml | ||
| README.md | ||
CAD Copilot — AutoCAD AI 建筑辅助插件
通过 AutoLISP + Python FastAPI 后端,为 AutoCAD 添加 AI 驱动的建筑设计自动化: 地下车库智能布局 · 坡道自动生成 · 尺寸标注辅助 · 规范校验。
产品价值
| 传统方式 | CAD Copilot |
|---|---|
| 人工画柱网、停车位:2-3 小时 | AI 5 秒出布局 + 面积率统计 |
| 手算坡度、长度、转弯半径 | 输入高度/类型 → 自动画坡道 |
| 忘记规范尺寸要翻文档 | (check-reg) 即时规范校验 |
| 重复劳动无法沉淀 | 方案库 + 每次调优 |
架构
┌─────────────────────────────────────────────────┐
│ AutoCAD (2018+) │
│ ├─ AutoLISP 插件(本仓库 lisp/*.lsp) │
│ ├─ 菜单集成(自定义工具栏) │
│ └─ 命令:BASEMENT, RAMP, CHECK-REG, TEXT-TO-CAD │
└──────────────────────┬──────────────────────────┘
│ HTTP (JSON)
┌──────────────────────▼──────────────────────────┐
│ Python FastAPI Backend (backend/) │
│ ├─ /layout/basement 地下车库布局 │
│ ├─ /ramp/generate 坡道参数生成 │
│ ├─ /ai/interpret 自然语言 → 参数 │
│ ├─ /text-to-cad/* 文本 → STEP/CAD Explorer │
│ └─ /validate/code 规范校验 │
└──────────────────────┬──────────────────────────┘
│
┌──────────┴──────────┐
│ │
┌────▼────┐ ┌──────▼──────┐
│ OpenAI │ │ 规范数据库 │
│ /Claude │ │ (codes.json) │
└─────────┘ └─────────────┘
核心命令
BASEMENT — 地下车库布局助手
Command: BASEMENT
Enter car count: 120
Enter basement width in meters: 45
Enter basement depth in meters: 36
Enter column grid (e.g. 8.1x8.1): 8.1x8.1
→ 自动计算柱网、车位方式(垂直/平行/斜位)、车道宽度
→ 绘制完整布局图
→ 显示统计:实际车位、面积效率、停车泊位指标
RAMP — 坡道自动生成
Command: RAMP
Select ramp type (straight/curve/spiral): straight
Enter height difference (m): 3.5
Enter lane type (direct/mixed/independent): direct
→ 根据规范自动计算长度、坡度、过渡段
→ 绘制坡道中心线、投影线、标注
CHECK-REG — 规范合规校验
Command: CHECK-REG
Select objects to check: [pick parking area]
→ 扫描选中区域,对照《汽车库、修车库、停车场设计防火规范》
→ 列出违规项:柱距、最小通道、防火分区
AI-DRAW — 自然语言绘图
Command: AI-DRAW
Describe what to draw: 在(10,10)画一个 8x6 的房间,北墙开一个 1.5 米宽的门
→ 调用 AI 解析,生成命令序列自动执行
TEXT-TO-CAD — 自然语言生成 STEP
Command: TEXT-TO-CAD
Describe the 3D CAD model: A 60 x 40 x 6 mm mounting plate with four M4 clearance holes
→ 调用 text-to-cad / build123d 生成 STEP,并打开 CAD Explorer
CAD-EXPLORER — 打开 CAD/机器人描述文件
Command: CAD-EXPLORER
STEP/STL/3MF/DXF/URDF/SRDF/SDF path: generated/text-to-cad/example.step
→ 打开本地 CAD Explorer 预览链接
快速启动
1. 安装后端
cd 03-cad-copilot/backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
# 编辑 .env 填入 OPENAI_API_KEY
uvicorn main:app --host 127.0.0.1 --port 8087 --reload
2. 加载 AutoLISP 插件
在 AutoCAD 中执行:
Command: APPLOAD
→ 选择 lisp/main.lsp
或永久加载:将 lisp/ 路径加入 APPLOAD → Startup Suite。
3. 验证
Command: CAD-COPILOT-STATUS
→ 显示后端连接状态、可用命令列表
目录结构
03-cad-copilot/
├── lisp/ # AutoLISP 插件
│ ├── main.lsp # 主入口
│ ├── basement.lsp # 地下车库命令
│ ├── ramp.lsp # 坡道命令
│ ├── check-reg.lsp # 规范校验
│ ├── ai-draw.lsp # AI 绘图
│ ├── text-to-cad.lsp # text-to-cad / Explorer 命令
│ ├── http-client.lsp # HTTP 客户端工具
│ └── utils.lsp # 通用工具函数
├── backend/ # Python FastAPI
│ ├── main.py # 应用入口
│ ├── routers/
│ │ ├── layout.py # 布局接口
│ │ ├── ramp.py # 坡道接口
│ │ ├── ai.py # AI 接口
│ │ ├── validate.py # 校验接口
│ │ └── text_to_cad.py # text-to-cad 桥接接口
│ ├── services/
│ │ ├── basement_layout.py # 布局核心算法
│ │ ├── ramp_calc.py # 坡道计算
│ │ ├── llm_client.py # OpenAI/Claude 客户端
│ │ ├── text_to_cad.py # CAD skill / Explorer 调用
│ │ └── code_checker.py # 规范校验器
│ ├── data/
│ │ ├── codes.json # 建筑规范数据库
│ │ └── presets.json # 预设方案
│ ├── requirements.txt
│ ├── requirements-cad.txt # text-to-cad 可选依赖
│ └── .env.example
├── examples/ # 示例 DWG / 截图
├── samples/ # 测试用例
├── docs/
│ ├── INSTALL.md # 详细安装指南
│ ├── COMMANDS.md # 命令手册
│ ├── TEXT_TO_CAD.md # text-to-cad 集成说明
│ ├── ARCHITECTURE.md # 架构说明
│ └── USER-GUIDE.md # 用户手册
└── README.md
适用 CAD 版本
- AutoCAD 2018 及以上(支持 VLA-* 对象模型)
- AutoCAD LT 不支持(无 AutoLISP)
- BricsCAD、ZWCAD 理论兼容(需微调)
离线模式
后端支持离线规则计算(无 LLM 也可用):
BASEMENT纯算法实现,不需要 AIRAMP基于规范公式,不需要 AICHECK-REG基于规范数据库,不需要 AI- 仅
AI-DRAW必须 LLM
二次开发
- 加新命令:在
lisp/添加.lsp文件,main.lsp中(load ...) - 加规范:编辑
backend/data/codes.json - 加预设方案:编辑
backend/data/presets.json - 换 LLM:
backend/services/llm_client.py支持多提供方
规范依据
- GB 50067-2014《汽车库、修车库、停车场设计防火规范》
- JGJ 100-2015《车库建筑设计规范》
- GB 50016-2014《建筑设计防火规范》