Brick Sizing

How to size 3D-printable models of LEGO® compatible bricks using OpenSCAD and MachineBlocks.

Understanding the MachineBlocks Grid

The MachineBlocks system is built on a 1×1 plate grid. All brick dimensions are defined as multiples of this base unit — similar to how LEGO® bricks are measured. This consistent grid ensures that all parts align perfectly when combined in a larger model.

When you specify the size parameter for a brick, you do so using the following format:

machineblock(
    size = [width, depth, height]
);
Each dimension is expressed as a multiple of the 1×1 plate:

Creating Plates

Plates are the thinnest standard building elements in the MachineBlocks system. By definition, a plate is 1 plate high, so the third value in the size parameter (the height) is always set to 1.

To create a 3×3 plate, you can use the following code:

use <../machineblocks/lib/block.scad>;
include <../machineblocks/config/config.scad>;

machineblock(
    size = [3, 3, 1]
);

Creating Bricks

Bricks are the standard building elements in the MachineBlocks system. A brick is three plates high, which means the third value in the size parameter (height) must always be set to 3.

For example, to create a 4×2 brick, use the following code:

use <../machineblocks/lib/block.scad>;
include <../machineblocks/config/config.scad>;

machineblock(
    size = [4, 2, 3]
);

Creating Liftarms

Liftarms are specialized Technic-style beams used for structural connections. They differ from standard bricks in both shape and proportions. A liftarm has the same height as its depth, but because the height in MachineBlocks is measured in plate units, the height value for a liftarm is 2.5 plates.

The following example creates a 6×1 Technic liftarm with pin holes along the X-axis and rounded edges:

use <../machineblocks/lib/block.scad>;
include <../machineblocks/config/config.scad>;

machineblock(
    size = [6, 1, 2.5],
    holeXGridOffsetZ = 2.5,
    baseRoundingRadius = [0,1.25,0],
    studs=false,
    holeX=true,
    baseCutoutType="none"
);
Congratulations! You just have created your first brick from scratch using OpenSCAD and MachineBlocks!
LEGO is a registered trademark of the LEGO Group. MachineBlocks is not affiliated with or sponsored by the LEGO Group.