So you guys have already covered a lot of detail on this, I just wanted to throw in my two penny's worth on the plugin, and specifically on the rules of nesting.
Nesting
First,
this dxf file is a fairly good illustration. It was nested manually. The hardware system has, over time, been evolving to result in pieces which fit better onto sheets anyway, and hopefully will improve even further still. When you're doing the job manually (which is still better than the script but far from perfect), there are a few semantic rules going through your head, which I thought might (or might not) be of use/interest:
1. The blindingly obvious one. Big parts first, little ones fill in the gaps. Our latest version has lots of identical small pieces which is really good for this. Rocks, then pebbles, then sand.
2. Unless its automating straight to G-code, then one of the economies is consolidating sheets so there are as many 'repeats' as possible on the dxf, to save on CNC programming time. If there are two large or medium sized identical parts, don't put them on the same sheet, put the second one in the same place on a second sheet and repeat until there are as many identical sheets as poss.
3. The L-shaped corner pieces are the tricky ones. A good trick is to put L shaped pieces rotationally opposite each other on sheets. This very often results in spaces in between which other parts can fit into. I don't know why it works, but it often does. This might be a human workaround which isnt actually the smartest way of doing things. Others can probably infer better rules than this.
4. Naming of parts should always be as semantic as possible (so the designer can work out the most intuitive naming and numbering system for their house - like in-build instructions: 'building by numbers!'), and some (e.g pegs) are so frequent they don't need naming. They currently only take a name if the Sketchup component has been named in 'Entity info' and I think that's right. In an ideal world the names might always tend to land on the same face of the house, so they are all pointing the same way during assmbly (minimises risk of mistakes), but thats not essential, and if automated nesting can be done by allowing parts to be mirrored as well as rotated, then it's probably more important? With parametric geometry generators, all this might go a bit 'meta' since each system would have a designed naming system, rather than each individual house.
Layers
There's a lot of scope for change on how and whether the output involves layers in the same way as the linked example dxf does - they certainly are valuable I think if manually programming from dxf to CNC. Those layers at present are:
1. The sheets outline (1200x2400, despite the fact that in UK they are still in imperial, 1220x2440, though this could be a user-set parameter)
2. The outline of the parts.
3. The inline of holes in those parts.
4. Shallow routing into the surface of parts for marking the names / numbers onto them.
5. We haven't yet found a way of automating small holes well from Sketchup (it only does polygons so its massively memory intensive, for one thing, so if it is done its better modelled with 2mmx2mm squares). But in theory there might be a layer for small 2mm diameter pilot holes all the way through, for the screws.
and I would ideally add a sixth.
6. Half depth (9mm or even a designer-defined depth) routing within some lines, to allow channels to be routed out of sheets. No clue how this would be automated from the model. The mind boggles. Might not be possible.
Those layers are cut roughly in reverse order (but thats not a perfect rule, eg.When parts are placed inside large holes in other parts. CNC software tends to be pretty clever knowing this!). I think Danny also raised the idea of making 18mm as the sheet thickness a variable parameter.
I hope that makes sense and is in any way useful. It's all subject to change of course, but... that's how we've been doing it so far. You other CNCers, please do share if you have some more sophisticated 'rules of thumb' than this lot! It may be that user inputs are still required, so rather than attempting to entirely automate from sketchup to cutting file, a half-way interface is used, which allows the designer to help the script know what is what?
A