Design & Frontend

DfAM Check — 3D Printability Analysis

Measure mesh files against Design for Additive Manufacturing rules per process (FDM, SLS, SLA/DLP, metal PBF, MJF) and report evidence-backed printability findings before slicing or printing.

67/ 100
Recommended

Generally reliable with disclosed limitations; trial as directed and keep a rollback path.

See how it was scored ↓
Works as-is in
Codex · Claude Code
Stars
★ 19k
Last updated
1d ago
License
MIT
dfamadditive-manufacturing3d-printingmesh-analysis
+4stlwall-thicknessoverhang-analysisbuild-orientation

What does this skill do, and when should you use it?

dfam-check is one of 13 skills bundled in the earthtojake/text-to-cad repository. It evaluates whether a mesh file is printable by actually measuring geometry facts locally — wall thickness, overhangs, support area and volume — and comparing them against per-process design limits for FDM, SLS, SLA/DLP, metal PBF and MJF. The script is deliberately fact-only: it never slices, uploads files, or starts print jobs, and it never issues pass/fail verdicts itself; comparisons and verdicts belong to the skill workflow, which must cite the limit source for every finding. Each failure comes with a concrete redesign instruction, and when the companion $cad skill is installed, the loop can close by applying the redesign and re-measuring.

  • Reads .stl, .obj, .ply or .3mf meshes and runs scripts/dfam_tool.py measure to record wall thickness, overhang angles and support area/volume
  • Runs orientations to enumerate candidate build orientations and report any that materially reduce support area, with height tradeoffs
  • Selects the limit column for the target process from references/process-limits.md (or a user-provided datasheet) and compares each measured fact against it
  • Emits ✅ pass / ❌ fail / ❓ need more info findings, ordered by severity: watertightness, wall thickness, overhangs/supports, then orientation and cost
  • Attaches a concrete redesign instruction with target numbers to every ❌ fail, and offers to apply it via the $cad skill and re-measure
  • Flags suspicious units via scale.units_suspect and requires the user to confirm units before any material-limit comparison
Good fit
  • An FDM user with an STL who wants to know whether downfacing faces exceed the 45° self-supporting angle and how much support is needed
  • A designer shipping a part to SLS/MJF who needs trapped-powder escape risk flagged (reported as ❓ need more info since the tool does not measure it) and minimum wall thickness verified
  • An engineer who finds a 0.6 mm wall before slicing and needs a fix with coordinates and a target thickness, e.g. 'thicken to ≥1.2 mm at [12.4, 3.0, 8.1]'
  • A user unsure of the target process who measures once with the default 45° limit and gets findings presented per candidate process
  • Teams pairing with the $cad skill to iterate: apply redesign instructions, regenerate geometry, re-measure until no ❌ fail remains
Not a fit
  • Users who want slicing or print-job submission — the skill explicitly never slices, uploads, or starts prints
  • Users analyzing STEP/STP boundary-representation CAD directly — the tool only accepts meshes; a STEP export via the $cad skill is required first
  • Users needing quantitative trapped-volume powder-escape checks for powder processes — not yet implemented

How do you install this skill?

Before you use it
  • Static review only; nothing was executed — the measurement tool's real correctness is unverified. Self-test on a mesh of known thickness/overhang before trusting outputs.
  • requirements.txt contents are not in the evidence; dependency versions and supply-chain security unverified.
  • The repo enables telemetry by default; dfam_tool.py itself sends nothing, but read the README telemetry section before installing the full plugin.
  • Hole diameter, min positive feature, max bridge and powder trapped-powder limits have no measured counterpart; findings there are reported as unchecked, not a complete check.
  • Requires PyPI and GitHub downloads, which may be constrained from mainland China; no Chinese documentation.
  • Only the latest release receives security fixes.
Before you start
Your agent needs
  • Shell / CLI
  • Local filesystem
Install first
  • Python (project environment)
  • dfam_tool.py requirements.txt

This skill ships inside the text-to-cad library; installing the collection installs it. Other Agents (any Agent Skills client, including Claude Code, Codex, Cursor, Gemini and Grok):

npx skills add earthtojake/text-to-cad#latest

Claude Code (plugin route, also brings the CAD server):

claude plugin marketplace add earthtojake/text-to-cad#latest
claude plugin install text-to-cad@earthtojake

The skill needs its requirements.txt installed in the active project Python environment:

pip install -r skills/dfam-check/requirements.txt

How do you use this skill?

Try saying

Once installed, send your agent any of these to trigger it:

  • Check whether bracket.stl is printable in FDM at a 45° self-supporting angle — focus on overhangs and wall thickness
  • This STL is going to SLS; assess trapped-powder escape risk for the enclosed cavities and verify minimum wall thickness
  • Recommend a build orientation for housing.3mf that minimizes support area, and note the height tradeoff
  • Is this part viable for SLA? Give me redesign instructions with target numbers for any failures

Trigger it with a natural-language request about printability, overhang/wall-thickness/support analysis, or build orientation. The workflow: collect print intent (process, material, layer height, datasheets), read references/process-limits.md and pick the process column, run measure on the exact uploaded file (never a generator script or console summary), run orientations when supports are needed and support area is nonzero, then compare each fact to the cited limit. Typical commands:

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

Notes: set --angle-limit to the process's self-supporting angle and re-run when the process changes; exit code 0 is a complete report, 1 a mesh that would not load, and 2 a PARTIAL report (some fact families returned {"error": ...}) — treat partial sections as unmeasured, never as zero.

What are this skill's strengths and limitations?

Pros
  • All measurement is local — no slicing, no uploads, no print jobs
  • Fact-only tool plus mandatory limit citations prevent eyeballing or unverifiable verdicts
  • Per-process limits across five mainstream processes rather than one-size-fits-all
  • Every failure ships with a concrete redesign instruction with target numbers, closing the loop with the $cad skill
  • Graceful degradation: incomplete fact families yield a PARTIAL report instead of discarding the rest, and unmeasured is never conflated with zero
Limitations
  • Requires a Python environment and requirements.txt; an incomplete dependency set silently disables wall_thickness
  • STEP/STP is unsupported as direct input and needs a sidecar STL export via the $cad skill first
  • Trapped-volume powder escape for SLS/MJF is not yet measured, so enclosed cavities can only be reported as ❓
  • Support-volume ratios are coarse upper bounds — cost signals only, not hard verdicts
  • If units are suspect, every overhang/support figure is meaningless until the user confirms units

How does this skill compare with similar options?

Side by side with related skills; every score comes from the same FSRS standard.

Skill FS score Stars Last updated License
DfAM Check — 3D Printability Analysis this page 67 · Recommended ★ 19k 1d ago MIT
CAD (text-to-cad's CAD skill) 55 · Use with care ★ 19k 1d ago MIT
Web Clone Methodology 53 · Use with care ★ 1k 3mo ago MIT
HTML Anything: Turn Anything Into a Page 53 · Use with care ★ 153 5mo ago MIT-0
3D Morph PPT Skill 48 · Use with care ★ 32k 5d ago Apache-2.0

Within the same text-to-cad collection, the separate DFM skill covers manufacturability review for sheet metal, CNC machining and injection molding, including draft, undercuts and projected area. For injection molding or machining instead of 3D printing, DFM is the better fit; dfam-check is focused on per-process additive-manufacturing printability.

How did FollowSkills review this skill?

FollowSkills review · FSRS-2.0
Recommended
67/ 100 5-point scale 3.4 / 5
1Trust20 / 25 · 4.0/5

The skill only measures mesh files locally, explicitly never slicing, uploading, or starting print jobs; no external side effects, transparent data flow, local Python dependencies. Deductions: SKILL.md does not state the telemetry boundary for this skill (repo default telemetry is on, though dfam_tool.py itself sends nothing), and requirements.txt contents are not visible in evidence, so dependency security is unverifiable statically; read-only measurement means no rollback concern — high but not full marks.

2Reliability12 / 20 · 3.0/5

Self-consistent: fact-only tool matches workflow, exit codes 0/1/2 well-defined, PARTIAL reporting, units-suspect flag, per-body breakdown and degenerate-mesh handling all explained in both code and docs with high-quality failure feedback. Deductions: static review cannot execute key paths; no committed tests for dfam_tool.py visible in evidence; scipy/networkx degradation behavior is only described. Conservative static calibration caps this. Confidence low.

3Adaptability11 / 15 · 3.7/5

Clear triggers (.stl/.obj/.ply/.3mf, DfAM questions) and explicit non-fit boundaries (STEP needs STL sidecar, powder trapped-powder unmeasured, three limit rows unmeasured) with ❓ branches. Deductions: depends on pip/PyPI reachability, which may be constrained from mainland China; no Chinese-language support noted.

4Convention12 / 15 · 4.0/5

Well-layered docs (SKILL.md + references + agents yaml), specific cited sources (Hubs/Formlabs/HP/EOS, ISO/ASTM 52910/52911-1), MIT license, clear provenance. Deductions: no skill-level changelog/versioning visible, maintenance responsibility rests only at repo level — incomplete governance keeps it below full marks.

5Effectiveness7 / 15 · 2.3/5

Clear value proposition: local measurement + limit comparison + concrete redesign handoff, a real increment over eyeballing, with directly citable JSON facts and graded findings. Deductions: static review cannot verify output correctness on real meshes; no representative output samples; capped at 7.

6Verifiability5 / 10 · 2.5/5

Script, limits table and interpretation notes are mutually consistent with specific standard and guide citations — auditable primary material. Deductions: no committed tests covering this skill's key paths and no third-party execution evidence; limit-table values cannot be statically re-derived; capped at 5.

1 2 3 4 5 6

Open a dimension to read why it scored that way

Reviewed Oct 10, 2026 Reviewed revision b48ff49e0096 Review evidence[1][2][3][4][5][6][7][8][9][10][11][12][13]

Evidence confidence:Low — Mostly static review, author material or a limited demo; useful for discovery, not high-risk decisions.

See the full review method →

FAQ

Does it slice or start prints for me?
No. The skill states plainly that it only measures locally and compares against limits; it never slices, uploads, or starts print jobs. For slicing, pair it with the collection's $gcode skill.
Does it send my geometry anywhere?
The dfam_tool.py measurements run locally. The broader text-to-cad plugin sends anonymous usage stats by default (never file names, paths, contents or prompts), which you can turn off with uvx cadgen telemetry off — but that is plugin/server telemetry, not this skill's measurement.
What does exit code 2 mean?
The report is PARTIAL: some fact families (e.g. wall_thickness with incomplete dependencies, support_volume without a convex hull) returned {"error": ...}. Treat them as unmeasured (❓ need more info), reinstall requirements.txt before comparing wall limits, and don't read them as zero.
Which input formats are supported?
.stl, .obj, .ply and .3mf meshes. STEP/STP is boundary-representation CAD and exits 1 with a 'failed to load mesh' error — that is the wrong-input signal, not a missing dependency. Export an STL sidecar with the $cad skill first.

More skills from this repository

All from earthtojake/text-to-cad

Dev & Engineering

G-code Slicing Skill (text-to-cad)

Give your agent the power to slice STL, 3MF and OBJ models into printer-ready G-code with OrcaSlicer, using your own printer presets.

★ 19k FS 60 Recommended 1d ago
Dev & Engineering

Bambu Labs Print Handoff Skill

Hand sliced G-code or unsliced models to Bambu Lab printers safely via the official Bambu Connect app or Bambu Studio — the agent never controls the printer.

★ 19k FS 60 Recommended 1d ago
Design & Frontend

CAD (text-to-cad's CAD skill)

Give your AI agent the ability to create and edit parametric CAD models from plain language or images, exporting STEP/STL/3MF/GLB files.

★ 19k FS 55 Use with care 1d ago
Dev & Engineering

URDF Robot Description Skill

Give your agent disciplined authoring and validation for URDF robot description files — frames, joints and inertials computed, never guessed.

★ 19k FS 57 Use with care 1d ago
Dev & Engineering

SRDF Skill: MoveIt Planning Semantics

Author and validate MoveIt SRDF planning semantics on top of an existing URDF, so agents stop handing MoveIt wrong planning groups and unsafe collision rules.

★ 19k FS 62 Recommended 1d ago
Dev & Engineering

DFM Review Skill

Gives your AI agent a process-specific design-for-manufacturing review for sheet metal, CNC machining or injection molding, with measured evidence and cited rules behind every finding.

★ 19k FS 61 Recommended 1d ago
Dev & Engineering

Engineering Drawing (Text-to-CAD)

Turn a 3D part into a dimensioned engineering-drawing PDF — orthographic views, hidden lines, hole callouts and a title block, all projected from the geometry so the drawing follows the model.

★ 19k FS 59 Recommended 1d ago
Dev & Engineering

DXF Generation & Validation Skill

Generate, regenerate, and validate 2D DXF drawings from Python build123d sources or CAD geometry, ready for laser, plasma, and waterjet cutting.

★ 19k FS 57 Use with care 1d ago
Dev & Engineering

SendCutSend Upload Preflight

Reviews DXF and STEP files against SendCutSend's official ordering guide and catalog before upload, so an agent can catch manufacturability problems before you pay for a prototype.

★ 19k FS 57 Use with care 1d ago
Dev & Engineering

text-to-cad SDF Skill

Lets your agent author, validate, and visually review SDFormat robot models and worlds, handing them off cleanly to simulators like Gazebo.

★ 19k FS 55 Use with care 1d ago
Dev & Engineering

step.parts Catalog Skill

Give your agent the ability to search the step.parts hosted catalog and download real off-the-shelf STEP parts — screws, bearings, motors, servos — instead of sketching crude placeholder geometry.

★ 19k FS 55 Use with care 1d ago

Related skills