Skip to main content

offset_revolution_face

Function offset_revolution_face 

Source
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.