Skip to main content

make_sweep_surface

Function make_sweep_surface 

Source
pub fn make_sweep_surface(
    model: &mut Model,
    profile: &Shape,
    spine: &Shape,
    law: &PipeLaw<'_>,
    tol: Tolerances,
) -> OgeomResult<Built>
Expand description

Sweep a profile along a spine into a sheet.

The profile is an edge or a wire, open or closed, planar or not, swept as it stands: it is the sheet’s first section, and law turns it about the spine the way it turns a pipe’s section (PipeLaw::Fixed carries it by translation). The sheet has one face per profile edge and spine edge, each spine edge’s faces skinned through their own copies and meeting the next edge’s on the copy at the edges’ shared vertex, and no caps; its far end is the profile where the law carries it to the spine’s end. The skin passes through rigid copies of the profile placed along the spine, exactly, and keeps within ten confusions of the swept profile between them, measured halfway between each pair of copies.

§Errors

OgeomError::Construction if the profile is not an edge or a wire or has a curve with no exact B-spline form; if the spine is closed (a sweep surface along a closed spine is not built), turns a sharp corner, or stands still; and as the law refuses its spine (a Frenet frame along a spine that never bends, a guide the stations’ planes do not cross). OgeomError::NotDone if the skin cannot reach the target with the most sections it is built through.