Exporting 2d faces for CNC



That could work as well. It would simplify things. Only need to look for a closed loop of hidden edges and infer the mirroring direction from that.


I think you are all brilliant. Your tools have saved me countless hours of manual work. THANK YOU!

We manufacture lighting and I have been searching for an extension that would do just this! Building an extension is beyond me, but boy would this be useful. We have a plasma, cnc router and a laser in our operation. I design on Sketchup and can share concepts with clients quickly which we love. We now have taken the next step to flattening out designs to create cutting path dxf files, but that is a lot of time that seems like it could be automated. Unwrap and Flatten Faces Extension seems to bring us part of the way. We have been using SketchuCam very successfully for direct export of Gcode to run the router on. That is a really nice piece of work that they have really kept up with and expanded in a clear, user-friendly way.

Thomthom: we are trying to develop the ability to make boxes parametrically that can unfold and be cut on the laser (nested automatically, hopefully). I was thinking it might be done through dynamic components where we could enter the height, width, and length of the box and then the thickness of the material and preferred range of width of fingers that would then create a 3d box with interlocking finger joints. Then press a button and have the faces lay out on a defined sheet size.

If anyone is close on this extension that would get us a long way to that goal. I can think of a bunch of uses for something like this.



As I was working on my test model I quickly found that creating the tabs for each part to lock into was fiddly. Been pondering tools to simplify that… though I wish to maintain easy editability. Maybe making these edges into DCs could be a solution… needs a ponder…

Anyway - I’ll be off the grid for a week, starting my vacation. Will have some more time when I get back.


I had been working with George at Geo3Design on approaching this last week.
He created a ‘knife’ out of another object and then trimmed away one side of the box to leave the fingers on that side. Then used that trimmed edge to trim the adjacent uncut face, leaving the corresponding fitted fingers.

T his works nicely and is pretty efficient for creating them by hand but I don’t think it lend itself to automation


It is the corners that get a little tricky. you would need to make sure to leave enough material so you don’t get a tiny finger that can break.

This is where I think some kind of minimum/maximum threshold that for the finger width where an even distribution of fingers is calculated and any piece less than a full finger width is rounded up or down to the full width. I can envision it, but I don’t know the math for it.

Yes, I was thinking that Dynamic Components might be a possible way to approach the edges. But again, I haven’t mastered the coding for that.

The depth of the finger is defined by the thickness of the material.


I’m following this with great interest. Looking forward to the results. Thanks.


That should be possible, accounting for some offset on both ends, then spacing them evenly between that.


There is a little simpler way, how to do almost the same.
Watch from 16:20 https://youtu.be/T-pEvrDbxoY


Making these tabs for interlocking parts is something which takes more time than I expected. I find that I often don’t want equal spacing, but custom spacing in order to align better with internal compartments. I really want to make a tool to simply the creation and adjustment of these. Though I’m still pondering on what such a tool would look like.


I think the best solution for this case is to define all components manually. Define components axes for each piece and only then use extension (which will allow us to place all components from library on plane). And than make them flat and add information about component thickness (if it possible to do that automatically).


Base prototype seems to be working all right now.

It require all parts to be a single instance, and the faces on the ground place of the component is the shape that is extracted:


Just realised that by selecting the top tray and bottom tray separately and processing them the extension creates new 2d stacks on the side. Unintended feature :smiley:

Makes it easier to organize the parts for the bed.


In case you are wondering, I Want This!


I’ll try to clean up some loose ends in the code and get a beta out shortly. Though I’m going for a trip next week. Will see if get time before that.

I’m hoping to get this laser cut before then. (It’s a storage box for all the loose pieces for Caverna.)

It was quite easy to manually pack the pieces into the space for the bed. Certainly not the most time consuming of the process. I think I’d rather focus on a solution for the tabs before I look at automatic packing.


Just to be clear Thomthom, I want the whole plugin, I wasn’t commenting on any specific part of it. The whole concept looks good.


Wow, you’re putting a lot of effort into this! Are you going to start generating toolpaths and gcode in SketchUp next? :slight_smile:

If you’re serious about developing nesting layout tools for this, I’d suggest looking at bump nesting. In the nesting software I use, SigmaNest, I’m able to specify an edge clearance and part clearance, and it automatically checks for collisions while I manually move parts around with my mouse. It’s really helpful if you’re nesting for optimal yield. Not something I’m personally interested in with your extension, just and idea.

I’m super excited about trying out your beta BTW, and will probably have plenty of feedback to give :smiley:


So exciting! SubparFiddle have you looked at Sketchucam plugin. There had been some excellent work done there for gcode output. You could easily take ThomThom’s nested pieces and apply cutting paths and export with Sketchucam. Great idea about clearances and collisions for hand manipulation of the layout. ThomThom I am happy to help Beta test right on through to our 4x8 laser table if you want feedback.


Thanks for the Sketchucam recommendation. I might look into it for personal use in the future, but for now it just wouldn’t suit the needs of our business. In the world of upholstered furniture frames we’re very focused on yield and cycle times, and SigmaNest has a lot of features designed for that. Like bridging tool paths between parts so we don’t waste time fast traveling, and auto filleting tool paths so our routers don’t need to slow down as much on part corners.

Sorry for rambling a bit off topic but this is something I’m very passionate about :slight_smile: