PyRx :适用于 CAD 二次开发的 Python

PyRx :适用于 CAD 二次开发的 Python

随着 AI 的发展,Python 已经成为 AutoCAD、BricsCAD、浩辰 CAD、中望 CAD 等 CAD 软件的首选脚本语言。

图片[1]-PyRx :适用于 CAD 二次开发的 Python-寻找资源网

通过 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)

解释

  1. @Ap.Command():将函数注册为 CAD 命令。
  2. Db.Line():创建线段对象。
  3. Ge.Point3d(x, y, z):定义三维坐标点。
  4. appendAcDbEntity(line):将线段添加到模型空间。

加载模块后,在 CAD 命令行输入 draw_line 即可生成红色线段。

图片[2]-PyRx :适用于 CAD 二次开发的 Python-寻找资源网

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 文档对象,创建线条、圆形、多段线等。

图片[3]-PyRx :适用于 CAD 二次开发的 Python-寻找资源网

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/

 

 

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容