PyAutoCAD 工程图纸绘图
Overview
把一张工程图纸(图片或带尺寸的文字描述)还原成 AutoCAD 图形:识别几何元素 → 生成 pyautocad 脚本 → 在已打开的 AutoCAD 中绘制 → 缩放视图使图形可见。适用于机械零件、支架、连接件等二维平面图。
标准工作流
按顺序执行以下步骤:
Step 1 — 识别图形元素
分析图片/描述,输出一份结构化清单:每种元素、尺寸、位置(坐标)、圆心/切点关系。至少识别:
- 矩形(宽 × 高,左下角坐标)
- 圆(直径/半径,圆心坐标),同心圆成对出现
- 圆弧(圆心、半径、起止角,或切线约束)
- 斜边/切线(两端点,或与圆的切点)
- 腰形孔(长、半径、中心、倾斜角)
- 中心线(位置、是否虚线)
当圆弧圆心或切点无法直接从图片读出时,先做几何计算(例如两条直线的切点、圆弧与直线的相切关系),把计算结果写进脚本注释。
Step 2 — 编写脚本
以 scripts/draw_template.py 为骨架,保留连接与缩放部分,替换中间的绘图代码。
必须遵守的技术要点(详见 references/pyautocad_guide.md):
- 连接已打开的 AutoCAD:
Autocad(create_if_not_exists=False) - 逐段用
AddLine/AddCircle/AddArc绘制;不要用AddPolyline(部分 AutoCAD 版本会报错) - 所有
print只输出 ASCII 字符([OK]、[DONE]),不要用✓/✅/ 中文(PowerShell 中文环境会编码报错) - 结束时调用
acad.app.ZoomExtents()缩放视图
Step 3 — 运行脚本
优先直接在命令行运行(前提是系统 Python 已装 pyautocad):
python draw_xxx.py
若命令行执行后用户反馈「CAD 里看不到图形」,可能原因与处理:
- 视图没缩放 → 确认脚本末尾有
ZoomExtents(),或单独运行acad.app.ZoomExtents() - CAD 窗口未激活/焦点丢失 → 让用户重新打开 CAD 后再跑一次
- 图形颜色与背景接近 → 检查图层/颜色
- 软件是浩辰 CAD 而非 AutoCAD → 询问用户确认软件类型
Step 4 — 验证
运行后向用户复述已绘制的元素清单与尺寸,请其确认。若用户给出具体修正参数(坐标、弧度、尺寸),按增量方式改脚本后立即重跑。
常用元素绘制配方
矩形(宽 w 高 h,左下角 (x0,y0)):4 条 AddLine 首尾相连。
同心圆:同一圆心两个 AddCircle,不同半径。
腰形孔(长 L,孔半径 r,中心 (cx,cy),倾角 θ):两个半圆端弧 + 两条切线(斜槽)。两个端弧圆心分别在中心沿长轴方向偏移 (L/2 - r),用 AddArc 画上下半弧,再用两条 AddLine 连接弧端点。
中心线:AddLine 画点划线效果即可(需要点划线样式时设图层线型)。
切点计算:圆与直线相切时,用三角函数/几何关系先算出切点坐标,再作为 AddLine/AddArc 端点。
资源
scripts/draw_template.py— 可复用的绘图脚本骨架(连接、绘图助手函数、缩放、ASCII 输出),复制后替换绘图区即可references/pyautocad_guide.md— pyautocad API 详解、编码陷阱、连接方式、缩放命令、各元素绘制示例