mcpField
D
dfam-check

dfam-check

github.com/earthtojake测试与质量23.9k4.4k 次安装今天更新
代码仓库

关于 dfam-check

DfAM Check 是用于切片或打印前评估网格文件的技能,面向增材制造设计检查。它在本地测量几何并与各工艺的设计限值比较,但不会切片、上传或启动打印任务。

主要功能

  1. 01测量网格几何事实
  2. 02按目标工艺选择限值
  3. 03检查壁厚、悬垂与支撑
  4. 04分析候选打印方向
  5. 05输出带依据的设计检查报告

适用场景

  1. 01打印前检查 STL 的可制造性
  2. 02比较不同工艺下的壁厚限制
  3. 03评估支撑需求与打印方向
  4. 04为不符合项准备重新设计指引

安装

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

$npx skills add https://github.com/earthtojake/text-to-cad --skill dfam-check

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

包含的文件

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

LICENSE
requirements.txt
agents/
openai.yaml
references/
process-limits.md
scripts/
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。

工作流

  1. 收集打印意图:目标工艺、材料、层高,以及用户可提供的任何机器或材料数据表。如果工艺未知,先使用默认的 45° 限制测量一次,然后按候选工艺分别呈现结果,而不要猜测单一判定。
  2. 阅读 references/process-limits.md,选择目标工艺对应的限制列。用户提供的机器/材料数据表优先于默认值;每项比较都要注明所用来源。
  3. 对用户实际上传的文件运行 measure。不要只检查生成器脚本、源 CAD 模型或文件的控制台摘要。
  4. 如果工艺需要支撑,且测得的支撑面积非零,则运行 orientations。报告任何能显著减少支撑面积的候选方向,并说明其构建高度方面的权衡。
  5. 将每项测量事实与注明来源的限制进行比较,并使用审慎的状态标签报告结果:
    • ✅ pass:测量事实符合注明的限制。
    • ❌ fail:测量事实直接违反注明的限制。
    • ❓ need more info:工艺背景缺失、几何未测量、采样过于稀疏而不可信,或受工具限制。
  6. 按严重程度排序发现:先报告水密性(所有工艺中都会阻止切片),然后是壁厚,再然后是悬垂/支撑,最后是方向和成本信号。

对比

仅比较可信的证据对。

  • 每项发现都要注明限制值来源(工艺限制表中的行,或用户数据表中的字段)和测量事实(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 发现。

评论

支持 Markdown