MCPInstall

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, .ply, or .3mf mesh, wants a build-orientation recommendation, or wants DfAM redesign guidance before slicing with $gcode or regenerating geometry with $cad.

Installs
4.2K
Last 24h
+84
Trending rank
#2218
Security
Pass

Install

Works with every agent the skills CLI supports.

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

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads dfam-check automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

Security audits

Independent scans of the skill's instructions and bundled files.

Gen Agent Trust Hub PassSAFE ·The skill is a specialized geometry analysis tool for 3D printing (Design for Additive Manufacturing). It performs local measurements of mesh files using standard scientific Python libraries. No security risks were identified.
Socket PassNo alerts
Snyk PassLOW ·Risk: LOW · No issues

SKILL.md

The instructions your agent reads when the skill is triggered.

DfAM Check

Provenance: maintained in 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. 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.

A fact family that cannot compute returns {"error": ...} in its place rather than costing the report its other measurements — wall_thickness does this when the dependency set is incomplete, support_volume on geometry with no convex hull. That report is PARTIAL: it carries "partial": true, names the families in partial_sections, and the command exits 2 (0 is a complete report, 1 a mesh that would not load at all). Treat every such object as an unmeasured fact (❓ need more info), never as a measurement of zero, and reinstall requirements.txt before comparing wall limits.

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.

FAQ

What does the dfam-check skill do?

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.

How do I install dfam-check?

Run npx skills add https://github.com/earthtojake/text-to-cad --skill dfam-check in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/dfam-check/ (personal) or .claude/skills/dfam-check/ (project).

Which AI agents can use dfam-check?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is dfam-check safe to install?

Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk passed. As with any skill, read the SKILL.md and bundled scripts before installing.

Who maintains dfam-check?

It is published by earthtojake in earthtojake/text-to-cad. It has 4,219 recorded installs.

More from earthtojake/text-to-cad

View all →

cad

earthtojake/text-to-cad

Create/edit parametric CAD models, organize CAD projects, export STEP/STL/3MF/GLB files, resolve prompt references, and measure geometry with cadgen. Open and visually review existing STEP/STP, STL, 3MF and GLB files in CAD Viewer.

AI & Agents14.1K installs

step-parts

earthtojake/text-to-cad

Find, evaluate, and download common purchasable CAD parts from step.parts, including named off-the-shelf actuators, servos, motors, electronics boards, connectors, screws, bolts, nuts, washers, bearings, standoffs, and other catalog components. Use when Codex needs to search the hosted step.parts catalog before creating simplified placeholder geometry, resolve fuzzy part names, standards, aliases, or dimensions, choose a matching part, fetch a canonical .step file, verify checksums, or use the step.parts API/OpenAPI/catalog endpoints for standard part discovery.

Backend & APIs11.3K installs

sdf

earthtojake/text-to-cad

SDFormat/SDF model and world authoring, validation, and simulator handoff. Use for .sdf files, SDFormat XML, models, worlds, links, joints, poses, frames, inertials, visual/collision geometry, mesh URIs, sensors, lights, physics, plugins, includes, Gazebo, static SDF review, or simulator-specific metadata. Do not use for signed-distance-field geometry. Open and visually review existing SDF files in CAD Viewer.

urdf

earthtojake/text-to-cad

URDF robot description authoring and validation. Use when creating, editing, inspecting, validating, or debugging .urdf files, robot links, joints, limits, inertials, visual/collision geometry, mesh references, frame conventions, or robot-description artifacts. Use the SRDF skill for MoveIt2 semantic groups and IK/path-planning semantics; use the CAD skill for STEP/STL/3MF/DXF/GLB outputs. Open and visually review existing URDF files in CAD Viewer.

srdf

earthtojake/text-to-cad

MoveIt2 SRDF authoring, validation, and planning-semantics workflow. Use when creating, editing, inspecting, or validating .srdf files, MoveIt planning groups, virtual joints, passive joints, end effectors, group states, disabled collisions, URDF-paired planning semantics, or SRDF handoff for live review. Use the URDF skill for robot structure and the SDF skill for simulator descriptions. Open and visually review existing SRDF files in CAD Viewer.

sendcutsend

earthtojake/text-to-cad

Review DXF and STEP/STP uploads for SendCutSend.com orders using its ordering guide, catalog, and specs. Use only for SendCutSend.com preflight reports covering upload readiness, selected material/SKU/thickness/service availability, and service-specific checks for laser cutting, CNC routing, bending, tapping, countersinking, hardware insertion, and finishing.

Popular docs & writing skills

View category →

grill-with-docs

mattpocock/skills

A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

Docs & Writing1.2M installs

lark-markdown

open.feishu.cn

飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。

Docs & Writing778.7K installs

writing-beats

mattpocock/skills

Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.

Docs & Writing490.7K installs

writing-shape

mattpocock/skills

Writing, exploit: shape raw material into an article, paragraph by paragraph.

Docs & Writing490.2K installs

writing-fragments

mattpocock/skills

Writing, explore: mine raw fragments, no structure yet.

Docs & Writing489.6K installs

writing-for-agents

mattpocock/skills

Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.

Docs & Writing479.3K installs