Community图像github.com

max-model:从创意到可打印3D模型工作室

将创意转化为可直接打印的FDM 3D模型。支持“建模/设计/制作一个<东西>来打印”、“3D建模这个”、“CAD制图”、“定制支架/外壳/夹持器/适配器/盖子/托架”、“指尖陀螺”、“一体打印”、“能动的东西”、“软体<动物>”、“<X>的模型/雕像/吉祥物”、“文本转3D”、“Gridfinity”、“为我的<东西>制作插件”、“为我的打印台分割”、“这个能打印吗”、“校准打印机”、“在AR中查看”、“加上我的名字”、“添加钥匙链环”、“添加磁铁”、“修复薄壁”、“按我的头围缩放”、“做个盒子”、“钥匙链”、“标牌”、“手机支架”、“浮雕灯箱”、“max-model”、“/max-model”或“forge”。 使用代码CAD (build123d/OpenSCAD/bpy) + 经过验证的机械结构 (MechKit) + 本地文本转3D + 柔性化 + 打印前故障预测;将验证过的STL直接交给您的切片器。

max-model:从创意到可打印3D模型工作室 是什么?

max-model 是一个专为 FDM 3D 打印设计的 AI 助手技能,旨在将用户的创意描述快速转化为可直接打印的、经过验证的 STL 文件。它通过代码辅助设计 (CAD)、预设生成器和机械结构验证库,显著缩短了从“想法”到“打印件”的迭代周期。该技能支持多种建模路径,包括基于文本描述的 AI 生成、现有模型的修改、自定义功能性零件建模、以及包含铰链、齿轮等运动部件的机械结构设计。 其核心优势在于通过自动化验证和测试(如运动部件自检、打印前故障预测、CLIP模型美学评分)来确保打印成功率,特别适合需要高精度配合或运动功能的设计。技能覆盖了从项目规划、规范编写、建模、功能验证到最终打印准备和反馈学习的完整工作流。支持的平台包括 Claude Code 等支持自定义技能的 AI Agent 环境,通过统一的 `forge` 命令行界面操作。 该技能还集成了本地文本转3D、柔性动物模型生成、Gridfinity 收纳系统、AR预览和场景展示等特色功能,并通过“Fit Card”校准移动部件的间隙,是3D打印爱好者和设计师的强力辅助工具。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/marklkasdorf-del/max-model/tree/HEAD

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

max-model: 创意 -> 已验证、可打印的零件

需求:用户输入 /max-model 后的任何内容(或他们描述的东西)。 FORGE = 本技能的目录(例如 ~/.claude/skills/max-model);以下每个路径都是相对路径。一个 CLI:$FORGE/bin/forge <cmd>(列表见底部)。 环境(见 README):CAD 虚拟环境 $FORGE/.venv-cad(包含 build123d、trimesh、manifold3d、usd-core、opencv、sdf;可覆盖 FORGE_CAD_PY),可选的 AI 虚拟环境 $FORGE/.venv-ai(包含 torch、diffusers、CLIP;可覆盖 FORGE_AI_PY)用于 text3d 和 looks。 打印机:knowledge/printer.json(热床、喷嘴、层厚;示例见 knowledge/printers/)。切片由用户选择的切片器完成:forge 最终提供验证过的 STL 和打印前评估报告(是否支持)。一个可选的 slicer_cmd 钩子能让 forge 报告打印时间和耗材克数。

2026-10-17 基准测试结果 (knowledge/benchmark-2026-10-17.md): 完全规格化的零件与真实 STEP 文件对比,体素 IoU 达到 0.96;但对于细节需要猜测的部分,IoU 在 0.41-0.82 之间;一体打印的运动机制在首次构建时通过了运动扫描,且没有融合间隙(作者尚未用实际打印验证);标志性/有机物体的“外观”是手工建模的薄弱环节(一个手工建模的头盔最终看起来像个蛋)。为此,以下流程用于弥补这个弱点:参考图传递 + 外观评分、本地文本转3D 生成有机模型、基于雕刻的柔性化、搜索并修改标志性道具。

不可违反的规则

  1. 数据优先,图片其次。 任何关于几何形状的断言都必须来自工具的明确输出(如 verify/selftest/preflight/grade JSON 文件)或你本次迭代中读取的渲染图。切勿凭记忆描述 STL 外观。
  2. 对于定制零件,先有规范,再建模:首先创建 spec.md 和 spec.json,其中包含量化的成功标准。
  3. 每次迭代只做一项修改,保留每个 iter_NN/ 目录,每个阶段最多 6 次迭代,然后重新规划。
  4. 所有运动部件必须附带通过的自我测试(扫描范围无碰撞 + 防卡死控制 + 测量间隙)。没有例外;这是本技能在机械结构方面强大的原因。
  5. 每个打印件在切片前都必须执行 forge preflight,并根据其评估结果决定是否使用支撑。 NO-GO = 先修复几何体/朝向。对于一体打印/多体零件,还需使用 forge export <stl> 并将 3MF 文件交给用户,而非 STL:否则切片器的自动支撑会填充间隙并焊接零件(CYCLO-11 的第一次打印因此失败),且 STL 无法携带“支撑关闭”的信息。
  6. 环境: Blender、OpenSCAD 和 GPU torch(text3d、looks)在某些隐藏了 GPU 的 Agent 沙箱中可能会崩溃(Blender 退出码 139)。如果某步骤出现段错误,请在沙箱外运行。纯 Python 代码(build123d、manifold3d、trimesh)可在任何环境中运行。
  7. 简要报告里程碑(所选路线、首次渲染、准备打印的状态及其时间/耗材/评估结果、阻塞项):每项一行,说明用户需要决策的内容。在通道支持发送文件时,附上关键图片(sheet.png、poster.png)和 AR 文件。
  8. 未经用户明确许可,切勿开始打印或花费金钱。下载的模型:请尊重其许可证(CC BY-NC = 不可销售)。

会话启动(30 秒)

ls $FORGE/knowledge/; cat $FORGE/knowledge/{fit-log.md,lessons.md,printer.json}; $FORGE/bin/forge fit show
$FORGE/bin/forge doctor                # 红色警告 -> 建模前修复或报告问题

如果 forge fit show 显示 pip_gap 仍为 [R](研究默认值,未针对本打印机测量):简要提及一次,Fit Card(forge mech build fitcard,约需 1 小时,~16 g)可校准每个运动部件的间隙,并提供打印建议。


阶段 0 — 路线(选择流程,而非工具)

使用第一个匹配的规则。用一行向用户说明选择的路线。

用户需求路线工具
修改一个下载的模型:添加文字/名字、钥匙链环、磁铁、加厚壁、按头围缩放、使底部平坦、镜像REMIX(先下载,再升级)`forge remix text
根据用户提供的尺寸制作一个实用物品:盒子(滑盖/按压盖)、名字钥匙链、标牌、手机支架、某个物体的夹持器、浮雕灯箱MAKE(生成器;间隙从 fit.json 读取;盒子会进行运动检查)`forge make box
一次打印多个/一个完整项目(销售用)PLATE(优化热床布局,显示单个成本)`forge plate <stl...> --fill
一个著名的现有物品(电影头盔、道具、流行玩具、流行设备的外壳)FIND(自行搜索模型网站如 Printables/Thingiverse),然后 REMIX(缩放、分割、磁铁、适配)网页搜索,forge split,forge preflight --orient
一个原创的可穿戴头盔(“没人做过的头盔”)TEXT3D --helmet:颈部切割,按指定头围缩放(默认 160x190 + 填充),3 mm 外壳,面罩 + 4 个磁铁安装座,接缝向下的切片forge text3d "<风格> helmet" --helmet
一些能动的东西(指尖陀螺、铰链、齿轮、陀螺仪、蝴蝶刀、穿绳器、按动器)MECHKIT(如果某个模块适用),否则使用 Mech API 建模forge mech list/build,lib/mechkit/core.py
一只 软体 动物设计一个 SDF 身体(lib/sculpt.py)或获取一个雕刻(模型站/text3d) -> FLEXIFYforge flexify,forge sculpt
一个模型 / 吉祥物 / 生物 / 雕像TEXT3D(本地,免费,约 3.5 分钟)或搜索;同时提供两种选择forge text3d "<想法>" [--base NAME]
一个定制的功能性零件(用于用户物品的支架、夹持器、适配器、外壳)MODEL(以下阶段 1-6)build123d 途径,forge run,forge parts-find
整理抽屉 / 为某个物体制作插件GRIDFINITY(+ PHOTOFIT 用于精确槽位)forge gridfinity,forge photofit
模型超出热床尺寸SPLIT(带定位销和接缝标记)forge split
“这个能打印吗 / 为什么失败了”PREFLIGHT(+ 热力图)forge preflight,forge heat
展示 / 销售模型SHOWCASE + ARforge showcase,forge ar

关于路线选择的坦诚质量说明(作者于 2026-10-17 测量):text3d 人物识别度良好(蝾螈、龙、幽灵吉祥物、鲨鱼),但 60 mm 尺寸时细节较模糊,且需要支撑;通过浮雕从文本生成软体模型显得笨拙(细腿会融合)-> 软体模型优先选择 SDF 设计的身体或人工雕刻;手工建模的有机形状看起来仍然像团块 -> 切勿手工建模头盔/角色,请使用 FIND+REMIX 或 TEXT3D。

阶段 1 — 需求简报(定制零件):带数字的规格说明

  1. 用户已告知的关于目标物体的所有信息(设备型号、测量值、照片)。 1b. 对于任何有名字的物品,进行参考图分析:搜索 6-9 张参考图片/真实物品的高评分设计,查看它们;在 spec.md 中添加“## 形态”部分(比例、2-3 个标志性特征、变体版本)。跳过此步骤曾导致台钳蝴蝶刀变成扁平的棍子,螺旋指尖陀螺变成错误的玩具。
  2. 尺寸:查阅资料,切勿回忆(基准测试:回忆的滑轮 IoU 仅为 0.41)。使用 forge parts-find "<零件>" [--download] + forge step2stl;通过网络获取数据手册;通过网络搜索参考图片。在 spec.md 中注明来源。对于用户拥有且无法查阅资料的物品:PHOTOFIT(forge photofit mat -> 以 100% 比例打印校准垫 -> 拍照 -> 提取轮廓,精度约 0.3 mm)比询问卡尺数字效果更好。
  3. 只询问用户无法找到的信息:一条消息,最多 4 个问题,每个问题提供一个默认值。
  4. 创建 out/<name>/spec.md + spec.json(模板在 templates/)。对配合界面的估计值需标记为 estimate。
  5. 发布“规格就绪:<一行描述> -- 确认开始构建?”。如果风险低且指定了默认值,用户沉默则继续。

阶段 2 — 路径 + 计划

路径用途
b123d(默认)功能性/有尺寸要求/配合关键的零件、外壳、MechKit 模块
scad简单零件或一个 BOSL2 基元(如螺纹)
sdf(lib/sculpt.py)自行设计的有机体:平滑合并、平坦底座、始终水密(壁虎配方)
mesh(lib/meshkit.py、manifold3d)编辑下载的模型/AI 生成的网格、大型布尔运算、柔性化、分割(OCC 在 10 万三角面的雕刻模型上会卡顿)
bpy渲染、体素重网格、文字密集型艺术

在零件文件顶部以注释形式制定计划:功能作为函数列出,参数块使用毫米单位,间隙从 fit.get("pip_gap"/"slide_gap"/...) 获取(切勿硬编码 0.3),原点位于 Z=0 底部的中心位置,打印方向已内置优化(最大平面朝下、悬垂 <= 45°、桥接 < 18 mm、壁厚 >= 2.0 mm),构建顺序,断言列表。

阶段 3 — 小步骤构建

每次迭代:一个修改 -> forge run part.py --lane <lane> --spec spec.json --name <name> -> 读取 verify.json/REPORT.md(检查体积/包围盒的变化是否与预期一致?无变化 = 布尔运算被忽略)-> 读取 sheet.png 一次 -> 进行评估 -> 下一个修改。

  • 运动部件 = Mech API (lib/mechkit/core.py):Mech(name, parts, fixed, [Motion(name, drive, [Move...], control=[...])]) -> selftest() 扫描所有姿态,沿其整个路径运行防卡死控制,并精确测量间隙。通过构造避免碰撞优于事后检查:以枢轴为中心的圆弧/球面可保持间隙恒定(陀螺仪、软体关节);将每个运动部件的扫掠体积保持在平面的一侧(蝴蝶刀枢轴)。齿轮:lib/gears.py。测量而非声明:forge mech ratio <name> [--motion M --driven PART --driver PART] 摆好机构姿势,释放输出端并二分查找无接触区间 -> 测量传动比 + 背隙(ratio.json,若与声明传动比不符则退出码为 3)。摆线针轮减速器:forge mech build cyclo11(lib/cycloid.py 精确齿形 + 根切检查)。工作室渲染:forge showcase <dir> --style studio --still hero|cutaway|exploded、--ghost、--annotate。
  • 在循环中进行打印前检查:对于任何有悬垂的结构,执行 forge preflight out/<name>/<name>.stl。
  • 命名物体:外观评分:在机械结构验证通过后,运行 forge looks out/<name>/<name>.stl --target "<物品>"(基于清晰渲染图的 CLIP 评分;已验证:它能正确区分 human > v2 > v1 版本的蝴蝶刀)。评分 < 30% = 需要迭代设计“形态”(比例、标志性特征),而非机械结构。用它来比较 v1 和 v2,而不是凭猜测。
  • 硬性规则:切勿仅凭单个视图判断;重叠切割 0.05 mm(共面会产生零厚度薄皮,导致“焊接”定位针:测得的间隙为 0.0 而非 0.3 mm);同一故障发生两次 -> 打印子零件编号并重新诊断;最多 6 次迭代,然后重新规划或切换到 FIND 路线。

当 verify 通过所有规格键、selftest 通过(运动件)、preflight 为 GO 或 GO+SUPPORTS、视觉检查清单全部通过时,构建完成。

阶段 4 — 配合校准

  • 首先校准: 一体打印间隙来自 fit.json。在 pip_gap 被标记为 [V](已验证)之前,每个一体打印设计都带有 preflight 的“注意”项。Fit Card 在一次打印中测量 pip_gap(旋转体 0.15-0.40 mm)和 pip_vgap(铰链 0.25-0.45 mm):完成后,询问“用力拧紧后能自由旋转的最小数字是多少?” -> forge fit set pip_gap <n> --from "fitcard <日期>"(以及 pip_vgap)。所有 MechKit/flexify/gridfinity 构建都会自动读取这些值。
  • 配合零件 / 围绕用户物品的零件:装配姿态检查 bin/verify --assembly a.stl b.stl --clearance <fit> --move-b=x,y,z;使用 photofit 或 parts-find 创建代表用户物品的虚拟模型。
  • 仅在 Fit Card 未覆盖的接口类型(螺纹、卡扣、压配)或估计尺寸时使用试模块:最长 10 分钟,3 个变体,带凸起的标签。

阶段 5 — 打印准备 + 移交

  1. forge preflight <stl> [--slice] -> 评估结果 + 支撑策略建议。有机/倾斜零件:forge preflight <stl> --orient(尝试不同倾斜角度;一个头盔曾需要约 20 度角)。forge heat <stl> 生成红/黄色的支撑热力图以供用户参考。
  2. 支撑与否由 preflight 决定:GO -> 关闭支撑;GO+SUPPORTS -> 开启/自动支撑;NO-GO -> 先修复(刀锋接触、融合间隙、不适合 -> forge split)。"SUPPORTS: OFF (required)" = 自动支撑陷阱(一个平坦的底面,与水平面夹角小于 30 度,并且位于另一个不同物体的上方 2 mm 范围内;support_angle / support_trap_gap 在打印机配置文件中):必须保持支撑关闭,否则会焊接间隙。 2b. 在将一体打印/多体文件交给用户之前,始终执行:forge preflight <stl> 然后 forge export <stl>(自动遵循评估结果;文件名以 _SUPPORTS-OFF.3mf / _SUPPORTS-ON.3mf 结尾)。将 3MF 文件交给用户并说明:打开此文件,确认“支撑”复选框状态与文件名一致,不要更改其他任何设置。如果 preflight 报告 NO-GO 是因为模型需要支撑,但添加支撑又会焊接间隙,则在导出前修复几何体(将平坦底面倒角至 45 度,重新定向)。
  3. 在您选择的切片器中,使用步骤 2 的支撑策略和您的常用配置,切片导出的 3MF(对于简单的单主体零件则是 STL);forge 仅通过 3MF 文件设置支撑复选框。(可选:设置 knowledge/printer.json 中的 slicer_cmd,以便 preflight --slice / plate --slice 报告时间和耗材克数。)
  4. 向用户展示:sheet 或 showcase 海报 + 时间/耗材(如果配置了钩子)+ 评估结果 + 一行制作说明。当尺寸/适配成为问题时,提供 forge ar <stl>(USDZ:在 iPhone/Vision Pro 上以真实尺寸预览;GLB 用于 Quest)。
  5. 未经用户许可,切勿开始打印:“热床清空了吗?开始打印 <名称>,预计 <时间>,<耗材克数> 克。”
  6. 报告“<名称> 可打印就绪:<时间>,<耗材克数> 克,<评估结果>。”准备销售?forge showcase <dir> 会生成 mp4/gif + listing.md(成本、建议价格、许可证提醒)。

阶段 6 — 反馈 + 学习

  1. 打印后一行反馈:“哪里不合适?(适配 / 外观 / 强度 / 打印质量 / 没有)”。读取用户可能提供的任何照片。
  2. 间隙 -> forge fit set ...(并在 fit-log.md 中添加一行)。其他数值 -> 写入 fit-log.md / print-tolerances.md,标记为 [V]。
  3. 在 knowledge/lessons.md 中添加 1-3 行(日期 · 项目 · 教训 · 阶段)。新技术 -> 创建 knowledge/<主题>.md(最多 40 行,包含可运行的代码片段)。
  4. 保留 part.py 和规格文件,使其可重新运行。提供一个相关的其他想法(商店脑),但不要开始执行。
  5. 任何技能/工具变更 -> 运行 tests/run_suite.sh(已知答案验证),对于能力声称,运行基准测试(forge grade、forge looks)——证明有所改进。

工具箱 (forge <cmd>)

以 th

…

[为翻译而截断]

相关技能