ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenCADStudio Python插件实战:用opencad-python模板为你的CAD添加自定义命令

OpenCADStudio Python插件实战:用opencad-python模板为你的CAD添加自定义命令 OpenCADStudio Python插件实战用opencad-python模板为你的CAD添加自定义命令【免费下载链接】OpenCADStudioA CAD application built with Rust — 2D/3D drawing, DWG/DXF support, and GPU-accelerated rendering项目地址: https://gitcode.com/gh_mirrors/op/OpenCADStudioOpenCADStudio 是一款用 Rust 打造的开源 CAD 软件支持 2D/3D 绘图、DWG/DXF 格式和 GPU 加速渲染。除了内置命令它还自带了一个opencad-python 插件内置 RustPython 解释器让你在 CAD 里直接用 Python 脚本创建图形、批量编辑实体、驱动原生绘图命令快速为自己的工作流添加自定义命令。1️⃣ opencad-python 是什么简单说它是 OpenCADStudio 的第一方 Python 脚本插件位于 plugins/opencad-python/。它的核心能力内置 RustPython 解释器无需安装 Python 环境脚本直接在插件进程内运行ocs模块一个预绑定的原生模块直接对接 CAD 文档——读实体、写实体、管理图层、样式、块、布局崩溃隔离插件运行在独立进程中Python 脚本出错也不会拖垮主编辑器一条撤销步整个脚本的所有修改合并为一次undo回退非常省心。插件的元信息定义在 plugins/opencad-python/plugin.toml其中command_prefixes [PY_]决定了所有 Python 相关命令都以PY_开头。2️⃣ 快速上手两个核心命令插件提供两条自定义命令覆盖随手试一下和跑完整脚本两种场景命令作用示例PY_EVAL 表达式求值单个 Python 表达式把结果打印到命令行PY_EVAL 1 1PY_RUN 脚本路径运行一个.py脚本文件支持多行语句PY_RUN my_script.py除了命令行输入Ribbon 选项卡上还提供了两个图形按钮Eval 11一键冒烟测试和Run Script…打开原生文件选择器挑选.py文件执行。按钮定义可见 plugins/opencad-python/src/lib.rs。 小贴士PY_EVAL只接受单个表达式适合调试取值完整脚本请用PY_RUN。3️⃣ 你的第一个 Python 脚本ocs模块在脚本中已自动绑定不需要 import。最基础的用法——画一条直线和一个圆ocs.add_line(0, 0, 10, 10) # 添加一条 2D 直线返回句柄 ocs.add_circle(5, 5, 3) # 添加一个圆返回句柄 handles ocs.selection() # 读取当前选中的实体句柄读数据同样简单ocs.get(handle)返回实体的{handle, kind, layer, point}信息ocs.layers()可列出所有图层。完整的函数清单40 多个读写函数收录在 plugins/opencad-python/PLUGIN.md。4️⃣ 进阶文档模型与事务编辑API v7 构建中脚本还能拿到完整的文档模型doc ocs.active_document像操作对象一样增删改查 43 种画布实体doc ocs.active_document line doc.create_entity(Line, start{x: 0, y: 0, z: 0}, end{x: 10, y: 0, z: 0}) with doc.transaction(Move line): # 事务内修改一次撤销即可还原 line.end (15, 5, 0)模型层还提供了一系列绘制表管理器全部由宿主校验、一步撤销doc.layers创建/改名/删除图层设置颜色、线型、线宽doc.text_styles/doc.dim_styles管理文字样式与标注样式doc.blocks把现成实体打包成块并支持后续插入doc.linetypes/doc.layouts自定义线型、创建图纸布局。官方示例脚本演示了画矩形、三角形、圆弧并用PCONSTRAINT/TCONSTRAINT施加真实持久的几何约束——拖一条线与之平行的那条会跟着动。代码见 plugins/opencad-python/examples/example.py。5️⃣ 用脚本驱动原生 CAD 命令脚本不只是画东西还能调用 OpenCADStudio 自己的命令引擎行为与在命令行敲入完全一致同样的提示、几何和撤销doc.command(CIRCLE 5,5 3)一行执行整条命令doc.start_command(OFFSET)逐步应答交互式提示doc.modify常用修改工具的纯函数式封装——offset、trim、extend、fillet、chamfer、move、rotate、scale、mirror、矩形/环形/路径阵列、explode、join等一应俱全。这让批量圆角沿路径复制 100 个孔位这类重复劳动变成了十几行 Python 的活。6️⃣ 安全沙箱脚本碰不到你的文件系统很多新手担心脚本安全。这个插件做了认真的安全审计RustPython 以禁用标准库方式编译os、socket、subprocess、open()等全部被屏蔽——脚本唯一能调用的就是ocs模块。即使脚本里写了import os得到的也只是ModuleNotFoundError。审计细节记录在 plugins/opencad-python/PLUGIN.md。7️⃣ 想自己扩展从这里看起 插件设计与分期计划plugins/opencad-python/ROADMAP.md完整命令与ocs模块参考plugins/opencad-python/PLUGIN.md插件入口与 Ribbon 按钮源码plugins/opencad-python/src/lib.rsPython 文档模型实现plugins/opencad-python/src/document_model.py从零开发自己的插件模板docs/plugin-template/README.md插件宿主 APIRust 侧crates/ocs_plugin_api/插件架构总览docs/plugin-architecture.md总结OpenCADStudio 的 opencad-python 插件把脚本化 CAD的门槛降到了极致打开软件即可用PY_EVAL试算PY_RUN跑脚本几十行 Python 就能创建实体、编辑图层、批量修改几何还自带沙箱保护和一步撤销。如果你有批量出图、自动标注或参数化建图的诉求这套 Python 插件模板值得今天就试起来【免费下载链接】OpenCADStudioA CAD application built with Rust — 2D/3D drawing, DWG/DXF support, and GPU-accelerated rendering项目地址: https://gitcode.com/gh_mirrors/op/OpenCADStudio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表