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.