pub fn fillet_edges(
model: &mut Model,
solid: &Shape,
edges: &[Shape],
radius: f64,
tol: Tolerances,
) -> OgeomResult<Built>Expand description
Round a chain of edges in one call, each blend applied in turn and every later edge resolved through the history the earlier blends wrote.
At a tangent junction the neighbouring wedges’ end caps stand in one
plane with one cross-section, and the boolean’s same-domain resolution
melts them: the blends join without a seam face between them. Where
two straight edges of the chain meet at a corner, the later seat runs
on through the earlier blend’s band and the cut trims the two bands
against each other along their own intersection: two fillets meeting
at a corner, the way one edge at a time (fillet_edge) deliberately
does not, since the flush-ended state is what the corner tool
(round_vertex) is built for. Where three or
more edges of the chain meet at one vertex, the corner tool closes it
with the rolling ball’s own patch (the octant of a sphere at a box
corner, the envelope of spheres and cylinders at a vertex no single
ball touches) rather than leaving the bands’ caps standing. The corner
goes first and the bands stop flush against its patch: bands built
first crash into each other at an apex. A corner the tool does not
speak (a concave vertex, more than three surfaces with no shared
ball when one of them is curved) keeps its caps,
which is the honest picture of a corner no ball rolls around. Other
junctions leave the wedges’ caps standing likewise.
Only two blends that round the same way trim each other. A wedge’s cut would eat a fill, and a fill cannot run on through a wedge’s band, so where a convex edge meets a concave one (an L-bracket’s front edge at its re-entrant edge) whichever is asked first takes the corner and the other stops flush against its rail. The two orders then land on different solids, each exact, because the corner is genuinely one rounding or the other and no ball rolls round both.
§Errors
As fillet_edge per edge, and additionally if an earlier blend
consumed or split a later edge: a chain whose members interfere is
refused rather than guessed at.