python控制Autocad绘图经验(精简版)

python控制Autocad绘图经验(精简版)
虽然AutoCAD的python二次开发已经很多了AI也能完成许多编写任务。这里还是写一篇笔记对于我这种记性不好又喜欢自己手动修改的人来说可以方便查阅常用方法首先有几个需要特别注意的地方比如使用 win32com.client而非直接使用pyautocad库时需要进行一个数组转换def vt_point(point): 将点坐标转换为COM兼容的VARIANT数组VT_ARRAY | VT_R8 AutoCAD COM API 要求点参数以 SAFEARRAY of doubles 格式传递 部分方法如 AddArc不能直接接受 tuple/APoint需要用此函数包装。 x float(point[0]) y float(point[1]) z float(point[2]) if len(point) 2 else 0.0 return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y, z))1.线性标注AddDimRotated, 顾名思义添加一个可旋转的线性标注最后一个参数是旋转角度。acad.model.AddDimRotated(basepoint1, basepoint2, location, math.pi)参数分别为(基准点1基准点2标注线定位点角度注意角度要使用弧度制所以这里我用math.pi代替0以免混淆,直接写0也是可以的但不可以写90而应该写math.pi/22.插入图块InsertBlockinsertionPnt APoint(0, 0) RetVal acad.model.InsertBlock(insertionPnt, 你的块名, 1, 1, 1, 0 ) # acad.model.InsertBlock(InsertionPoint, Name, Xscale, Yscale, ZScale, Rotation) # insertionPnt为块的插入点即块的定位夹点与图纸空间中的该点对齐。SaveAs 保存acad.doc.SaveAs(filepath, dwg_version) #这里dwg_version写60对应2013版本这种写法是pyautocad封装好的 #ac2013_dwg (60) 涵盖了 AutoCAD 2013 到 2017 #ac2018_dwg (64) 则涵盖了 AutoCAD 2018 到 2024 acad.doc.SaveAs(D:\\AutoCAD\\TestSaveAs) #并且可以不写dwg_version由CAD默认。 acad.ActiveDocument.SaveAs(D:\\AutoCAD\\TestSaveAs, 60) #ActiveDocument 是直接调用原始的 COM API实用建议考虑到我本身是个小白我的笔记大概也是帮助到更多小白玩家这里给出一些基础的建议。1.代码结构我们常常需要对整个绘图文件有个大致的规划从而实现模块化尤其注意Autocad中的图块创建功能非常实用建议将需要使用到的图块放置到同一文件目录下最好是直接将图块保存到dwt样板中能省很多麻烦。这里给出我自己的项目结构作为参考示例AutoCAD_Python/blocks/# 图块资源目录│├── .blocksMetadata/ # 图块预览和元数据│├── A4图框.dwg # A4图纸图框│└── 其他图块文件... # 各种标准图框和模板draw/ # 绘图工具模块│├── geometry.py # 几何计算工具│├── drawing_operations.py # 封装后的绘图操作│├── Tool_calculation.py # 工具尺寸计算│​​​​​​​ ├── D_R_ratio2K_V1.py # D-R比例计算│​​​​​​​ └── 口径常数.xlsx # 口径相关数据utils/ # 通用工具函数│​​​​​​​ ├── block.py # 图块插入和管理│​​​​​​​ ├── dimension.py # 尺寸标注功能│​​​​​​​ ├── layer.py # 图层管理│​​​​​​​ ├── hatch.py # 图案填充│​​​​​​​ └── linetype.py # 线型管理output/ # 输出文件目录│​​​​​​​ └── 生成的图纸... # 自动生成的DWG文件│​​​​​​​── main.py # 主入口文件│​​​​​​​── fixture_main.py # 核心工装创建逻辑│​​​​​​​── fixture_cu.py # 铜材工装逻辑│​​​​​​​── fixture_pom.py # POM塑料工装逻辑│── 新图样.dwt # AutoCAD模板文件