Skip to main content
Glama

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

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/5.0
Behavior4/5

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

With no annotations the description must carry the full behavioral burden, and it does: it defines scoring semantics, the exact meaning of draft_violations/undercut_faces/min_wall_violations, per-process default wall thicknesses, and the important guarantee that sheet rules are DELEGATED to sheet_check's implementation so both tools cannot disagree. It never explicitly states that the screen is side-effect-free/read-only or what happens on a missing/invalid handle.

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 paragraph is long but dense and front-loaded with the purpose; the 'Sheet metal:' prefix segments the second concern. Nearly every clause (violation definitions, per-process defaults, delegation guarantee) earns its place, though the parenthetical about ray-cast/underscore sampling could be trimmed.

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

Completeness4/5

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

For a 7-parameter, zero-schema-coverage tool with no output schema and no annotations, the description is strong: it documents inputs, defaults, and the full return object ({process, pull_axis, min_wall_mm, draft_violations, undercut_faces, min_wall_violations, score, pass} plus handle-path extras and the sheet sub-result). Remaining gaps are the process/pull_axis value vocabularies and any statement about side effects.

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?

Schema description coverage is 0% across 7 parameters, so the description does all the work: it explains the shape of faces ({name, draft_deg, wall_mm?}), the meaning of draft_deg relative to pull_axis, the sheet block fields, and the fact that defaults for min_wall_mm are derived from process (injection 1.0, cnc 0.5, sheet/fdm 0.8). Only min_draft_deg is covered indirectly and the valid process enum is not enumerated.

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

Purpose4/5

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

States a specific verb and resource ('Screen a part for manufacturability against a pull/tool axis') plus the core inputs and outputs, so the agent knows exactly what the tool computes. It does not, however, distinguish itself from the many sibling manufacturability screeners (moldability_check, cnc_machinability_check, dfa_check, pack_check); it only notes that sheet rules are shared with sheet_check.

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

Usage Guidelines3/5

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

Gives conditional input guidance ('OR a live handle', 'Pass an explicit sheet block ... to screen bends on a part AnkusDrive did not model'), which implies when each input path is appropriate. It never states when to choose this tool over the sibling screeners, leaving tool selection to inference.

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