dfm_check
Screen 3D parts for manufacturability by detecting draft violations, undercuts, and thin walls relative to a pull axis, and testing sheet-metal bend rules.
Instructions
Screen a part for manufacturability against a pull/tool axis. Give a
hand-built faces list of {name, draft_deg, wall_mm?} — draft_deg relative to
pull_axis (0 = a vertical wall needing draft; <0 = a re-entrant undercut) — OR
a live handle, whose per-face descriptors are read off the solid (draft vs
the pull axis + a ray-cast undercut test + inward-chord wall sampling) and
scored identically (v2 Shape wiring). draft_violations are 0≤draft<min_draft_deg,
undercut_faces are draft<0, min_wall_violations are wall_mm<min_wall_mm
(defaults by process: injection 1.0, cnc 0.5, sheet/fdm 0.8).
Sheet metal: a handle built by sheet_base/sheet_flange/sheet_tab/sheet_hem is
ALSO screened against the press-brake rules (minimum bend radius by material,
minimum flange length, hole-to-bend distance, refold collision) with no extra
argument — those rules are DELEGATED to the same implementation sheet_check
calls, so the two tools cannot return different verdicts on one part. Pass an
explicit sheet block {thickness_mm, material?, bends, holes?, interferences?}
to screen bends on a part AnkusDrive did not model.
Returns {process, pull_axis, min_wall_mm, draft_violations, undercut_faces,
min_wall_violations, score, pass} — plus n_faces + wall_thickness_stats on the
handle path, and a sheet sub-result {ok, findings, rules, fidelity, band_pct}
whose failures also gate pass on the sheet-metal path.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| faces | No | ||
| sheet | No | ||
| handle | No | ||
| process | No | injection | |
| pull_axis | No | +z | |
| min_wall_mm | No | ||
| min_draft_deg | No |