Transform Objects
deFlex provides three transform tools for repositioning and resizing objects in the viewport: Move, Rotate, and Scale. All three are available in Setup mode when an object is selected.
Activating a transform tool
Use the toolbar buttons at the bottom center of the viewport, or the keyboard shortcuts:
| Tool | Shortcut | Toolbar icon |
|---|---|---|
| Move | G | Arrow cross (Move icon) |
| Rotate | R | Circular arrow (RotateCcw icon) |
| Scale | S | Diagonal arrows (Scaling icon) |
The active tool is highlighted in the viewport toolbar. Selecting a different tool deactivates the previous one.
Transform tools are only available in Setup mode. In Results mode, only the Select tool is shown.
Moving objects
With the Move tool active and an object selected, a translate gizmo appears at the object's position:
- Three axis arrows point along the X, Y, and Z directions. Drag an arrow to constrain movement to that single axis.
- A center sphere at the origin of the gizmo allows free movement on the plane facing the camera.
- Positions snap to 0.1 mm increments. Whole-number positions have a slight "sticky" detent to make them easier to land on precisely.
- Editable labels appear at the tip of each axis arrow showing the current coordinate value. Click a label to type an exact position, then press
Enterto confirm orEscapeto cancel.
In 2D scenes, only the X and Y axes are available. The Z axis arrow is hidden to prevent moving objects out of the working plane.
Rotating objects
With the Rotate tool active, a rotation gizmo appears as three torus rings centered on the object:
- X ring -- rotates around the X axis (ring lies in the YZ plane).
- Y ring -- rotates around the Y axis (ring lies in the XZ plane).
- Z ring -- rotates around the Z axis (ring lies in the XY plane, i.e., in-plane rotation).
Drag a ring to rotate the object around that axis. Rotation snaps to 5-degree increments.
Each axis displays a label showing the cumulative rotation delta in degrees. Click a label to type an exact rotation value in degrees, then press Enter to confirm.
In 2D scenes, only the Z ring is visible (in-plane rotation). X and Y rotation rings are hidden because they would tilt the object out of the working plane.
Resizing objects (Scale tool)
The Scale tool works differently from Move and Rotate. Instead of modifying the object's position or orientation, it modifies the object's parametric dimensions (width, height, and depth). Because of this, the Scale tool is only available for parametric shapes that have width and height parameters, such as Rectangles and Boxes.
When the Scale tool is active on a resizable object, a wireframe bounding box appears with handles:
- Corner handles (sphere dots at each corner): drag to resize all dimensions proportionally. The resize factor is based on how far the cursor moves from the object center in screen space.
- Edge midpoint handles (smaller sphere dots at each edge center): drag to resize a single dimension. Dragging a left/right midpoint changes width; dragging a top/bottom midpoint changes height.
Resulting dimensions snap to 0.1 mm increments. The minimum dimension when dragging is 1 mm; when typing a value directly into a label, the minimum is 0.1 mm.
Width and Height labels appear alongside the bounding box. Click a label to type an exact dimension value.
In 2D scenes, the bounding box shows 4 corners and 4 edge midpoints. In 3D scenes, it shows 8 corners and 4 edge midpoints (for the X and Y axes).
Direct input via labels
All three gizmo types display editable numeric labels:
- Click the label to enter edit mode. The current value is pre-filled and selected.
- Type the desired value.
- Press Enter to apply the value, or Escape to cancel without changes.
Labels are not editable while a drag is in progress or when the label's axis is dimmed (inactive during a different axis drag).
Canceling a transform
Press Escape during any gizmo drag to cancel the operation immediately. The object returns to its pre-drag position, rotation, or scale.
Snapping behavior
All transforms snap by default:
| Transform | Snap increment |
|---|---|
| Move | 0.1 mm (internal units) |
| Rotate | 5 degrees |
| Scale/Resize | 0.1 mm (resulting dimension) |
Snapping uses a "clean snap" algorithm that rounds to the nearest increment, cleans floating-point noise, and applies sticky integer detents. This means values near whole numbers (within approximately 0.04 of an integer) lock to the integer.
Undo support
All transform operations are undoable. After completing a move, rotate, or resize, press Ctrl/Cmd + Z to undo. The undo system records the full before/after state of the transform.
Related pages
- Viewport Tools -- complete reference for all toolbar tools, hover tooltips, and context menu
- Keyboard Shortcuts -- full shortcut table including
G,R,S, andEscape - Status Bar -- cursor coordinate display
- Switch Units -- how to change the display unit system