pub fn offset_revolution_face(
solid: &BrepSolid,
face_id: u64,
distance: f64,
) -> Result<BrepSolid, String>Expand description
Push a general surface of revolution with planar neighbours.
The meridian is densely offset and interpolated, then revolved through the
original full or partial sweep. A dense normal-distance residual check
bounds that approximation. Endpoint rims and start/end meridians are rebuilt,
and planar axial/radial neighbours are re-trimmed around the new boundary.
The offset meridian runs between the source parameters at which it reaches
each rim’s cap plane, so a rim is the offset carrier’s intersection with its
cap rather than the offset of the old rim (see
[offset_general_revolution_face]).
A PARTIAL CYLINDER (an extruded sketch arc, a fillet band between planes)
does not take the general lane: its meridian edges usually meet planes that
are parallel to the axis but do not contain it, where keeping a corner at
its old azimuth is wrong. [offset_partial_cylinder_face] re-intersects
those corners exactly first, and only a face outside its scope falls
through to the general lane below.
A boundary whose pcurve is NEITHER a constant-u nor a constant-v line is no
longer refused outright: its 3D image on the offset carrier comes from
crate::image_curve. That transfer is only valid where the boundary is
definitional, so a general image — or a constant-u meridian — against a
FIXED planar neighbour is measured against that neighbour’s plane and
refused, with the number, when it leaves it, because the honest answer
there is a re-intersection this site does not do.