# Dfam Check

Measure mesh files against Design for Additive Manufacturing (DfAM) rules and report...

- Repository: https://github.com/earthtojake/text-to-cad (24718 stars)
- Category: Design
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add earthtojake/text-to-cad --skill dfam-check -g -a claude-code -y`
Codex: `npx skills add earthtojake/text-to-cad --skill dfam-check -g -a codex -y`
Cursor: `npx skills add earthtojake/text-to-cad --skill dfam-check -g -a cursor -y`
Gemini CLI: `npx skills add earthtojake/text-to-cad --skill dfam-check -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add earthtojake/text-to-cad`

## 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`.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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.

```bash
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 with it first, then measure the STL here.
With `$cad`, `cadgen export <id> part.stl` writes one from the model (or `cadgen export part.step part.stl` from a STEP).
Report that remediation instead of attempting raw STEP parsing. `measure`
on a STEP exits 1 with `{"error": "failed to load mesh: ..."}`; that is the
wrong-input signal, not a missing dependency, do not install extra mesh
loaders to work around it.

The rest: https://github.com/earthtojake/text-to-cad/blob/HEAD/skills/dfam-check/SKILL.md
