Exporting 2d faces for CNC

I’ve been using SketchUp for a while now for designing wood frames for upholstered furniture. One of my biggest problems with my workflow is getting the 2d data I need from my models. Currently, when I finish a model I go through each part, double click to edit, select a face, copy, back out and paste it to the origin plane. Then I export as a 3d model to get a dxf I can import into my CAM software.

Are there any available extensions that can go through selected groups and components and export the 2d faces automatically? Or even just arrange those parts somewhere in the model?


Have you consider using Vectric software which can import your SKP file and do the layout work for you?

Our company has been using SigmaNest for so long, changing CAM software isn’t really an option.

Right now I’m considering learning how to develop extensions. Just thinking about it it doesn’t seem like it would be that big of a challenge to develop… Might be a fun side project, too :slight_smile:


How about this workaround:
Create the parts first as simple rectangular components flat on the ground.
Then copy and rotate them to their appropriate places in the 3D model.
Cut them into shape in the 3D model, and the originals on the ground will update.

I hope you do - I was thinking the other day how I wanted an extension like this for my laser cutting projects. I wanted to model all the parts in 3D, but then export/generate 2d vector plans for the lasercutter to use.
Should not be technically too difficult, at least not extracting the 2d faces. I was thinking that one need to rely on some consistent orientation of the axes for each component. Then you can traverse them and for instance pick the face on the ground level of each component (Z=0). From there, maybe if there’s a nice opensource lib to pack the pieces you can get the whole process automated. Imagine just defining the bed for your CNC/laser.
If you ever truly consider this then I hope you keep us up to date. If you make this open source I might jump in and contribute.
We have the beginning of new examples tutorials which describe the key aspects of SketchUp extensions: GitHub - SketchUp/sketchup-ruby-api-tutorials: SketchUp Ruby API Tutorials and Examples

By the way, @ChrisDizon - are you aware of anything existing that do this?

No guarantees but VCarve can take skp & dxf files and layout the parts for CNC. The software is geared for small woodworking projects but it might be able to be used for larger CNC work.

Here are a few videos showing the import process.


Thanks for the input, man! You’re actually one of my heroes, and I really admire what you do for this community. I use your milling tools plugin every day!

I’ve been going through the basic Ruby and SketchUp api tutorials I’ve found and trying to learn the basics from the ground up. It’ll be a while and whatever I come up with will undoubtedly be hacked together for my personal use, so don’t expect anything on my end :slight_smile:

I’ve been pondering about this thing for a couple of weeks - and the idea for such an extension is appealing more and more. Espesially when I started describing it here.

It should also be trivial to determine the thickness of the materials and group parts of similar thickness. One could go even further and group by SU material in case you got multiple materials of similar thickness (espesially for laser cuttting). And then one could either generate SU geometry, or maybe a LayOut document.

It’s quite possibly that I’ll be looking into this the next couple of weeks - as I’m starting my vacation in a couple of days. :slight_smile:

I’ll post back with updates if I make any progress.

1 Like

…and… as I’m sitting here modelling up my laser-work. An extension to quickly create intersecting tabs between two parts.

I had to start tinker on a proof of concept…


One face missing ? left or right ?:slight_smile:

Looks like it consolidated the sides and front/back…

Currently one face per definition. But it’s just proof of concept right now. Next step is making one per instance and handle nested instances.

So… We’ll see that… In an hour or so?? :wink:

Yes, that’s exactly what I had in mind! You’re a freaking wizard…

One thing you might want to consider, in pretty much all of my CNC designs I’ll have some parts that I design with symmetry using 2 components and hiding the touching faces. Do you think your extension could detect that and combine them into 1 face? Also, it probably goes without saying but if you can implement your milling tools extension into this one that would be perfect…

Somewhat more challenging, maybe not for MVP. But can you share a sample model?

You know what, I was thinking yesterday after the tinkering that this part-extraction tool might fit well bundled with Milling Tools instead of being a new extension.

C9-14.skp (2.1 MB)

1 Like

Thank you. I think it can be possible to treat these components as one by checking hidden edges - then looking for another component with matching hidden edges. It’ll add to processing, but it should be possible.

I think @ericschimel do something similar.

I was thinking thinking you could just scan for hidden edges, and if you detect one just mirror across it. This is the only thing I use hidden lines for, so that might not be a good general solution, though.