docs / features / Push Face

Push Face

Push Face feature dialog

Status: Implemented

Push Face moves one or more selected faces of a solid by a signed distance along their normals.

To carry a face bodily instead — keeping its shape and size and moving or turning it somewhere else — use Transform Face.

Walkthrough

Push Face walkthrough

Recorded from the running app by BREP_mcp/tests/videos/push-face.json; regenerate every walkthrough with ./build.sh docs-videos.

Inputs

Behaviour

Supported faces

Support depends on the neighbouring faces and trim layout as well as the face being pushed. Unsupported combinations fail and leave the original solid alone.

FaceSupported examplesMain limits
PlaneFlat faces with holes, including holes drilled at an angle to the face; cylindrical/conical caps; supported spherical neighborsGeneral torus and oblique spherical-neighbor arrangements
CylinderSide walls, bores (straight or drilled at an angle through a flat), slots, crossing-pipe junctions, spherical domes and toroidal grooves, bores that just touch the sides of a pocketWindows crossing a seam, collapsed slots or separating neighbors
Cone/frustumSide walls with planar or oblique capsGeneral slots and multiple trim loops
SphereFull sphere, planar caps, sphere/coaxial cylinder/cone neighbors, corner pocketsNoncoaxial ruled neighbors and vanished caps
TorusFull torus or toroidal cavityNeighbor-trimmed tori and collapsed/spindle forms
RevolutionSupported full/partial surfaces with planar boundariesGeneral non-planar neighbors and non-iso trims
Free-form NURBSIntrinsic/untrimmed surfaces within the fit boundsGeneral neighbor-trimmed surfaces

A curved push changes the carrier's size; it is not a rigid translation of the face. Fitted free-form offsets have measured approximation limits.

A flat face next to an angled cylinder or cone neighbour builds either way round. Pushing the flat face re-cuts the hole's mouth where the face now sits. Pushing the hole's wall changes its radius and re-cuts both mouths. Either way the new edge is the exact ellipse (or, on a cone, the exact conic), not an approximation.

A bore whose opening just touches the sides of a pocket above it (a round hole exactly inscribed in a hexagonal recess, say) can be pushed both ways. Shrinking the hole extends the pocket floor inward to meet it, and the floor keeps its faces and their names. Growing the hole past the pocket's corners removes the floor. The flat face left under the pocket's sides then faces down into the hole. Growing it only part of the way, so that its edge would cross the pocket's sides between their corners, is refused.

A push far enough to send the moved face through another face of the same body is checked. Where the overlap can be resolved the result is split along the two faces' intersection and the material the crossing enclosed is removed, so a wall pushed through a bore comes back as a block with an open channel rather than as a body that passes through itself; where it cannot, the push is refused by name and the original solid is left alone.

A hole drilled at an angle is resolved this way too. Pushing the flat face far enough that the angled hole's mouth reaches past the face's edge builds: the hole breaks out through the neighbouring face. Growing the hole's wall until both of its mouths break out through neighbouring faces at once is refused: the repair does not take two such crossings at once.