ReDo parts are measured in cells of 10 mm. A block is 1, 2 or 6 cells long; a plate is 4 × 3 cells. Because every part is a whole number of cells, any two of them can sit side by side or on top of each other with their holes lined up.

A 3 × 2 plate: each hole sits in the middle of a 10 mm cell, 5 mm in from the edge and 10 mm from the next hole.
A 3 × 2 plate: each hole sits in the middle of a 10 mm cell, 5 mm in from the edge and 10 mm from the next hole.

Where the holes go

  • One hole in the middle of every cell: 5 mm from the edge, then every 10 mm.
  • A block has holes right through it in all three directions, so it can be fastened from its top, its sides or its ends.

In ReDo.Core, span(n) is the length of n cells and hole_at(i) is the middle of cell i:

include <redo_constants.scad>

difference() {
    cube([span(3), span(2), 5]);
    for (i = [0 : 2], j = [0 : 1]) translate([hole_at(i), hole_at(j), 0]) hole(THRU_HOLE_D);
}
Blocks, plates and an L bracket of different sizes: every one is a whole number of cells, with its holes on the grid.
Blocks, plates and an L bracket of different sizes: every one is a whole number of cells, with its holes on the grid.

Smaller steps for printed parts

Where a printed part cannot be a whole number of cells, its sizes fall on 7.5, 5 or 2.5 mm, never an odd size like 7.19 mm. The same goes for how far one face sits from the part it meets.

  • Plates come in three thicknesses: 2.5, 5 and 10 mm.
  • A round part is drawn 0.2 mm under its size, so a 10 mm shaft is 9.8 mm and fits a 10 mm hole.

What is not on the grid

  • A bought part keeps its own sizes. A servo or a circuit board is what it is; the case or bracket around it is rounded out to the grid.
  • A rod is cut to the gap it spans, so its length is free.