Skip to main content

make_pipe_shell_with

Function make_pipe_shell_with 

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

make_pipe_shell with a frame law and a way of turning corners.

Extended and round corners, and the auxiliary and binormal laws round a sharp corner, sweep a face run by run (as do extended and round corners under the Frenet frame): the spine is cut at its sharp corners, each smooth run swept on its own (a straight run whose section keeps its frame as the prism of it), and the runs joined at each corner, open spine or closed. A mitre runs each side on straight past the corner and trims it by the plane halving the corner; an extended corner runs each side on until its section clears the other’s far side; a round corner turns the half of the section outside the corner about the corner’s axis. The rotation-minimizing frame carries the section across a corner by that turn; the Frenet, auxiliary and binormal laws place it themselves (the Frenet frame by each run’s own curvature), so their runs may meet a mitre with different sections, the difference standing as a face of the mitre plane. A straight run meeting a skinned run at a mitre takes, for each ring the two share within tolerance, the skin’s own fit of it, so the two cut the mitre plane alike. A closed wire sweeps the walls of the face it bounds, the end caps taken off. Between straight legs with the rotation-minimizing frame on an open spine, every corner is built as before: each leg a prism and each round corner the section revolved. An auxiliary or binormal law round a closed spine with no sharp corner sweeps as the rotation-minimizing frame does where its frames are those turned by a fixed angle; elsewhere its own frames, single-valued round the spine, are skinned round it and held to tolerance against the law, each hole a void tunnel of its own shell. Under those laws each hole of a face swept along an open spine sweeps its own solid, cut from the outer one. On a spine with no sharp corner every way of turning corners is the same solid. An open wire down an open spine of lines and arcs under the rotation-minimizing frame sweeps one exact sheet: each line leg the prism of its section and each arc leg its revolution about the arc’s axis, run on straight past each mitred corner and cut on the plane halving it, and at a round corner the section’s part outside the turn revolved about the corner. Inside a corner each leg’s wall runs on until it meets the other’s: on the plane halving a corner between two lines, and on the conic a straight profile edge’s two walls share where a corner against an arc turns in the arc’s plane, or on a curve fitted through a curved edge’s points’ crossings, its error stated as its tolerance and held to tolerance. Round a closed spine of lines and arcs an open wire sweeps a ring of that sheet, from the middle of the first leg round to there, where it closes on itself, the corner where the spine closes turned as any other. The Frenet (round corners only), auxiliary and binormal laws sweep an open wire round sharp corners where their frames are the rotation-minimizing ones turned by a fixed angle, as that sheet. Down an open spine with a leg that is neither a line nor an arc, or under a law whose frames are not those turned by a fixed angle along a spine with no sharp corner, an open wire sweeps one sheet of fitted skins held to tolerance: each profile edge’s strip run by run, neighbouring strips sharing their rails and neighbouring runs their rows, nothing capping the ends. Round its sharp corners each profile point follows the exact sheet’s rules: outside a mitred corner against a curved leg its end row runs on straight to the plane halving the corner, as two ruled faces sharing their cut; outside a round one it turns about the corner’s axis; inside either it runs on until its paths down the two legs cross.

§Errors

As make_pipe_shell, and OgeomError::Construction where the law or the corners are asked of a spine they do not serve: an open wire swept round a corner run by run, or round an extended corner, or down legs too short for their corners’ reach, or into itself, or round a round corner turning so little that its round falls within the confusion distance of its square end, or reaching inside a corner that turns an arc out of its plane, or so far that a point’s two paths there miss each other or meet past a leg’s end, or inside a corner against a curved leg whose paths pass each other, or under a law that turns its section other than the rotation-minimizing frame does round a sharp corner, the Frenet frame along a straight run between sharp corners, a round corner where the law sets the next run’s section other than the first’s turned about the corner (or the frame comes home turned round a closed spine); an open wire round a closed spine with an edge neither a line nor an arc, or round which the rotation-minimizing frame comes home turned; where the guide does not cross a station’s plane, or the spine’s tangent runs along the binormal or toward the guide.