Auto Save on Join

I’ve been discussing this with Brian James at McNeel and he suggested I bring it up here;

Most of the parts I’m working with have significant interior structures or cores. I build them with outer components on separate layers from the internal ones. If there’s a problem with an internal layer I simply turn off the outer ones and get direct access to it. If I forget to do a save prior to performing a Join to look for naked edges and other problems I loose the layer information. Well, I did it again an a pretty big component and came up with a work around which works well even if the layer information is lost.

I use Zoomnaked to identify a naked edge, I may put a mark near it on a target layer so I can find It again) and then in wireframe view, back out to see where it is. Then I take a chunk of the structure around the problem and move it to a temp layer. Once I have it isolated it is reasonably easy to tear off pieces and put them back on the original layer, thus exposing the core. Another Join will usually identify the problem spot so I can examine it in detail.

That works OK for fixing problems with a design, but not so good if I want to make significant design changes.

To avoid such mistakes, I would like to force a Save prior to a Join being executed. That is, when a Join command is issued, the file is saved to a backup file before the Join executes. Has anyone written a script that would perform this or a similar action?

Hi Earl- in Options > Files there is a setting for ‘Always save before’ for Autosave. You can assign that to Join and see if that does what you need.

For this particular problem though, it might be best to have an analysis mode that checks for ‘joinability’ without requiring the actual Join.


I take a different approach to the same problem. I would join the core and exterior and then run the command DupBorder. Copy the result of DupBorder to the clipboard and then run Undo to undo the join and then paste the result of DupBorder.

Now you have the edges marked where it won’t join and you still have your component parts intact. on their layers. You can fix those areas and then repeat the process until you get everything to join without naked edges. Also when it does finally join into a closed polysurf without naked edges you can copy that to the clipboard and undo and paste the result. Then put the joined polysurf on its own layer and you have both the joined result and the components all on separate layers.

This method has advantages besides just preserving the internal layer and component information. When you join surfaces the edges are permanently modified (unless you run undo to go back). When objects fail to join cleanly then the permanent changes to the edges can do a lot of damage that is much harder to fix than it would be to fix the original pristine edges.

Allowing failed joins to exist can give you a lot of headaches. It is much better in the long run to go back fix the problem and then run Join that doesn’t fail.

Thanks for the suggestions. DupBorder is something I’ve not explored and I didn’t know about ‘Always save before’. I’m relatively new to Rhino (about a year), but have been using CAD since I designed my current house in AutoCAD V1. That was a long time ago. The complexity of these systems is increasing much faster than I can keep up…

Well, this a great thread with a few solutions to a problem I did not know existed yet. Thanks for bringing the question to the table.

Say, I’ve been playing around with the save before option. I cant figure out how to tell if autosave is autosaving before commands. I do not want to change the folder of the autosave out of the roaming folder it is in, and do not know how to look at temporary folders.

What is the format for listing the commands in the option dialogue box? When you enter a command, do you use a underscore? Are there commas? Does spacing matter? Can macros or buttons for commands’s macros be used or does it need to be a base single name command?

so, which formats would work?

  1. _extrude, _circle (comma directly after command, single space before next command in list.)
  2. _extrude, _circle (extra spaces)
  3. extrude, join (no underscores, comma)
  4. _-viewportproperties _Projection _Toggle, _join (button macro)

Any update on the format to use entering commands in the “auto save before” options field?