docs / features / Path Sweep

Path Sweep

Path Sweep feature dialog

Status: Implemented

Path Sweep is the dedicated swept-solid operation: it drives a closed planar profile along a path curve, optionally twisting it about the path tangent as it goes.

It is a different feature from Sweep (SW). Sweep's default translate mode slides the profile along straight segments without rotating it, and its pathAlign mode carries the profile along curves as well, but Sweep refuses any non-zero twist. Use this feature for a twist, or to have the section centred on the path and square to it.

Both features now take the same kind of path selection (a whole sketch, or connected edges), and they divide on the path's shape:

The path isUseBecause
smooth — a curve, or segments meeting tangentiallyPath Sweep (here), or Sweep with orientationMode: pathAlignthe profile turns to follow the path (the two place it differently — see below)
a cornered polylinePath Sweep (here), or Sweep with either modea corner between two straight segments is mitred — see Cornered paths. SW's translate is the one that does not rotate the profile
smooth and closed, flat or notPath Sweep (here), or pathAligna loop sweeps as one capless ring — see Closed paths
cornered and closed (a picture frame), flat or notPath Sweep (here), or pathAlignthe whole frame: a mitre at every joint, the closing one included, and no caps — see Cornered paths
cornered at a curved segmentneither — refuseda mitre needs two straight directions to bisect; a curve has none, and nothing mitres some joints while skinning others
a closed path that crosses itselfneither — refusedthe sweep would pass through itself where the two sides cross

Each refusal names the alternative, so a wrong pick tells you where to go.

Path Sweep and Sweep's pathAlign differ in three ways:

Reach for Path Sweep when you want twist, or when centring the profile on the path is what you meant. Reach for Sweep's pathAlign when the profile's drawn position and angle are part of the design, or when you already have a Sweep feature and its path turned out to be curved — switching the mode keeps the feature, its references, and its path selection.

Walkthrough

Path Sweep walkthrough

Inputs

Behaviour

Closed paths

A path that comes back to where it started has no ends. A smooth loop is a ring, skinned round the loop: the stations go round with the first and last station the same station. A cornered loop is a frame, mitred at every joint including the closing one (see Cornered paths). Either way the result has no end caps. A closed sweep's faces are its side walls and nothing else, no _START / _END name is registered, and the body is genus 1, like a torus.

The volume is Pappus: the section's area times the distance its centroid travels. For a symmetric section, whose centroid Path Sweep places on the path, that is A × path length — A · 2πR for a circle of radius R, A × perimeter for a rounded rectangle. Measured on a circle path, R = 10 with a radius-1 section: 2.6e-7 relative to 2π²Rr², falling 16× per doubling of the stations.

A flat loop's frame turns only about the plane's normal, so it returns to itself after one lap and the section meets itself at the seam. A loop that leaves its plane returns rolled by the path's holonomy — the solid angle its tangent direction sweeps out on the unit sphere — and the sweep closes it with the smallest counter-twist: on a smooth ring, minus that roll spread evenly along the path; on a cornered frame, shared over the sides by length and turned over each side's middle half, so the mitres stay exact. A loop with a mirror symmetry, or one lying on a sphere, comes back unrolled and gets no twist.

A twist on a closed path must close. A twist you ask for is laid down on top of that counter-twist, over the whole lap, so after one lap the section comes back turned by exactly your twistAngle. That only closes when the turn carries the section onto itself:

A twist that does not close is refused by name, and the error quotes the two nearest twists that do: path sweep: … a requested twist does not close this closed path: … this section maps onto itself under 2 rotations about the path, so a twist closes only in steps of 180.000000°. The nearest twists that close are 0.000000° and 180.000000°. A twist that makes each wall run several laps before it closes, past the 1024-station limit, is refused with the count.

A closed path must not cross itself. On a cornered frame, two sides meeting anywhere but at a corner are refused by name, and the refusal names both sides and how close they come. A smooth ring that crosses itself fails the final validity check instead, without naming the sides.

A closed path also stations itself from its own turning rather than only its length — 16 stations per quarter turn — so a rounded rectangle's short corner arcs are resolved rather than cut (by length alone, a 30 × 18 path with 4 mm corners came out 6 % under A × perimeter).

A section that reaches past a turn's centre on the inside of that turn — for a section centred on the path, one wider than twice the turn's radius — is refused by name, as on an open path, rather than swept through itself. The exception is a circular section on one circular arc, which builds the swept envelope — see A section wider than its own bend.

Cornered paths: a mitre at every joint

A joint where two straight segments meet at an angle is built as a mitre: the section is swept along each segment, both sweeps are cut off on the plane that bisects the joint, and on that plane they share one face loop — the same vertices and edges, one face each side, and nothing between them. The inner side of the bend is folded away and the outer side extended past the joint to reach the plane, exactly as a picture frame's corner is cut, so a section centred on the path encloses section area × total path length. Sweep's pathAlign mitres the same joints while carrying the section from where it was drawn.

A closed cornered path is the whole frame: the closing joint is mitred like every other and the result has no caps at all. What makes it close is the flat loop's own geometry — each joint turns the section by that joint's angle about the path plane's normal, and a closed flat loop's turns add up to a full circle, so the section carried once round comes back exactly as the section it started as. For n sides and a section of m edges the frame is n · m walls and nothing else — genus 1, like a ring. For a symmetric section the volume is exactly section area × perimeter — measured 128 on a 2 × 2 section round a 10 × 6 rectangle, where four un-mitred prisms unioned would fall short by the four corner overlaps.

A frame's own refusal is the overlapping mitre: every side of a frame is cut at both ends, so a section wider across the bend than a side is long leaves that side no wall at all. It is the same refusal as a bend too tight for its section, and it names the side, its length and both of its joints.

A mitred path has one wall per (profile edge × path segment), so its walls are named {profileEdge}:{pathSegment}_SWP, with the un-keyed {profileEdge}_SWP registered as the group standing for that edge's walls along the whole path — a reference stored while the path was straight still resolves after a corner is added. The two end caps are unchanged; a mitre joint has no cap, and a closed path has no cap at all.

What is refused, each quoting what it measured:

Limitations

Where to find it

Offered in the Modeling and All workbenches. Type code SWP.