I’ve been digging into OpenSCAD lately and managed to come across this Flickr photo with the most minimal of explanation of how to do a reverse object in OpenSCAD, but it was all I needed…
I started with the SVG file of the classic Space Invader character, sized to the width and height I wanted, and then exported it from Inkscape as a DXF file.
Once we’ve got the DXF we can pull that into OpenSCAD and extrude it into a 2.5 dimensional object. (It might be 3 dimensional, but I’m not going to argue 2.5D versus 3D right now.)
linear_extrude(height = 10, center = false) import("spaceinvader.dxf");
After we compile the code we can then export our object as an STL file. We can then pull that STL file into OpenSCAD again for the next step…
difference() { translate([40,42,2.5]){ cube([90,70,14.5], center=true); } # import("spaceinvader.stl", center=true); }
You’ll need to tweak those numbers of course, and as for the # at the start of the import line, that’s to show us the object even when we can’t see it, as it were… sort of. It’s an OpenSCAD trick I learned from Mark Finn at BarCampMilwaukee.
So now that we’ve got the object dropped into a block (at the proper height) we can then export it as an STL file, which could be cut on a CNC machine, or 3D printed.
I’ve not yet attempted to 3D print this, and I’ve had not much luck in printing things that are water-tight. I might try getting some silicone to coat the piece which would make it water-tight, and food-safe.