关于 dfam-check
DfAM Check 是用于切片或打印前评估网格文件的技能,面向增材制造设计检查。它在本地测量几何并与各工艺的设计限值比较,但不会切片、上传或启动打印任务。
主要功能
- 01测量网格几何事实
- 02按目标工艺选择限值
- 03检查壁厚、悬垂与支撑
- 04分析候选打印方向
- 05输出带依据的设计检查报告
适用场景
- 01打印前检查 STL 的可制造性
- 02比较不同工艺下的壁厚限制
- 03评估支撑需求与打印方向
- 04为不符合项准备重新设计指引
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ earthtojake/ text-to-cad --skill dfam-check安装后在 Claude Code 中输入/dfam-check确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSErequirements.txtagents/openai.yamlreferences/process-limits.mdscripts/dfam_tool.py详细介绍
DfAM 检查
来源:由 earthtojake/text-to-cad 维护。 将已安装的本地技能文件作为运行时的事实依据;仓库链接仅用于溯源和发布审查。
在切片或打印前,使用此技能为网格文件生成审慎且有依据的 DfAM 报告。它在本地测量几何事实,并将其与各工艺的设计限制进行比较;它不会切片、上传或启动打印任务。
几何检查
在当前项目的 Python 环境中,使用 scripts/dfam_tool.py 获取所有几何事实(先安装 requirements.txt——每次运行都需要它)。该工具只报告事实:
它只报告测量结果,不会给出通过/失败或就绪状态。比较和判定属于此工作流。只要该工具能够测量,就不要凭目测或渲染图估算壁厚、悬垂角度或支撑体积。
python scripts/dfam_tool.py measure part.stl --angle-limit 45
python scripts/dfam_tool.py orientations part.stl --angle-limit 45
测量前,先将 --angle-limit 设为 references/process-limits.md 中目标工艺的自支撑角度;目标工艺变更时需重新运行,因为聚合支撑面积事实会按此角度分箱。
STEP/STP 输入属于边界表示 CAD,而非网格。如果已安装 $cad 技能,先用它导出 STL 附属文件,再在此处测量 STL。应报告这一补救措施,而不是尝试直接解析 STEP。对 STEP 运行 measure 会以 {"error": "failed to load mesh: ..."} 退出,表示输入格式错误,而非缺少依赖——不要为了绕过它而安装额外的网格加载器。
无法计算的事实类别会在对应位置返回 {"error": ...},不会影响报告中的其他测量结果;例如,依赖项不完整时会出现 wall_thickness 错误,几何体没有凸包时会出现 support_volume 错误。此类报告为 PARTIAL:包含 "partial": true,在 partial_sections 中列出相关类别,命令退出代码为 2(0 表示完整报告,1 表示网格完全无法加载)。将此类对象一律视为未测量的事实(❓ need more info),绝不能视为测量值为零;比较壁厚限制前,请重新安装 requirements.txt。
工作流
- 收集打印意图:目标工艺、材料、层高,以及用户可提供的任何机器或材料数据表。如果工艺未知,先使用默认的 45° 限制测量一次,然后按候选工艺分别呈现结果,而不要猜测单一判定。
- 阅读
references/process-limits.md,选择目标工艺对应的限制列。用户提供的机器/材料数据表优先于默认值;每项比较都要注明所用来源。 - 对用户实际上传的文件运行
measure。不要只检查生成器脚本、源 CAD 模型或文件的控制台摘要。 - 如果工艺需要支撑,且测得的支撑面积非零,则运行
orientations。报告任何能显著减少支撑面积的候选方向,并说明其构建高度方面的权衡。 - 将每项测量事实与注明来源的限制进行比较,并使用审慎的状态标签报告结果:
✅ pass:测量事实符合注明的限制。❌ fail:测量事实直接违反注明的限制。❓ need more info:工艺背景缺失、几何未测量、采样过于稀疏而不可信,或受工具限制。
- 按严重程度排序发现:先报告水密性(所有工艺中都会阻止切片),然后是壁厚,再然后是悬垂/支撑,最后是方向和成本信号。
对比
仅比较可信的证据对。
- 每项发现都要注明限制值来源(工艺限制表中的行,或用户数据表中的字段)和测量事实(JSON 字段路径)。
- 当
p05_mm低于壁厚限制时,即使单凭min_mm可能只是采样异常,也应视为违规;报告这两个数值。 - 对于装配体,
wall_thickness会报告body_count和per_body明细。应将违规归因于所属的实体;多个实体合并后的薄壁数值不能作为针对整个零件的发现。 - 不要对粉末工艺(SLS、MJF)应用支撑角度检查;相关的粉末工艺检查是封闭体积中的粉末是否能排出,而此工具目前无法测量这一项——如果很可能存在封闭空腔,请报告为
❓ need more info。 - 不要暗中重新缩放几何体。
scale.units_suspect根据包围盒对角线测得:当其为true时,源文件单位很可能是米或英寸,每个朝下的面都会被判定为放置在平台上,而悬垂和支撑数值为 0.0 毫无意义。请报告单位/缩放问题,并要求用户确认单位,再与任何材料限制进行对比。 - 支撑体积比是粗略的上限;应将其报告为成本信号,而非硬性失败,除非用户设定了明确的预算。
重新设计交接
对于每项 ❌ fail,都要提供具体、通俗易懂的重新设计说明,并包含目标数值(例如“将 [12.4, 3.0, 8.1] 处的壁厚从 0.6 mm 加厚至 ≥1.2 mm”,或“将 [23.3, 10.0, 52.0] 处的悬垂倒角调整至 ≥45°”)。安装 $cad skill 后,主动提出使用它应用重新设计说明,并在此重新测量重新生成的几何体,重复此过程,直至不再有 ❌ fail 发现。