File Icon
 
 

444

 

9744

 

12

OpenSCAD cookie cutter file output

Generate a 3D-printable OpenSCAD cookie cutter file out of an Inkscape document.

To use this:
0. Unzip into your Inkscape extensions directory.
1. Convert all objects to paths.
2. Remove all object fill.
3. Make the outer outline be a simple polygon in red.
4. Any inner hollow areas should be bounded by simple polygons in green.
5. Inner lines (which will not go all the way down and hence won't cut the cookie, so they are good for inside detail features) can be black.
6. Connections that connect inner parts to the outside should be filled-in polygons.
7. File Save As... "OpenSCAD Cookie Cutter file"
8. Load into OpenSCAD, adjust parameters, generate STL, print.

Inkscape Extensions

Size
17.5 KB
Created
Revisions
11
Type
application/zip
MIT License (MIT)

Link

Maren Hachmann wrote :

Now I wish I had a 3D printer... ;-) Did you already bake some cookies? How did they turn out?

Michael Zomer wrote :

I did not understand how to install this extension (((

Maren Hachmann wrote :

Hi Michael! Instructions for installing extensions can be found here: https://inkscape.org/en/gallery/%3Dextension/

Rob Hart wrote :

First of all, this is amazing! i've knocked up quite a few cookie cutters that I am very happy with :)
The only thing I am not understanding is how to do the 1mm bridges on the base of the cutter that joins the inner parts to the outer parts. I believe its step 6 "Connections that connect inner parts to the outside should be filled-in polygons." I've been wrapping my brain and not getting anywhere. I know its probably simple but its stopping me from doing more complex cutters.

Cheers Rob.

Maren Hachmann wrote :

Rob, that means that you're meant to draw a rectangle in the correct shape, then do Path > Object to path. Or you can draw a closed shape with the Bézier tool by clicking on the canvas.

nhendin wrote :

I've got this installed, and tried a few simple cookie cutters, but none work. The simplest one was just a circle in red, about 75mm diameter with 1mm walls (circle object converted to a path).

This is running on Ubuntu 18.10,

Here is the error I get. (after this, I see a pop up saying <filename>.scad could not be saved.
(I'd be happy to post the svg file someplace if you like, it's been simplified so much it's just a circle at this point --- I was trying for something a bit more complex.

Traceback (most recent call last):
File "svg2cookiecutter.py", line 141, in <module>
print(svgToCookieCutter(sys.argv[1]))
File "svg2cookiecutter.py", line 88, in svgToCookieCutter
for superpath in parser.getPathsFromSVGFile(filename)[0]:
File "/home/neil/.config/inkscape/extensions/svgpath/parser.py", line 697, in getPathsFromSVGFile
return getPathsFromSVG(ET.parse(filename).getroot())
File "/home/neil/.config/inkscape/extensions/svgpath/parser.py", line 691, in getPathsFromSVG
getPaths(paths, matrix, svg, path.SVGState(), {})
File "/home/neil/.config/inkscape/extensions/svgpath/parser.py", line 585, in getPaths
getPaths(paths, matrix, child, state, savedElements)
File "/home/neil/.config/inkscape/extensions/svgpath/parser.py", line 585, in getPaths
getPaths(paths, matrix, child, state, savedElements)
File "/home/neil/.config/inkscape/extensions/svgpath/parser.py", line 548, in getPaths
path = parse_path(tree.attrib['d'], matrix=matrix, svgState=state)
File "/home/neil/.config/inkscape/extensions/svgpath/parser.py", line 253, in parse_path
segments.closed = True
File "/home/neil/.config/inkscape/extensions/svgpath/path.py", line 580, in closed
if value and not self._is_closable():
File "/home/neil/.config/inkscape/extensions/svgpath/path.py", line 492, in _is_closable
end = self[-1].end
File "/home/neil/.config/inkscape/extensions/svgpath/path.py", line 386, in __getitem__
return self._segments[index]
IndexError: list index out of range

Alexander Pruss wrote :

I just uploaded a fresh version. Tell me if it works.

f_padia wrote :

Tried it myself and all works well. Thanks very much!

DeemEnded wrote :

This is a brilliant plugin, and I am super happy to have found it.

It works great, with one odd caveat - with some .scad files I generate, everything looks great in the OpenSCAD preview, but when I render, the wallFlare renders both outside and inside the wall at the save value (i.e., if I have "wallFlareWidth" set to 5, I get a 5mm flare outside the wall, and a 5mm flare inside the wall as well). This does not appear on the preview, and frankly I'd rather not have the inside choked off with the extra wall.

This happens both with the default settings generated by the plugin, and if I do any pokey-jiggery with the tunable settings.

Any thoughts?

fzippo wrote :

Hi Alexander!

Amazing work, but unfortunately I cannot get the
plugin activated, tried on 3 computers (Win 7 64, Win 10 64, Win 10 64)
latest inkscape 0.92.4 (5da689c313, 2019-01-14) never
does an option "OpenSCAD Cookie Cutter file" appear
in the [Save As...] dropdown.

Could I run the python script outside inkscape? I have no idea how?

HelmiBeh wrote :

Have a problem with this tool. All cookie cutters are filled. I have only used a red circle without filling, but I got a disc in Openscad. What's my problem?

HelmiBeh wrote :

Oh, i think, i got it. There's a difference if the object is filled with white color or unfilled. Mine was filled with white color. Now, it's unfilled and it works fine!

kalllia wrote :

Took a bit of playing around with it to understand how it fully works but once you figure it out, works great!! Thank you :)

dr_erk wrote :

I don't manage to install it. Is it compatible with inskcape 1.2 ?

fergal wrote :

This extension only works with older versions (0.9.x). I keep an old copy around just for this extension. Maybe oneday somebody will port it to v1.x ;)

vncnt wrote :

For Inkscape 1.3, I think there are only 2 small changes required

diff -r old/svgpath/parser.py new/svgpath/parser.py
595c595
< if link is None or link[0] is not '#':
---
> if link is None or link[0] != '#':

diff --color -r old/svgpath/path.py new/svgpath/path.py
3c3
< from collections import MutableSequence
---
> from collections.abc import MutableSequence

Alexander Pruss wrote :

Yeah, it was changed in github, but I didn't update here. I tink I updated it now, but I find this site a bit confusing.

Please log in to leave a comment!