Distribute(X, [Lefts/Rights/Centers/Marks/Gaps, [First/Last/pcb_crosshair, First/Last/pcb_crosshair[, Gridless]]])

Distribute(Y, [Tops/Bottoms/Centers/Marks/Gaps, [First/Last/pcb_crosshair, First/Last/pcb_crosshair[, Gridless]]])

As with align, plus:

Arguments:

Gaps | Make gaps even rather than spreading points evenly.
First, Last, pcb_crosshair | Two arguments specifying both ends of the distribution, they can't both be the same.

Defaults are Marks, First, Last

Distributed subcircuits always retain the same relative order they had before they were distributed.