Skip to main content

sweep_along

Function sweep_along 

Source
pub fn sweep_along(
    model: &mut NamedModel,
    namer: &Namer,
    solid: Option<&str>,
    chain: &Chain<NurbCurve3D>,
    plane: &CoordinateSystem,
    loops: &[SweepLoop],
    control: &Control,
    rebuild: Option<Rebuild>,
) -> GeopResult<BuiltBody>
Expand description

Sweeps loops — the first the outer loop, counter-clockwise in plane’s (u, v), the rest holes in it, clockwise — along chain, changing as control says (see [followed]): into a solid named solid, or, without one, into sheets. Either way round, the solid comes out with its faces pointing outwards.

Where the path turns a corner at an arc or a spline, the profile projected onto the plane bisecting the corner lies on neither swept wall, as it does between two lines. Each wall there is then put on the surface the profile, carried rigidly, sweeps along its own curve, and the body rebuilt around them (rebuild): the walls either side of the corner meet where they cross. A joint of the profile is where its paths either side cross the walls on the other side: for a planar path, one point, since both paths run at the joint’s height above the path’s plane; otherwise two, one each, joined by a piece of the crossing (see [apart_at_corner]). Where the walls either side touch, the profile’s normal along the axis the path turns about, they cross in an X: a point inside a curve of the profile is made a joint of it there, named X@J for the curve X and the corner J, and is one vertex. Refused, by name, for a path that twists, scales or follows rails round such a corner.

Named after the profiles’ curves X and joints P and the chain’s curves C and joints J (see crate::sweep::sweep): the walls N(X,C), their edges at the joints N(X,J), the edges between N(P,C), the vertices N(P,J); for an open chain, the caps N(start) and N(end).