Create your own printable LEGO Grids

Here is how you can make your own LEGO (and DUPLO) printable grids. Making studded or square grids is easy, using a free online graph-paper generator.

Studded Grids

The studded grid — a grid spaced to match the studs on top of LEGO bricks or the holes in LEGO Technic beams — is the easiest one to make. You’ll need to use the circle grid graph paper generator.

The space between studs (the pitch) is just under 8 mm. It is very, very close to 0.7986 cm. The studs themselves are 3/5 (60%) of the length across a 1 × 1 brick.

Knowing this, you can fill out the circle grid generator as follows:

Settings for a LEGO-stud grid

The grid spacing and radius multiplier are important. Feel free to change the page size, line weight and colour. You can change the margins, too; they become somewhat important if you are trying to create a combined grid, with the circles and squares, but most of the time, leaving them at 0.5 inches is fine.

Square Grids

To create the grid of squares, use the standard graph paper generator. It asks for the grid spacing in lines per inch or lines per centimeter, and we know how many centimeters apart we want lines to be. Luckily, we can take the reciprocal of our value to get the one we want.

We want lines spaced 0.7986 cm apart [which can be expressed as 0.7986 cm / line]. When we take the reciprocal, we divide the number into one. 1 / (0.7986 cm / line) = 1.252191334835963 lines / cm. You don’t really need all the digits, but you may as well copy and paste them for maximum accuracy.

Settings for a square LEGO grid

This only really important number is the grid spacing. Go ahead and change all the other options. [The margin, again, may be important if you are making a combined sheet.]


As regular LEGO pieces will actually snap and fit underneath DUPLO blocks, I am taking the DUPLO dimensions to be exactly double those of the lego dimensions.

Thus, for a circular grid, you’ll need to use a size of (2 * 0.7986 cm) or 1.5972 cm, and for a square grid, you’ll need a size of (1.252191334835963 lines / cm) / 2 or 0.626095667417982 lines / cm.

A Combined Grid

Well, now I had a circular grid and a square grid, but I really wanted a combined grid. I couldn’t see one of the graph paper generators that would do it, so, after some googling, I came across a programmatic way to overlay one .pdf file on another. There must be easier ways (and feel free to add something to the comments if you find a nice way) — try searching for adding a watermark to a .pdf — but this one was suitable for me. I’ll present how I did, but explaining in detail how you can do it is beyond the scope of this article.

This solution uses Python (Mac OS X and Linux users already have it; Windows users can download it), and an add-on called pyPdf (which Mac and Linux administrative users can install by running, from the command line, “sudo easy_install pyPdf”). The code is as follows, and needs to be tweaked for each set of images.

#!/usr/bin/env python
# Python script to combine a .pdf made of circles and one made of squares
from pyPdf import PdfFileWriter, PdfFileReader
output = PdfFileWriter()
studs = PdfFileReader(file("DUPLO_Stud_Grid_A4.pdf", "rb"))
grid = PdfFileReader(file("DUPLO_Square_Grid_A4.pdf", "rb"))
page = studs.getPage(0)
output.write(file("combined.pdf", "wb"))

Sure enough, that works to put the two sheets together. I found that with the A4-sizes sheets, I was able to use the same margins for both the sheet of studs and the sheet of squares (which doesn’t quite make sense to me). With the US Letter-sized pages, I found that when I overlayed them, I got circles over the places where four squares meet instead of in the center. I had to adjust the margins.

I wanted to move the circles in half of their pitch. So, 0.5 inch + 0.7986 cm / 2 * 1 inch / 2.54 cm = 0.657204724409449 inches. (For the DUPLO, I removed the divide by two, and end up with 0.814409448818898 inches.) Again, you don’t need nearly so many digits, but if you have them, you may as well use them.

Posted by Clinton Blackmore - Monday April 5, 2010.
Posted in .