Copy, align and group
arrangeManipulate multiple 3D elements in one undo step: align, distribute, array, flip, rotate, mirror, group, and reorder layers for precise floor plan layouts.
Instructions
Arrange elements in one undo step. array {ids,n,dx,dy,dz} adds n copies stepping by dx/dy/dz cm (rafters, columns); align {ids,axis,edge:low|middle|high,value} lines pieces up by an edge — backs on one line, fronts on another — instead of by centers you work out yourself; distribute {ids,axis,gap?} sets them side by side in the order given, from where the first one is (a run of joinery); flip {ids} turns a piece back to front, rebuilding what is inside it (mirror only swaps left and right and leaves the front where it was); rotate {ids,angle clockwise,about?,copy?}; mirror {ids,a,b,copy?} across the line a-b; group {ids,name?} joins pieces into one box that moves/hides together, ungroup {ids:[group]}; front/back {ids} draws rooms or pieces on top/underneath (pool over deck, rug under sofa). Returns new ids.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| a | No | mirror: the first point of the mirror line | |
| b | No | mirror: the second point of the mirror line | |
| n | No | array: number of copies (default 1) | |
| dx | No | array: step per copy along x, cm | |
| dy | No | array: step per copy along y, cm | |
| dz | No | array: step per copy upwards, cm (furniture and labels) | |
| gap | No | distribute: centimeters between one piece and the next (default 0) | |
| ids | Yes | The elements to act on (ungroup: the group) | |
| axis | No | align/distribute: `x` or `y` | |
| copy | No | rotate/mirror: keep the originals and transform a copy | |
| edge | No | align: which edge to line up — `low` (left, or top of the plan), `middle`, `high` | |
| name | No | group: its name | |
| about | No | rotate: pivot `[x,y]` (default the center of the elements) | |
| angle | No | rotate: clockwise degrees | |
| value | No | align: the coordinate, cm, to put that edge on | |
| action | Yes | What to do; `array` makes copies in a row |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| v | No | ||
| ok | Yes | ||
| ids | No | ||
| rev | No | ||
| text | Yes |