随着 AI 的发展,Python 已经成为 AutoCAD、BricsCAD、浩辰 CAD、中望 CAD 等 CAD 软件的首选脚本语言。
通过 PyRx,我们可以将 Python 融入 CAD 工作流,实现 自动建模、参数化设计、GUI 控件、脚本加载与调试。结合 大语言模型(LLM),更能实现智能化、自动化的设计流程,让 CAD 不再只是手工绘图。
更多参考:
在中望、浩辰、AutoCAD 等 2D CAD 平台下实现参数化 3D 模型生成
本文将从零开始,介绍如何搭建 Python 3.12 环境、安装 PyRx、创建第一个 CAD 模型,并结合 LLM 实现智能建模和脚本生成。
1. PyRx 简介
PyRx[1] 提供了 CAD 软件的 Python 绑定:
C++ ARX/BRX/GRX/ZRX 模块
- AutoCAD®:ObjectARX® 2021-2026
- BricsCAD®:BRX v24.2-v25.2
- GstarCAD®:GRX 2024-2026
- ZwCAD®:ZRX 2024-2026
ActiveX 接口:
- AutoCAD® 2021-2026
- BricsCAD® v24.2-v25.2
- GstarCAD® 2024-2026
- ZwCAD® 2024-2026
注意:PyRx 不支持 AutoCAD LT 或 BricsCAD Lite,需确保 CAD 可以加载 ARX/BRX/GRX/ZRX 模块。
PyRx 集成了 wxPython GUI、Python 3.12、debugpy 调试器,可以创建专业的 GUI 工具、调试 Python 脚本,并直接在 CAD 中执行。
2. 创建 Python 3.12 环境
使用 conda 创建独立环境:
conda create -n pyrx_env python=3.12
conda activate pyrx_env
pip install cad-pyrx
这样你就有一个干净的 Python 3.12 + PyRx 开发环境。
3. 第一个 PyRx 脚本
from pyrx import Rx, Ge, Db, Ap
@Ap.Command()
defdraw_line():
db = Db.HostApplicationServices().workingDatabase()
line = Db.Line()
line.setDatabaseDefaults()
line.setStartPoint(Ge.Point3d(0, 0, 0))
line.setEndPoint(Ge.Point3d(100, 100, 0))
color = Db.Color()
color.setRGB(255, 0, 0) # 红色
line.setColor(color)
model = Db.BlockTableRecord(db.modelSpaceId(), Db.OpenMode.ForWrite)
model.appendAcDbEntity(line)
解释:
@Ap.Command()
:将函数注册为 CAD 命令。Db.Line()
:创建线段对象。Ge.Point3d(x, y, z)
:定义三维坐标点。appendAcDbEntity(line)
:将线段添加到模型空间。
加载模块后,在 CAD 命令行输入 draw_line
即可生成红色线段。
4. 第一个 ActiveX 脚本
from pyrx import Ap, Ge, command
@command
def add_circle():
axApp = Ap.Application.acadApplication()
axDoc = axApp.activeDocument()
axModel = axDoc.modelSpace()
axCircle = axModel.addCircle(Ge.Point3d(0, 0, 0), 50)
print(f"Circle Diameter: {axCircle.diameter()}")
打开 PYCMDPROMPT:
PYCMDPROMPT
进入 Python 交互环境。
加载你的脚本:
import add_circle
执行命令:
add_circle.add_circle()
- 此时,AutoCAD 模型空间会生成一个半径为 50 的圆。
- 控制台会输出圆的直径。
通过 ActveX,你可以直接操作 CAD 文档对象,创建线条、圆形、多段线等。
5. 结合 LLM 实现智能建模
使用大语言模型(如 ChatGPT 或本地 Ollama 模型),我们可以 自动生成 CAD Python 脚本:
prompt = """
帮我生成一个 PyRx 脚本,在模型空间中创建 3 个不同半径的圆,颜色随机。
"""
# 将 prompt 发送到 LLM,获取生成的 Python 代码
generated_code = llm.generate(prompt)
exec(generated_code) # 在 Python 环境中执行生成代码
应用场景:
- 根据用户输入快速生成 CAD 模型
- 自动完成重复绘制(孔阵列、机械零件)
- 根据设计规范生成标准化模板
- 可在 Jupyter 或 VSCode 中预览和调试生成的 Python CAD 脚本
6. 高级功能
- GUI 开发:通过 wxPython 创建对话框、工具面板
- 调试支持:使用 debugpy 远程调试 CAD 中的 Python 脚本
- 模块化管理:通过 PYLOAD/PYRELOAD 管理 Python 模块
- 联动大语言模型:根据自然语言指令生成 CAD 设计脚本
7. 总结
PyRx 为 Python 开发者打开了 CAD 二次开发的新世界:
- 支持 AutoCAD/BricsCAD/GstarCAD/ZwCAD
- 完全可控的 Python 脚本接口
- 可结合 LLM 自动生成 CAD 设计
- 支持 GUI、调试、模块管理
- 适合 从零到一的自动化建模和生产力工具开发
如果你熟悉 Python 并希望提升 CAD 自动化能力,PyRx + LLM 是最优选择。
引用链接
[1] PyRx: https://github.com/CEXT-Dan/PyRx/
暂无评论内容