analyze_structural_risks
Analyze an STL mesh for structural weak points and return risk locations with severity, helping agents find where a design may fail under load before printing.
Instructions
Analyze an STL mesh for structural weak points.
Goes beyond printability to find **structural** risks:
- **thin_neck**: narrow cross-sections that will snap under load
- **stress_concentration**: abrupt section changes that focus stress
- **cantilever**: unsupported overhanging geometry
- **sharp_corner**: sharp inside (concave) corners, where cracks start;
outside edges never count
- **insufficient_base**: topple risk from height-to-base ratio
- **weak_layer_adhesion**: overhangs in structurally critical areas
Returns risk locations as (x, y, z) coordinates in mm so agents
can reason about *where* problems are, not just *that* they exist.
A file smaller than anything a printer makes (a scene exported
in metres) is answered with ``units_question`` and no risk: the
counts are ``None`` until its size is settled.
:param file_path: Path to the STL file.
:param min_cross_section_mm2: Minimum safe cross-section area.
Leave unset for Kiln's own threshold.
:param sharp_angle_threshold_deg: How far the surface must turn inward
across an edge, in degrees, for an inside corner to count as
sharp. Leave unset for Kiln's own threshold, the same for
every caller.
:returns: Dict with ``risks`` list, each containing location, severity, and description.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"file_path": "<file_path>"
},
"name": "analyze_structural_risks"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the STL file. | |
| min_cross_section_mm2 | No | Minimum safe cross-section area. Leave unset for Kiln's own threshold. | |
| sharp_angle_threshold_deg | No | How far the surface must turn inward across an edge, in degrees, for an inside corner to count as sharp. Leave unset for Kiln's own threshold, the same for every caller. |