Skip to content
Design
Skill

/dfam-check

Measure mesh files against Design for Additive Manufacturing (DfAM) rules and report printability findings per process (FDM, SLS, SLA/DLP, metal PBF, MJF). Use when the user asks whether a part is printable, wants overhang/wall-thickness/support analysis of an `.stl`, `.obj`,

From plugin
cad
16k12 skills
Install
$ npx -y skills add earthtojake/text-to-cad --skill dfam-check --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/dfam-check

Context preview

The summary Claude sees to decide when to auto-load this skill.

Measure mesh files against Design for Additive Manufacturing (DfAM) rules and report printability findings per process (FDM, SLS, SLA/DLP, metal PBF, MJF). Use when the user asks whether a part is printable, wants overhang/wall-thickness/support analysis of an `.stl`, `.obj`,

SKILL.md

dfam-check.SKILL.md
name: dfam-check
description: Measure mesh files against Design for Additive Manufacturing (DfAM) rules and report printability findings per process (FDM, SLS, SLA/DLP, metal PBF, MJF). Use when the user asks whether a part is printable, wants overhang/wall-thickness/support analysis of an `.stl`, `.obj`, `.ply`, or `.3mf` mesh, wants a build-orientation recommendation, or wants DfAM redesign guidance before slicing with `$gcode` or regenerating geometry with `$cad`.

DfAM Check

Provenance: maintained in [earthtojake/text-to-cad](https://github.com/earthtojake/text-to-cad). Use the installed local skill files as the runtime source of truth; the repository link is only for provenance and release review.

Use this skill to produce conservative, evidence-backed DfAM reports for mesh files before slicing or printing. It measures geometry facts locally and compares them against per-process design limits; it never slices, uploads, or starts print jobs.

Geometry Inspection

Use `scripts/dfam_tool.py` in the active project Python environment for all geometry facts (install `requirements.txt` first — every run needs it). The tool is fact-only: it reports measurements and never emits pass/fail or readiness statuses. Comparisons and verdicts belong to this workflow. Do not estimate wall thickness, overhang angles, or support volume by eye or from renders when the tool can measure them.

python scripts/dfam_tool.py measure part.stl --angle-limit 45
python scripts/dfam_tool.py orientations part.stl --angle-limit 45

Set `--angle-limit` to the target process's self-supporting angle from `references/process-limits.md` before measuring, and re-run when the target process changes: the aggregate support-area facts are binned against it.

STEP/STP input is boundary-representation CAD, not a mesh. When the `$cad` skill is installed, export an STL sidecar with it first, then measure the STL here. Report that remediation instead of attempting raw STEP parsing.

Workflow

1. Collect print intent: target process, material, layer height, and any machine or material datasheet the user can provide. If the process is unknown, measure once with the default 45° limit, then present findings per candidate process rather than guessing a single verdict. 2. Read `references/process-limits.md` and select the limit column for the target process. A user-provided machine/material datasheet overrides the defaults; cite whichever source is used for every comparison. 3. Run `measure` on the exact upload file. Do not inspect only a generator script, source CAD model, or console summary of the file. 4. Run `orientations` when the process requires supports and the measured support area is nonzero. Report any candidate that materially reduces support area, with its build-height tradeoff. 5. Compare each measured fact to the cited limit and report findings with restrained status labels:

  • `✅ pass`: the measured fact satisfies the cited limit.
  • `❌ fail`: a measured fact directly violates the cited limit.
  • `❓ need more info`: missing process context, unmeasured geometry,

sampling too sparse to trust, or tool limitations. 6. Order findings by severity: watertightness first (blocks slicing for every process), then wall thickness, then overhangs/supports, then orientation and cost signals.

Comparison

Compare only trustworthy pairs of evidence.

  • Cite the limit source (process-limits table row, or the user's datasheet

field) and the measured fact (JSON field path) for every finding.

  • Treat `p05_mm` below the wall-thickness limit as a violation even when

`min_mm` alone could be a sampling outlier; report both values.

  • On an assembly, `wall_thickness` reports `body_count` and a `per_body`

breakdown. Attribute a violation to the body it belongs to; a thin figure pooled across bodies is not a finding against the part as a whole.

  • Do not apply support-angle findings to powder processes (SLS, MJF); the

relevant powder-process check is trapped-volume powder escape, which this tool does not yet measure — report that as `❓ need more info` when enclosed cavities are likely.

  • Do not silently rescale geometry. `scale.units_suspect` is measured from

the bounding-box diagonal: when it is `true`, the source is probably in meters or inches, every down-facing face reads as resting on the plate, and overhang and support figures of 0.0 mean nothing. Report a unit/scale finding and ask the user to confirm units before comparing anything against a material limit.

  • Support-volume ratios are coarse upper bounds; report them as cost

signals, not hard failures, unless the user has set an explicit budget.

Redesign Handoff

For every `❌ fail`, include a concrete, plain-language redesign instruction with target numbers (for example "thicken the wall at [12.4, 3.0, 8.1] from 0.6 mm to ≥1.2 mm" or "chamfer the overhang at [23.3, 10.0, 52.0] to ≥45°"). When the `$cad` skill is installed, offer to apply the redesign instructions with it and re-measure the regenerated geometry here, repeating until no `❌ fail` findings remain. When `$cad-viewer` is installed, hand the measured file path(s) to it so the user can inspect the findings visually.

Read more
Ships withcad

text-to-cad is a library of agent skills for generating, inspecting, sourcing, slicing, and handing off CAD and robot-description artifacts from local project files. CAD URDF SRDF / MoveIt2

Get the whole plugin
Stats
15,697
Stars
1,619
Forks
Active
Maintenance
Python
Language
MIT
License
10h ago
Last commit
4mo ago
Created
13d ago
Added

Repo: earthtojake/text-to-cad

Other skills on cad.

smui
Skill

smui

Local copy of the **smui** ("spacemolt") design system (<https://smui.statico.io/skill.md>), adapted for the CAD Viewer. smui is a Nord-inspired terminal…

@earthtojake@earthtojakeView Skill
cad
Skill

cad

Create, modify, inspect, and validate parametric CAD parts and assemblies authored as cadgen model scripts. Use for natural-language CAD specs, reference…

@earthtojake@earthtojakeView Skill
dxf
Skill

dxf

Generate, regenerate, and validate 2D DXF drawings from Python build123d sources. Use for DXF files, `.py` drawing scripts, @dxf models, 2D profiles, outlines,…

@earthtojake@earthtojakeView Skill
gcode
Skill

gcode

Generate, inspect, dry-run, and statically validate plain FDM `.gcode` from 3D mesh files by orchestrating real slicer CLIs. Use when Codex needs to slice…

@earthtojake@earthtojakeView Skill