mcpField
F
forgent3d

forgent3d

github.com/forgent3d创意与媒体944 次安装2 周前更新
代码仓库

关于 forgent3d

forgent3d 是用于 CAD 建模与修改的技能,通过 cad-build CLI 支持 build123d 和 OpenSCAD 两条路线。它根据输入选择路线,并提供构建、测量、预览和导出流程。

主要功能

  1. 01支持 build123d 与 OpenSCAD 路线
  2. 02构建并测量模型几何
  3. 03生成模型快照与预览链接
  4. 04导出 STEP、STL、3MF 等格式
  5. 05检查可调参数并报告问题

适用场景

  1. 01从描述创建机械零件
  2. 02修改现有 .scad 或 model.py
  3. 03检查尺寸、面位置与构建警告
  4. 04导出模型文件或分享预览

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/forgent3d/forgent3d-skills --skill forgent3d

安装后在 Claude Code 中输入/forgent3d确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
bin/
cad-build
references/
assembly.md
build123d.md
openscad.md
outline.md
selectors.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。

先选择路线,再说明并阅读一份参考文档

按顺序选择第一个符合条件的规则:

  1. 存在 .scad 文件,或请求中提到了 OpenSCAD、.scad、 Customizer、BOSL2、MCAD 或 Thingiverse → OpenSCAD 路线。阅读 references/openscad.md。
  2. 存在方言 model.py(它从 build123d / cadkit 导入内容),或 请求需要装配体、配合、运动、按边选择圆角或壳体、需要在产品画布中编辑的零件、 尺寸测量,或由此机器生成 STEP 文件 → build123d 路线。阅读 references/build123d.md。
  3. 两者都不符合 → 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() 就是探针
snapshot2×2 图(顶视/等轴测/正视/右视),或单个 --view;--line-art --xray 用虚线显示隐藏边;--line N 放大 model.py 第 N 行构建的面(橙色,隐藏边以虚线贯穿,并沿着和横跨该特征),并在文本中标出这些面相同视图,由 OpenSCAD 三角形绘制;显示 color();不支持 --line
knobs每个常量行上的 #@ 旋钮,在各自极值下的结果:OK/INERT/WARNS/BROKEN每个 Customizer 参数,在各自极值下重新渲染;结果相同
exportSTEP(精确),以及在本地生成的 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)——以及你确定的每个分支选择,并列出另一种选项,让用户可以切换。有两个分支绝不能漏说,因为选错会导致重建,而不是微调:需求未给尺寸且没有通用标准时,零件必须适配的对象的尺寸;以及两个分支会形成不同零件的选择(草图展示哪个视图、哪个面安装到什么位置、照片中物体的比例)。

工作流

  1. 用一个具体句子开头,说明路线和你的处理方法。
  2. 阅读该路线的参考资料,然后编辑源文件。对于复杂对象,先构建出干净的主体,再在已知可构建的基础上添加功能——短草稿中的失败会直接指出原因。
  3. 运行 cad-build rebuild。 修复第一个可操作的错误,然后反复构建,直到构建干净。对照请求检查报告:尺寸、位置以及每条警告。
  4. 运行 cad-build snapshot 并打开 PNG。 数值可以确认尺寸,但无法发现某个特征是否位于错误的面上或被镜像。
  5. 测量报告无法测量的内容——在 build123d 路线上使用 check --code,在 OpenSCAD 路线上使用 echo()——仅在某个数值会决定你的下一步编辑时进行。
  6. 交付前:如果文件发布了控件,则运行 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——应由你修复。如果修改源文件就能解决问题,那就不是工具缺陷。

评论

支持 Markdown