This is so cool! Well above my current wheelhouse, but really puts things into perspective on what is possible with the machine. Really want to do this in the future.
If you will let me know what stock thickness you would like to use, and what box dimensions you want, and whether you want a hinged or sliding lid, I’ll gladly work up a step-by-step tutorial for that size.
That would be cool. We’re currently in the middle of a move, and my shop is out of commission while I build up the new space, but I’d love to take you up on it. My real question is if all the work done in OpenSCAD is necessary or if you could fully do this in CC or Fusion?
Unfortunately, it’s not workable to do all the design for CAM in OpenSCAD — it won’t write out G-Code, and it can’t do an open geometry — still looking for a CAD/CAM tool which suits me which can do these things.
I show doing this in Carbide Create alone at:
Yes, it could be done in Fusion — I think one of the links at:
Looking at the finished box, I got to thinking about the voids which are left in the sliding version — while thinking on how to address them, I realized that it would be possible to have a minimal hinged (pinned) lid, so the previous hinged option was renamed to “Sawn” and I worked up a Hinged option:
It will require rounding off the back underside of the lid, but that’s easily done w/ a hand plane or via 3D modeling if one doesn’t have a suitable endmill for doing so. Also one will need to make a fixture to hold things in place while one drills for the hinges.
The issue is I need to get this into the DXF/SVG, and unfortunately, OpenSCAD doesn’t support 3D DXFs, and I don’t want to create a requirement that folks export an STL and use MeshCAM.
I’ll probably model a cove radius tool and assign a toolpath for that as was done here:
(unfortunately, that doesn’t work in BlockSCAD for some reason — need to revisit that, and if I still can’t get it to work, file a bug report)
then if folks don’t have one of the correct radius it will be on them to model a workaround, say using the technique described at:
Will have to look into that. There’s an OpenSCAD in the cloud effort which is getting started — I’m advocating for adding support for projection() and the Customizer which would make it really good for this — the only things then lacking would be the ability to do open/unclosed geometry and the ability to write out G-Code.
BlockSCAD has a command for exporting as OpenSCAD — once a project is done I do that, then add the code for projection() and move the variable definitions around and adjust them so that they work for the Customizer feature.
I’ve been exporting an SVG — the problem is it’s a 2D format, and OpenSCAD will only export closed regions, and there isn’t an obvious way to get toolpaths — see above where I show taking the outline of a V carving region and using it to draw a line which can then be used to do the miter instead of using a traditional V carving toolpath.
I’m stuck here because there doesn’t seem to be a 3D modeling tool which:
is programmatic
has a nice graphical interface (blocks or nodes or something better)
can write out text files w/ full user control
which has a license I’m willing to work w/ — this hybrid of BlockSCAD → OpenSCAD → DXF/SVG is the most workable thing I’ve yet found, but it doesn’t do open/unclosed geometry and there isn’t sufficient control over the echo command when writing out to the log file for one to get G-Code which doesn’t require post-processing (which is something which I don’t want to impose on the folks who use my designs).
I think we’ve discussed this before, but a fork of OpenSCAD could be bent to make some of these things happen … but then there’s maintenance and distribution of the binaries to consider. And it doesn’t have a UI with blocks and nodes (something I don’t like personally but I can see how it might appeal).
I did notice one approach recently with respects to the post processing and ECHO that reduces the skills required to grab the GCode from the OpenSCAD console to one of accurate mouse selection.
$fn=36;
mm_minute=5000;
points=[for(i=[0:$fn])let(iw=360/$fn*(i%$fn))[sin(iw),cos(iw)]];
gcode=function(i=len(points)-1)i==0?"\nG91; relative positioning\n":
str(gcode(i-1),"G1 X",points[i].x," Y",points[i].y," F",mm_minute,"\n");
echo (str("G-code:\n",gcode()));// here the code is displayed within console window
polygon (points);// not needed for the code - just to view
(edit: the basic idea here is to fill an array then render the array as GCode in one hit)
(edit2: I recently looked at the export code for OpenSCAD (they added a few more export formats) and thought it would be possible to write a “slicer” exporter that generated SVGs for horizontal layers of the model, perhaps only writing them when they differed. That would be pretty useful)
(edit3: something that did something like this: SliceCrafter )
I’m currently writing out separate layers as noted above, and have been programming the various parts modules so that they have parameters for tool and depth.
The array idea is interesting — I’ll have to look into it — found it at:
EDIT: looking into it, I don’t see how it could generate code which would work w/ Carbide Motion/Grbl — if I understand it correctly, every line will be preceded by: