关于 forgent3d
forgent3d 是用于 CAD 建模与修改的技能,通过 cad-build CLI 支持 build123d 和 OpenSCAD 两条路线。它根据输入选择路线,并提供构建、测量、预览和导出流程。
主要功能
- 01支持 build123d 与 OpenSCAD 路线
- 02构建并测量模型几何
- 03生成模型快照与预览链接
- 04导出 STEP、STL、3MF 等格式
- 05检查可调参数并报告问题
适用场景
- 01从描述创建机械零件
- 02修改现有 .scad 或 model.py
- 03检查尺寸、面位置与构建警告
- 04导出模型文件或分享预览
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ forgent3d/ forgent3d-skills --skill forgent3d安装后在 Claude Code 中输入/forgent3d确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdbin/cad-buildreferences/assembly.mdbuild123d.mdopenscad.mdoutline.mdselectors.md详细介绍
Forgent3D CAD 建模
制作零件有两种方式,共用一个 CLI。单位为毫米;世界坐标系采用右手系,Z 轴朝上。
-
build123d 路线 — 使用 Forgent3D 的 build123d + cadkit 方言编写
model.py。 内核会将其构建为精确的 B-rep,并测量它(孔、面、壁厚); STEP 文件由此机器生成;产品工作区保留模型以便继续编辑 (草图、旋钮、装配体、配合、运动)。 -
OpenSCAD 路线 — 用户使用 OpenSCAD 编写
.scad文件。捆绑的 OpenSCAD 会渲染该文件;你读取包围盒、体积和echo()输出,导出 STL/3MF, 并提供一个包含代码的链接 — 该页面可导出 STEP。 -
建模或修改请求 → 选择路线、编辑源文件、验证构建结果。
-
问题 → 回答问题;不更改任何文件。
你使用自己的文件工具编辑源文件。其他所有操作 — 构建、测量、渲染、导出、发布、
报告错误 — 都通过一个 CLI 完成:cad-build。
先选择路线,再说明并阅读一份参考文档
按顺序选择第一个符合条件的规则:
- 存在
.scad文件,或请求中提到了 OpenSCAD、.scad、 Customizer、BOSL2、MCAD 或 Thingiverse → OpenSCAD 路线。阅读 references/openscad.md。 - 存在方言
model.py(它从build123d/cadkit导入内容),或 请求需要装配体、配合、运动、按边选择圆角或壳体、需要在产品画布中编辑的零件、 尺寸测量,或由此机器生成 STEP 文件 → build123d 路线。阅读 references/build123d.md。 - 两者都不符合 → build123d 路线(可测量、导出精确的 STEP 文件,并在工作区中打开)。
接下来:编辑前只阅读对应的那一份参考文档;整个任务都使用该路线 — 绝不将 .scad 转换为 model.py,反之亦然;
在开场白中说明路线(“使用 OpenSCAD 构建:……”)。如果规则 1 生效,但请求同时需要配合、
运动或按边选择圆角,则必须使用 build123d 路线:说明情况并让用户选择 —
这是唯一值得提问的分岔点。
| 请求 | 路线 |
|---|---|
| “制作一个带四个 M4 孔的支架,提供给机加工厂的 STEP 文件” | build123d |
“这是我的 gridfinity.scad — 把收纳盒加高两个单位” | OpenSCAD |
| “将此 OpenSCAD 文件转换为 STEP” | OpenSCAD(预览页面会生成 STEP) |
| “制作一个通过铰链连接到此盒子的盖子” | build123d(运动) |
| “使用 BOSL2 圆角处理并带标签的 OpenSCAD 旋钮” | OpenSCAD |
| “建模一个手机支架”(没有文件,也未指定语言) | build123d |
命令
cad-build 是此技能的 bin/cad-build 包装器——不在 PATH 中,请按路径调用:<this skill's directory>/bin/cad-build。它通过 npx 运行已发布的 @forgent3d/cad-build(内含内核和 OpenSCAD:无需安装),如果 FORGENT3D_CAD_BUILD_BIN 指向本地构建版本,则运行本地版本。
cad-build rebuild <file.py | file.scad> # build or render, then report
cad-build check <file.py> --code '…' # probe the built model — build123d route only
cad-build snapshot <file> [--view front] [--line N] [--line-art] [--xray] # orthographic PNG; --line N zooms onto one statement's faces
cad-build knobs <file> # every published control built at its extremes
cad-build export <file> --format step|stl|3mf|glb|obj # step: build123d route only
cad-build preview <file> # → shareable link
cad-build recipe <motion|pocket|outline> # build123d route references
cad-build feedback --message '…' <file> # report an engine/tool bug
| 命令 | build123d 路径(model.py) | OpenSCAD 路径(.scad) |
|---|---|---|
rebuild | 边界框、体积、圆柱统计(每个半径及其轴线走向)、平面(每个平面的位置坐标)、不相连的实体、已求解的连接(每个配合的类型、结果、求解后的坐标系和派生关节)、诊断信息 | 边界框、体积(面片数)、三角形数量、文件中的 echo() 行、OpenSCAD 警告 |
check --code | 你的代码片段针对已构建模型输出的内容;def test_* 检查 | 不支持——文件中的 echo() 就是探针 |
snapshot | 2×2 图(顶视/等轴测/正视/右视),或单个 --view;--line-art --xray 用虚线显示隐藏边;--line N 放大 model.py 第 N 行构建的面(橙色,隐藏边以虚线贯穿,并沿着和横跨该特征),并在文本中标出这些面 | 相同视图,由 OpenSCAD 三角形绘制;显示 color();不支持 --line |
knobs | 每个常量行上的 #@ 旋钮,在各自极值下的结果:OK/INERT/WARNS/BROKEN | 每个 Customizer 参数,在各自极值下重新渲染;结果相同 |
export | STEP(精确),以及在本地生成的 STL/3MF/GLB/OBJ | 根据 OpenSCAD 自身的三角形生成 STL/3MF/GLB/OBJ;STEP 使用预览页面生成的版本 |
preview | 上传 model.py、在此构建的几何体、其颜色以及任何 imports/ 文件:生成带 3D 视图和浏览器编辑器的链接 | 生成包含代码本身的链接:由真实的 OpenSCAD 在链接页面中渲染,可实时调整参数,并导出 STEP 和 STL |
无论哪种路径,报告都是模型的指纹,而非评判结果:构建成功只表示模型可以编译;请结合需求查看数值,并在信任结果前查看(snapshot)。第一个可操作的错误会指出源文件行号。
源文件可以使用任意名称。传入其路径;如果省略,则按以下顺序查找:目录中有 model.py 时使用它,否则使用唯一的 .py 文件,否则使用唯一的 .scad 文件。cad-build 会将派生文件保存在源文件旁的 .cache/ 中,并将预览凭据保存在 .forgent3d-preview.json 中(这是机密文件)——可以随意删除,但绝不要编辑;请将两者都加入 gitignore。
需求留下未决事项时
需求中留下的选择由你来决定:推导、测量,或采用合理的默认值,然后构建。如果已经确定方案,就不要停下来确认——让用户能查看的零件胜过一个问题。
你需要在回复中逐项说明自己做出的决定,用用户自己的说法,每项一行:每个你采用默认值的数值(“壁厚 3 mm”“圆角 R2”)——并在文件顶部将其设为命名常量(build123d)或 Customizer 参数(OpenSCAD)——以及你确定的每个分支选择,并列出另一种选项,让用户可以切换。有两个分支绝不能漏说,因为选错会导致重建,而不是微调:需求未给尺寸且没有通用标准时,零件必须适配的对象的尺寸;以及两个分支会形成不同零件的选择(草图展示哪个视图、哪个面安装到什么位置、照片中物体的比例)。
工作流
- 用一个具体句子开头,说明路线和你的处理方法。
- 阅读该路线的参考资料,然后编辑源文件。对于复杂对象,先构建出干净的主体,再在已知可构建的基础上添加功能——短草稿中的失败会直接指出原因。
- 运行
cad-build rebuild。 修复第一个可操作的错误,然后反复构建,直到构建干净。对照请求检查报告:尺寸、位置以及每条警告。 - 运行
cad-build snapshot并打开 PNG。 数值可以确认尺寸,但无法发现某个特征是否位于错误的面上或被镜像。 - 测量报告无法测量的内容——在 build123d 路线上使用
check --code,在 OpenSCAD 路线上使用echo()——仅在某个数值会决定你的下一步编辑时进行。 - 交付前:如果文件发布了控件,则运行
cad-build knobs,并修复所有标记为BROKEN或WARNS的项。然后运行cad-build preview并将链接交给用户;用户需要文件本身时,运行cad-build export。最后说明你确定的默认值和分支选项。
报告引擎/工具缺陷
当遇到工具或引擎本身的故障时,使用 cad-build feedback --message '…' <the source file> 提交一次反馈:cad-build 崩溃或内部出错;参考资料说明应当有效的方言/cadkit 结构无法使用,或真实 build123d 能接受而该方言拒绝的签名;桌面版 OpenSCAD 能正常渲染的 .scad 文件在此处被拒绝或渲染结果不同;报告中的几何信息与正确的源文件相矛盾;rebuild 和 preview 的结果不一致。附上文件可让团队复现问题。请具体描述;反馈提交后不会等待回复——发送后继续操作或寻找变通方法。修复可能已经发布,因此请先更新:
npx skills update forgent3d # this skill
npx -y @forgent3d/cad-build@latest help # refresh the CLI npx cache
**不属于反馈的问题:**由你自己的源文件导致的错误——例如非法圆角、错误的选择器、位置不当的切割器、未定义的 OpenSCAD 变量或缺失的 include——应由你修复。如果修改源文件就能解决问题,那就不是工具缺陷。