docs / features / Transform Face

Transform Face

Transform Face feature dialog

Status: Implemented

Transform Face moves and turns one or more selected faces of a solid, keeping each face's shape and size, and re-heals the neighbouring faces around the new position. Pick the faces and the transform gizmo appears on them: drag an arrow to slide them, drag a ring to tilt them, or type the values in the form.

The transform gizmo on a selected face

Moving is not the same as pushing. Push Face offsets a face along its own normal, so a pushed cylinder gets a bigger radius. Transform Face carries the face bodily: a moved cylinder keeps its radius and ends up somewhere else. On a flat face the two agree — moving it 3 mm along its normal is the same edit as pushing it 3 mm.

Walkthrough

Transform Face walkthrough

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

Inputs

Every component accepts a number or an expression. There is no scale: a face transform moves and turns faces, it never resizes them, and a document that asks for a scale other than 1 is refused.

The gizmo

Turning about an edge

The faces turn about the pivot. To hinge a face about one of its edges, type a point on that edge as the pivot, then turn about the axis the edge runs along. A 10 mm cube's +X wall with pivot (10, 5, 0) and rotation (0, 30, 0) turns about the edge it shares with the z = 0 face: that edge stays where it is and the solid becomes a wedge. With the default pivot, the centre of the wall, the same rotation tilts it about its middle instead: one side swings out as far as the other swings in.

A wall hinged 15 degrees about its edge at z = 0, the gizmo on the pivot

A positive angle turns right-handed about its axis: point your right thumb along the axis and the face follows your fingers.

Behaviour

Supported faces

The face you transform may be any shape. What decides whether the edit succeeds is the faces AROUND it — the ones that have to be re-cut where the moved face used to meet them.

When the faces are only moved:

Neighbouring faceSupported examplesMain limits
FlatBox walls, multi-loop tops, oblique walls, holes carried along with their faceA move that squashes an adjoining face to nothing, or past it, is refused
CylinderCaps moved along the cylinder's axis; a bore or a boss slid across a flat; a face moved over a hole drilled at an angle to it, whose mouth is re-cut as an exact ellipseA pocket floor lying along the cylinder's axis is refused. A move that carries an angled hole's mouth past the edge of its face builds: the hole breaks out through the neighbouring face
ConeFrustum and conical hole caps, straight or oblique; a face moved over a tapered hole drilled at an angle to itA cap moved onto or past the cone's point is refused
SphereA flat face moved across a spherical neighbourCaps that vanish into the sphere are refused
Torus, general revolution, free-form—Refused, naming the face it could not re-cut

When the faces are turned:

Neighbouring faceSupported examplesMain limits
FlatBox walls in and out, a wall hinged about an edge somewhere else on the part, a top face with a square pocket carried along, two adjacent walls turned togetherAn angle that lays the face parallel to a neighbour, or that turns a neighbour's trim inside out, is refused
Cylinder or cone, spun about its own axisA face spun about that cylinder's or cone's own axis, which changes nothing—
Cylinder or cone at an angle to the faceA top face tilted over a hole drilled at an angle through it (the hole's mouth becomes a new ellipse, cut exactly), a cylinder's end cap tilted about one of its diametersA tilt that lays the face parallel to the hole's own axis is refused: the face would meet the wall in straight lines, not in a closed mouth. A tilt that carries the hole's mouth past the edge of the face builds: the hole breaks out through the neighbouring face
Sphere, torus, general revolution, free-form—Refused, naming the face it could not re-cut

Round holes are carried with the face they open through. A drilled or tapered hole, straight or at an angle, stays where it is in the solid while the face around its mouth moves or tilts. The mouth is re-cut where the face now meets the hole's wall, as an exact ellipse on a cylinder or the matching curve on a cone, not an approximation.

The hole's own wall can be moved or turned too, and its far mouth may then leave the face it was drilled through. A bore wall slid sideways until its mouth runs off its face breaks out through the neighbouring face. A bore slid so far that it has left the solid entirely is refused. A bore wall turned about the centre of its entry mouth, so that its exit walks off the top of a block and onto a side, builds at every angle measured up to 72°. At 73° and 75° the mouth reaches two neighbouring faces at once, at a corner, and the turn is refused.

When the faces cannot follow: the re-cut

Some motions have no answer by re-fitting the neighbours, because the right result needs a face to stop existing: a slot's ceiling dragged clean out of the top of the part should leave an open channel. The feature then takes the original solid and cuts away the material the motion sweeps out of it (or adds the material swept into it), and a note on the feature says the selection was re-cut. The motion can be a move, a turn or both.

The re-cut is tried only when the ordinary edit builds a body and then rejects it as unsound; a motion the ordinary edit refuses outright is not re-cut. Either way it never changes a result that already builds. It has its own limits, and when it declines as well, the refusal carries both reasons:

A rounded edge (a fillet) along the boundary of a face you turn is refused. The face is tangent to the rounding there, so tilting it leaves no closed edge to re-cut: the face would lift off the rounding or cut into it somewhere else.

When it refuses

While a Transform Face is refusing it builds nothing at all: it does not fall back to its last good motion, so the faces spring back to where they were before the feature ran. The solid itself is left whole.

The app says so where you are working. A red chip above the gizmo names which of the two motions refused (Move Face or Rotate Face), which face you had selected, why in a sentence, and what to do about it; the same sentence appears as a banner above the feature's fields and as a leaf under its row in the tree. The kernel's own wording names the NEIGHBOURING faces that could not follow the motion, which are not the face you picked — the chip names both, as what each of them is.

The value you dragged to stays in the form, so you can ease it back and try again; one undo takes the drag back.