Skip to main content

make_thick_sheet

Function make_thick_sheet 

Source
pub fn make_thick_sheet(
    model: &mut Model,
    sheet: &Shape,
    thickness: f64,
    both_sides: bool,
    tol: Tolerances,
) -> OgeomResult<Built>
Expand description

Thicken a sheet (a face or an open shell) into a solid: the sheet moved thickness along its normals (a negative thickness against them), or by half of it to each side when both_sides, the two layers joined by side faces along the sheet’s free edges.

The layers are built as offset_sheet builds them, so a free-form face is fitted to the same bound and reports its deviation in its tolerance. Where two faces meet at a crease, their offsets meet on the mitre: each layer’s faces are cut back or run on to where their moved surfaces cross, and the borders ending at the crease with them. Each side face is the ruled face between a free edge’s two images: a plane or a cylinder where the rulings make one on the edge’s own parameter, and otherwise a B-spline fitted to the rulings to the same bound (the thickness standing for the distance), its deviation recorded the same way; along a border ending at a crease it is the flat face between the images.

§Errors

As offset_sheet but for creases, and if the sheet is closed or has no free edge (a closed shell bounds a solid already; hollow it with make_thick_solid), a free edge runs into a point where its face has no normal, or the layers run into each other. A crease is refused where it closes on itself, ends where more than one border of each of its faces meets it, is walked the same way by both faces, folds its faces back onto each other, or where a border ending at it is not flat with its offset or does not reach the mitre, or its mitred edges have no exact chart image on the moved faces.