I'm trying to create something similar to this in Inkscape:
enter image description here

I want to laser cut a similar pattern out of a piece of plastic to use it as a grating.

While I know how to create an equilateral triangle, I didn't find a good practice to transfer it into a pattern with controlled and periodic spacings between the triangles.

I tried the tiled clones tool but couldn't figure out what settings to use to achieve this.

  • Welcome to GD.SE!
    – Mensch
    Nov 26, 2021 at 20:43
  • Thank you, @Mensch!
    – speendo
    Nov 26, 2021 at 20:45

4 Answers 4


This can help get you on your way...

This is Illustrator but these are very simple tools which must also be available in Inkscape.

Basically, using a hexagon and lines to define your triangles

Then copying with Snap to Point enabled

Then using the stroke width to define the triangle size

enter image description here


Some guidance: Consider to tile long (they are now white) rectangles. Make a set of horizontal ones, rotate a copy of the whole set to get a set of 60 degrees rotated ones and in the same way make a set of 120 degrees rotated ones. Combine them by using Path > Union. Subtract the result from a solid black rectangle.

Another possibility is to build it by starting from a couple of different sized triangles. In the next image a piece of the pattern is built by duplicating and moving manually by relying on shape center and node snaps:

enter image description here

This needs no geometric calculations of tiling distance for wanted dimensions. Finally delete the blue triangles. Select one and then select the same fill color and press DEL.

I guess you must make an union of the red triangles and then make an intersection with a big rectangle to get horizontal and vertical borders.

BTW. the faint white lines between the blue triangles are the common rendering "property" or "error" (as you like to say) in Inkscape and also in many other programs. Exact seams have half-transparent pixels because the edges are anti-aliased to avoid jagginess.


Thank you! With the inspiration of your replies, I found a way of doing this quickly and precisely, which I would like to share.

Step 1: Axonometric grid

Go to Document Properties // Grid and create a new axonometric grid. Spacing Y x Major grid line every should represent the side length of your desired triangle.

I want my triangles to have a side length of 18 mm so I use these settings

Axonometric grid properties

Step 2: Triangle

Using the Bezier tool and Snap-to-Grid, create a triangle along the major grid lines Triangle

Step 3: Spacings

Now we define the spacings between the triangles: set the triangle stroke width to the spacing you want between your triangles.

I want my spacings to be 4 mm so this is what I set the stroke to.

Stroke width

Step 4: Set the rotation point

In the snap toolset, disable Snap to Grid and enable

  • Snap to bounding-boxes
  • Snap to bounding-box-corner
  • Snap to misc. points
  • Snap to object rotation center

Switch to the select tool and click the triangle twice so that the rotation tool appears. Drag the rotation center to the right lower bounding box-point of the triangle

Rotation point center

Step 5: Hexagon

Now we duplicate the triangle to create a hexagon.

Hit Ctrl + D to duplicate the triangle and then rotate it by 30 ° (holding Ctrl) so it snaps to the previous one. Repeat this 5 to receive a hexagon

Select all 6 triangles and create an object group (Ctrl + G).


Step 6: Tiled Clones - Part One

Here begins the mathematical part: Go to Edit // Clone // Create Tiled Clones ... and create a Simple translation with 2 rows and one column.

In the Shift tab, we have to specify how much the cloned hexagon in the second row has to be moved to snug to the right lower edge of the original hexagon.

To illustrate that, first leave all shift values at zero and hit Create. The new hexagon is right below the first one. We want it to be shifted 50 % to the right so we enter 50 % in Shift X/Per row.

We also want the cloned hexagon to go upwards. For mathematical reasons that go beyond this guide (maybe somebody likes to leave a comment on that?), it can be shown that the correct value for the Shift Y is -25 %

Clones Part 1

Step 7: Tiled Clones - Part Two

Select both Hexagons and create a new object group.

Now we create the final grid. Go to Create Tiled Clones again and specify your desired number of rows and columns.

In the Shift tab we have to specify the correct values again. As the hexagon group is "three triangles wide" and we want to snug every new clone in the free space of the previous one, Shift X/Per column has to be - 1/3. Inkscape understands math, so you can enter -1/3 * 100 in this field.

Again, Shift Y/Per Row is more difficult. Like in Step 6, we want it to be 25 % of one hexagon. However, we have two hexagons now, so we have to adapt for that.

As we moved the cloned hexagon up by 25 % in Step 6, we know, that the hexagon group has a height of 175 % of one hexagon. We therefore can calculate that each row has to be moved 25 % / 175 % which doesn't give a nice number. However, as stated, Inkscape understands math. So we enter -25 / 175 * 100 in Shift Y/Per row.

Make sure all other shift values are set to zero

Clones Part 2

Step 8: Remove Stroke

Finally we can remove the stroke that we just used as a guidance.

Select all triangles and set the Stroke to no paint

Remove Stroke

You are finished.

Final thoughts:

So far, so good. As I want to laser cut the mesh out of plastic, I prefer to have the corners rounded. To achieve that, I wanted to use Path Effects // Corners (Fillet/Chamfer). However, this tool behaves weird with discontiguous pathes. Maybe this is some kind of bug or the tool is not designed for discontiguous pathes.

In order to still have round corners, I would now use the method user287001 mentions and put a rounded triangle on top of a "pointy" rectangle right in the beginning.

  1. Use the axonometic grid, and snap to grid

  2. Draw one triangle, and clone it (hint: Edit > Clone > Create Clone)

  3. Move the clone away from the clone source, and duplicate it

  4. Make your tiled pattern from duplicates of the clone, copying and pasting, flip horizontal, etc.

  5. Apply an Offset path effect to the clone source

  6. Switch off snap to the grid.

  7. Then you can click and drag the offset control to make the gap between all the triangles as you wish.


enter image description here

  1. If you want to add the a Corner (Fillet/Chamfer) path effect, you can also do that at this stage

enter image description here

When you are happy with the result, you'll want to turn everything into paths.

  1. Select everything and do Path > Object to Path. This will release all the clones, and remove all the path effects, leaving you with just the vectors.

enter image description here

  • there are some brilliant tricks in this solution. I have to try it out a little later!
    – speendo
    Nov 27, 2021 at 15:36
  • what I like about this solution is, how everything can be controlled from the clone source. However, what I don't like so much is that you only have direct control on the spacing, but not on the triangle's side length. Can this be improved? Otherwise I'd stick to a mixture of your solution and mine.
    – speendo
    Nov 27, 2021 at 16:18
  • 1
    @speendo What do you mean by control of the triangle's side length? They are all equilateral triangles. The length is irrelevant. You can scale the artwork if required.
    – Billy Kerr
    Nov 27, 2021 at 17:54
  • you are right, that scaling would be an option. However I don't see an (easy) way to have e.g. all triangles have a side length of 18mm and the spacings being exactly 4mm wide.
    – speendo
    Nov 27, 2021 at 19:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.