Experimenting with 3D Printing

14 Dec, 2025    

I recently got a cheap 3D printer and decided that I should actually, finally learn how to create my own STLs, so that I can print custom things, instead of being only limited to whatever I could find on thingiverse.

One of the things I decided to attempt was a cookie cutter, because I felt that it was something reasonably simple to do and also because I wanted some custom cookie cutters. I will not be sharing any pictures of the actual cookie cutters here since I intended this blog to be a means to post things I learnt and explored, and I do not want this post to reveal any fandoms I’m into.

But that being said, printing a cookie cutter does also have its own limitations - designs cannot be overly complicated, or narrow, or the cookie will fall apart. In this case, it’s more of an artwork challenge.

I read a number of guides and finally settled on trying out several things:

  • For software to generate SVGs, I narrowed my options to Illustrator or Inkscape.
    • Illustrator: I’d been using this for years to do very simple vectors every now and then, so using it was quite a breeze for me, as I already had some form of familiar workflow.
    • Inkscape: I downloaded it and gave it a try, however, after some tinkering around, I decided that it was a little too clunky for me to find the functions I needed, and the pen vectors don’t work as seamlessly as what I’m used to in Illustrator. I have a tendency to make a few open vectors and then join them later (probably not a very good habit), and this workflow was extremely challenging to replicate in Inkscape.
  • CAD software: I narrowed it down to 2 choices - either TinkerCAD or OpenSCAD, both of which are free. It’s my first time using both, of which I had zero prior experience and no workflows to base on.
    • TinkerCAD: The reason I gave this a try was because I came across this Simple Cookie Cutter Tutorial. I wasn’t super used to the layout initially and had lots of difficulty tilting and panning across the 3D space, but once I figured the shortcuts, it was not too bad. The units confused me the most since it did not come out as I expected (eg. the guide said that 10 = 10mm, but from my tests, it was much lesser than that, and I had to end up using something like 20 or 30 units instead).
    • OpenSCAD: I gave it a try simply because, as a software engineer, the idea of having scriptable and reproducible workflows was enticing. Furthermore, while I’d read that it is very tricky to do certain shapes in OpenSCAD (eg. fillets), I decided ultimately that the tradeoffs were fine, because some of these things are hard to do in 3D prints compared to other types of prints anyway, and cookie cutters are not that complex overall. It took me a while to get a hang of the syntax, but overall, I think I quite like how it works.
    • Verdict: After spending lots of frustrating hours to iron out issues with both (which I’ll elaborate on later), I decided that I actually quite liked both, and will continue to use both depending on how lazy I am to script things.
  • Printer software: I don’t have much opinions on this, since I got a Bambu Labs A1 Mini, so I defaulted to use Bambu Studio (on PC) and Bambu Handy on phone.

The Workflow

This was the workflow I had in mind before I started the whole thing:

  1. Sketch out the design on paper
  2. Take a picture with my phone camera and import into my vector software
  3. Vector the artwork, and generate an SVG from it
  4. Import the SVG into the CAD software and extrude the edges as needed
  5. Import into printer software and print

The workflow remained more or less as I envisioned, except I spent a lot of time in Step 3, 4 and 5, for various reasons.

Lessons Learnt

Step 3. Close all the paths!

  • One of the biggest mistakes I made was that I did not close my lines. Unfortunately, TinkerCAD attempts to unify open lines by joining them together with the shortest possible path, resulting in lots of my line work turning into random filled shapes. I had to improvise by using Object > Flatten Transparency and set the Vector balance to 100 to turn them all into closed lines. After that, I had to select all lines and Unify them.
  • As a result of not closing my lines properly, I had great difficulty using the Object > Path > Offset Path in order to generate my cutter border in one step. I had to manually fix and remove lots of stray lines in the process.
  • Another caveat, when attempting to switch to OpenSCAD was that OpenSCAD can only understand closed polygons, and this was mentioned in their docs as well:

    OpenSCAD handles only closed polygons, so importing lines or open polygons is not possible. Instead open polygons are treated as shapes defined by their stroke-width. Closed shapes always use the geometric specification defined in their SVG, regardless of fill or stroke-width, except for closed polylines, which are treated as open polygons and defined by their stroke-width.

As all my Vectors were transparent fills with 4 px strokes, I had to select them all and perform a Object > Expand or Object > Expand Appearance to convert all the strokes to filled polygons. It took me a while of attempting a few simple shapes in order to figure out what exactly it was that I needed to do. However, I did notice that by doing this, the imports into TinkerCAD appeared much better as well.

Step 4. Underestimating the dimensions

Since this is the first time I’m doing this, I had zero clue how much space or thickness I needed from artwork to 3D. As a rule of thumb, I’ve learnt from my first attempt that for a 6cm-7cm sized cookie cutter, a 4 px line would eventually translate to around 1 column of filament, which is the minimum. This meant that my cutter outline, which i originally offsetted at 10px, was too little, since I needed around 2-3 columns of filament for the base of the cookie design (otherwise it wont print well). For next attempts, I would need to use 20-24px offset so that the cutter and the design wont be joined together at the base. I also set my cutter at 1px which is too thin, but at this point, since it’s a lot of effort to redo the outline due to my poor initial vectoring, I ended up increasing the wall thickness in TinkerCAD / OpenSCAD instead. I should really go and properly fix my lines though.

I also spent a lot of time experimenting between putting my cutter + design into different files, or importing them as different layers. Before I continue - SVG is just a file containing text and looks like a mix of HTML and XML. For example, you might see something like this:

<g inkscape:label="test" id="layer2" ... /> <path ... />

It turns out that when using Inkscape, you can import the SVG by layer because OpenSCAD uses the property inkscape:label="LAYER NAME" to recognise a layer. For Illustrator, where you have the option to label each object id in the SVG as the layer name, you have to import by id instead. Note that you need to download the development version of OpenSCAD to do this, but I believe posts on Reddit already encourage people to use the Developnment version because there’s just lots more features available and it is pretty stable anyway.

Anyway, I also learnt from using OpenSCAD that trying to extrude along the x-axis to make a bigger base requires to use of something called a minkowski.

Step 5. Unhelpful printer software errors

I initially had trouble figuring out some of the printer software errors, like when it tells me that I have floating parts when I can’t see a single floating part (I ended adjusting some things downwards just in case in Tinkercad, which removed the error eventually). Another thing I’ve learnt during the slicing was that if I cannot see a preview of the filament on a specific part, but just a smooth line, it usually meant that my model was too thin to be printed and hence would not be printed.

Outcome

So, as I write this post, I’m still waiting for more filaments to come to test some of my realizations and findings, but I don’t think I have anything else to add besides some minor tweakings. It was definitely a rocky start, but I’m quite excited to finally have some usable cookie cutters!