Skip to main content

round_vertex

Function round_vertex 

Source
pub fn round_vertex(
    model: &mut Model,
    solid: &Shape,
    vertex: &Shape,
    radius: f64,
    tol: Tolerances,
) -> OgeomResult<Built>
Expand description

Round a solid’s vertex with a ball of radius.

The construction is the corner family’s centre of gravity, promoted from the B2 proof: the corner block spanned by the edges less the ball seated a radius in from every host plane is exactly the spike a rounded corner sheds, and the general boolean does the shedding. The block’s faces through the ball’s centre are square to the edges, so each edge’s flush band ends on the ball’s rim: three sequential fillets at a box corner followed by this call round the vertex the setback way, and the b2_three_fillets_and_the_corner_tool_round_the_vertex pin measures the result against a closed form. At a vertex of more edges the corner goes first and the fillets follow (four bands built before the corner crash into each other at a pyramid’s apex) and the block is the polyhedron of the N host planes and the N planes square to the edges.

A vertex whose planes share no tangent ball (a rectangular pyramid’s apex, any general N-edged vertex) is rounded by the envelope of every ball a radius in from all of them: a sphere at each vertex of the region the ball’s centre may occupy and a cylinder along each ridge between two of them, each cut with its own compartment, the spheres by the one-ball tool on their three planes and the ridges by the flush fillet of a virtual crease. The compartments meet on the planes square to the ridges, cap to cap.

A vertex where a curved face meets (fewer than three planes pass through it) is rounded by the one ball touching the three surfaces that do, wherever they curve: its centre walked to a radius in from each, the compartment bounded by the three planes through the centre and two touch points, clipped to the solid, less the ball.

§Errors

OgeomError::Construction if the vertex is not a vertex of the solid; if fewer than three planes pass through it and other than three surfaces do, or the ball does not seat inside every face; if the region the ball’s centre may occupy has a tip vertex touching more than three planes without one ball touching all of the corner’s, or with other than three edges leaving it; or if the corner turns out concave, where a ball adds material instead of shedding it and a tool built from a cut cannot say so. The corner may be oblique: the block is then the hexahedron bounded by the host planes and the three planes through the ball’s centre square to the edges.