Artistic Designs with Inkscape, Eggbot Tools, and ESTLCAM

I have been looking for a way to create more artistic designs (as opposed the the more geometric ones, which are also cool) for my sand table. I’ve developed a nice technique and workflow that allows me to create interesting designs stuff fairly quickly. When I get time, I want to create a full-blown set of instruction for this, but in the meantime, here is a brief overview, if you would like to try it.

What You Need

Inkscape - open source vector graphics editor

Eggbot tools - plugins for inkscape -

ESTLCAM - this is what I have, you might try something else


  1. Open Inkscape.
  2. Open File>Document Properties.
  3. Change Default Units to mm.
  4. Turn off Show Page Border.
  5. Close Document Properties.
  6. Draw box the exact size of your drawing area.
  7. Save file as Sand Table Default. This is your starting point.
Fill The Whole Table With Hatch Lines
  1. Open your Sand Table Default file in Inkscape.
  2. Choose the fill tool and fill the square with any color.
  3. Open Path>Path Effects.
  4. Click the plus sign to add an effect and select Hatches (rough).
  5. Open Extensions>Eggbot>Preset Hatch for Fills and Apply.
  6. Choose the Edit paths by node tool.
  7. Rotate/compress/stretch the hatching by dragging the tiny green square around.
  8. Select Edit>Duplicate.
  9. In the path effects window, click the minus sign. This removes the hatching from the duplicated square.
  10. If the border of the square is not visible, open the Fill and Stroke tool and add a stroke to it.
  11. Save file as a DXF.
  12. Open DXF in ESTLCAM.
  13. Select the hatching lines and the square outline.
  14. Place the Zero point where you want it (I use 0,0)
  15. Save the CNC program. The simulator will pop up.
  16. Click play in the simulator and click FF several times to speed it up.
  17. If there are travel moves you don't like, you can play with the machining order or add little helper lines to move the ball where you want it before it starts the next line.
  18. Save and test again until satisfied.
Those last couple of steps are trial and error, though it goes pretty fast. The design below took about 20 minutes to create. The technique for filling in a drawing is the basically the same - use the fill tool, use the path effects tool to add the hatching, use the eggbot extension to make the hatching more regular, and then use the node tool to manipulate the hatching. I like to draw the outline of the object last, to "finish" the picture.

Hope this helps some others to get started with this technique. Please share your designs once you’re made some!

[attachment file=41726]


That’s pretty badass I must say. Well done.

Here’s one done with just Inkscape and ESTLCAM.

[attachment file=41789]

Dude! You’re killing it!

Love it!

Here’s a video about some of these new designs.

1 Like

That’s looking great!

The more geometric pieces could be added to sandify. Especially the wipe, and wiping different sections at different angles. I’m working in the turkey editor, but I might do some of those next, just to get a quick win.

That would be great! Something like enter the coordinates of the table/area, choose an angle and density, maybe see a simulation onscreen like with the other tools?

A couple of other options that would be nice would be an offset - or maybe call it inset - to provide a buffer between the wipe and the defined edge, and an option to draw the border at the end.

Here’s another design done with the eggbot hatching technique (what? the eggbot’s hatching?).

[attachment file=41870]

I’m not sure how they are making the corners smooth. It doesn’t look like a straight sinusoid. I would do something more rectangular.

The border is actually a bit tricky, because you’d have to calculate which side you were on, and finish it completely. If you stopped at the bottom right, you wouldn’t want your next coordinate to be the upper left. Doable though.

For the offset, you’re saying just take the machine limits and move them in by an amount, like 10mm to make the wipe not go all the way to the limits?

The variables would be angle, size (half the wavelength), and offset. WDYT? It would use the machine limits for now. The reverse button would be the only small amount of control for where to enter the pattern.

At some point, we’ll need to do a big refactor to be able to compound the patterns, and show what that would be like. I don’t expect having that kind of time until it gets cold outside :slight_smile:

I also want to add something like argyle and Chevron patterns. That might not be as easy as I think though.

That would be fine - my manually coded one was rectangular.

Exactly. This is not critical, but sometimes you might want to see the “turnaround,” which gets erased when you draw the border. Just thought it might be a useful option.

In case you don’t know, my wife loves alpacas (we own six of them). This one’s for her.

[attachment file=41877]

Looks like a llama to me :wink:

@Ryan, you should add this to the software section of the ZXY page.

It takes longer to print one of these than it does to make the design at this point.

[attachment file=41888]

That’s either a camel, or Elvis’ hair in the wind.

1 Like

[attachment file=41906]

I haven’t “deployed” this yet. So you’d have to run it locally, on the “wiper” branch to get it. I haven’t figured out the best way to release code on this yet without a high chance of everything breaking.

Also, I decided to avoid doing the offset. It was just increasing the logic too much, so you’ll have to adjust the machine size instead.

Nice! I haven’t been able to get Sandify to run locally. I look forward to trying it after it’s deployed, though.