Skip to main content

fillet_edge_distances_variable

Function fillet_edge_distances_variable 

Source
pub fn fillet_edge_distances_variable(
    model: &mut Model,
    solid: &Shape,
    edge: &Shape,
    face: &Shape,
    on_face: &RadiusLaw,
    on_other: &RadiusLaw,
    profile: RoundProfile,
    tol: Tolerances,
) -> OgeomResult<Built>
Expand description

Round a straight edge between two planar faces with a band that meets face at the distance on_face gives and the edge’s other face at the distance on_other gives, each a law read by the fraction of the edge from its start, its section profile between the two contacts.

The band is exact: over each stretch where both laws are one cubic it is the section’s rational arc swept with its control points moving along the laws’ own cubics, and it meets each face with its tangent plane along a contact curve. Naming the other face with the laws swapped builds the same solid, to the bit, and two laws holding one distance each are fillet_edge_distances by the same call. The band’s ends are square caps: each end of the edge must meet only faces square to it.

What solid shares with other shapes is copied before it is worked on (ogeom_algo::on_own_nodes), which leaves them as they are.

§Errors

OgeomError::Construction where a law states no usable distance, face is not one of the edge’s two faces, a conic’s rho is not strictly between 0 and 1, the edge is not straight between two planes, an end of the edge meets a face not square to it, or a contact sets back past its face’s side; and as fillet_edge_distances where both laws hold one distance.