Skip to main content
Glama

DFM Check

dfm_check
Read-only

Screen a part for manufacturability against a pull axis, detecting draft, undercut, wall-thickness, and sheet-metal violations, returning pass/fail and a score.

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

TableJSON Schema
NameRequiredDescriptionDefault
facesNo
sheetNo
handleNo
processNoinjection
pull_axisNo+z
min_wall_mmNo
min_draft_degNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint and openWorldHint, so the description carries the full behavioral burden. It discloses violation definitions, process-dependent thresholds, handle-side measurement methods, delegation to sheet_check, and how sheet failures gate the final pass. There is no contradiction with the readOnlyHint; the tool screens and returns results without mutating anything.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but dense and well-organized: general mechanics, sheet-metal specifics, then return shape. It front-loads the purpose and avoids filler. A little more restraint would improve readability, but almost every sentence carries necessary technical detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With seven optional parameters, no output schema, and multiple input paths, the description is unusually complete. It documents the return fields, which sub-results appear on which path, how sheet-metal failures affect pass, and the relationship to sheet_check. An agent has enough information to invoke the tool correctly without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 0% description coverage, so the description must compensate, and it does extensively. It defines the faces list structure, the live handle semantics, the sheet block fields, process-dependent min_wall_mm defaults, and exact violation formulas. Minor details like accepted process strings and pull_axis format are left to defaults, but the core meaning of every parameter is effectively documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and scope: 'Screen a part for manufacturability against a pull/tool axis.' It clearly defines the three input modes and distinguishes this tool from sheet_check by stating that the press-brake rules are delegated to the same implementation sheet_check calls. An agent can tell what dfm_check does and how it differs from related screening tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains when to provide a faces list, when to provide a handle, and when to pass an explicit sheet block, including the sheet-metal special case. It explicitly names sheet_check and notes the two tools share the same implementation and cannot disagree. It does not fully contrast dfm_check with broader siblings like dfa_check or moldability_check, but within its stated domain the usage guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools