fillet_edges
Applies a fillet (round) to specified edges of a 3D part by a given radius, validating the result to avoid corrupt geometry.
Instructions
Fillet edges of a shaped Part object. edges accepts tags (e_... from
list_edges, preferred), 'EdgeN' strings, or bare 1-based ints. radius is
the blend radius in mm (> 0).
Every result is validated before a handle comes back (issue #283): this OCC build's fillet is edge- and order-sensitive enough to produce corrupt geometry with no exception at all — a 20 mm cube filleted on all 12 edges at r=11 returns one solid with a LARGER volume and a 13 mm larger bounding box. The checks are Shape.isValid(), an unchanged solid count, and no growth of the tight bounding box (a fillet only removes or holds the envelope).
per_edge: skip the single-shot apply and add the edges one at a time, validating after each. Slower (one recompute per edge); for geometry already known to be blend-hostile. allow_partial: accept a partial result instead of aborting. Off by default.
Returns {handle, name, volume (mm^3), edges (the 1-based indices actually filleted), checks {valid, solids, envelope_ok, envelope_growth_mm, envelope_tol_mm}, mode ('batch' | 'per_edge'), partial}. When partial is True the reply also carries skipped_edges and a warnings entry saying the solid is NOT the part that was asked for.
On failure the handler retries per edge to find the culprits, removes the failed feature from the document and raises BlendCheckFailed naming the offending edges and the subset that does fillet cleanly. It never returns a handle to corrupt geometry, and never quietly drops a fillet unless allow_partial was asked for.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| edges | Yes | ||
| handle | Yes | ||
| radius | No | ||
| per_edge | No | ||
| allow_partial | No |