earthtojake/text-to-cad

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

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/earthtojake/text-to-cad --skill dfam-check

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

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.

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.

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.

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

  1. Run measure on the exact upload file. Do not inspect only a generator

script, source CAD model, or console summary of the file.

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

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

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

같은 저장소의 Skills

더 많은 Skills

모든 Skills
earthtojake
커뮤니티

cad

Creates and edits parametric CAD parts and assemblies as Python build123d models that cadgen's engine builds and the CAD Viewer shows live; exports STEP, STL, 3MF, GLB and xbf files on request; resolves prompt references, measures geometry, and articulates or animates assemblies. Use for 3D CAD modeling, editing a model script (any change to a part's or assembly's .py), organizing a CAD project, exporting or converting CAD files, Quick Edit prompts, mechanisms, and explode or showcase animations

1시간 설치 수
13
GitHub Stars
2.4만
업데이트
10월 31일
earthtojake
커뮤니티

dxf

Generates, regenerates and validates 2D DXF drawings from Python build123d models, exported by cadgen. Use for DXF files, .py drawing scripts, 2D profiles, outlines, templates, gaskets, panels, flat patterns, laser/plasma/waterjet cut layouts, and 2D drawing exports of CAD geometry. Opens and visually reviews existing DXF files in the CAD Viewer.

1시간 설치 수
13
GitHub Stars
2.4만
업데이트
10월 31일
earthtojake
커뮤니티

engineering-drawing

Make an engineering drawing of a part as a PDF - orthographic views with hidden lines and centre marks, real dimensions, hole callouts, notes and a title block on ISO sheets, all projected from the part's geometry so the drawing follows the model. Use when the user asks for a drawing, a dimensioned sheet, shop or manufacturing drawings, a print, or "2D views of this part".

1시간 설치 수
13
GitHub Stars
2.4만
업데이트
10월 31일
earthtojake
커뮤니티

gcode

Slice 3D models into printer-ready G-code with OrcaSlicer, the open-source slicer with built-in profiles for most FDM printers (Prusa, Bambu Lab, Creality, Voron and more). Use when the user wants an .stl, .3mf or .obj model sliced for their printer, as a sliced .gcode.3mf or plain .gcode, headless with OrcaSlicer's command line or by opening the model in OrcaSlicer. Never contacts a printer.

1시간 설치 수
13
GitHub Stars
2.4만
업데이트
10월 31일