Skip to main content

Module revolve_partial

Module revolve_partial 

Source
Expand description

Exact partial-turn revolution (#172).

A full turn closes on itself, so its walls need seams and its caps are annuli between whole circles (revolve_contour). A partial turn through 0 < |angle| < 2 pi is a different topology: every profile station sweeps a circular ARC, every profile segment appears twice – once in the start wall and once in the end wall – and the two planar end caps are the profile itself, at the start and end angles. Nothing closes round the axis, so no seam edge is needed.

§Topology

For each station i (radius r, height h in the profile plane) there is a start vertex S_i and an end vertex E_i, joined by the arc A_i. Each segment i -> i+1 yields a start-cap edge P_i (S_i -> S_{i+1}), an end-cap edge Q_i (E_i -> E_{i+1}) and one wall face bounded by A_i, Q_i, A_{i+1} reversed and P_i reversed: in the wall’s (angle, v) parameters the trim is the rectangle [u0, u1] x [v_i, v_{i+1}], the same rectangle the full-turn seam loop spans, only narrower.

§Touching the axis

A station ON the axis sweeps no arc: S_i = E_i is one vertex and the adjacent walls lose that edge (a cone wall closes at its apex, a planar wall becomes a sector). A straight segment lying ON the axis sweeps no wall at all; its start and end copies are the same edge, shared by the two caps. A section CROSSING the axis would sweep through itself and is refused, as is an arc whose circle reaches the axis (a spindle or horn torus), exactly as the full turn refuses it.

§Orientation

Every ring is walked so the material is on its left in (r, h): the outer ring anticlockwise, each hole clockwise. Walls then follow the full-turn convention (face forward, loop anticlockwise in (u, v) for a rising segment). The start cap’s plane normal radial(u0) x axis points against the sweep, out of the material, so it is used forward; the end cap’s points into the material, so it is used reversed.

Functions§

revolve_section_partial
Revolve one section – an outer ring and its holes, in the profile plane z = 0 – about the axis through axis_origin along world +y, through angle radians by the right-hand rule, into an exact closed B-rep.