Wish: Various new selection options, alternative Purge history, Delete warning

  1. Select objects with custom render mesh.

  2. Select objects that intersect each other.

  3. Select objects closer than x amount to each other. Example: if the x amount is 5 mm, then two bricks that are 5 mm away from each other will be selected, but a third brick that’s 10 mm away from any other object will not be selected).

  4. Select objects by date of creation. Obviously, for this to work, Rhino must write a date of creation for each new object in its properties that are seen with the “What” command next to the ID. This is hugely important feature, because many times there are multiple versions of the same object that represent various stages of modifications, hence it’s really hard, if not impossible, to distinguish which is the later version if the user forgot to rename the object with a consecutive number.

  5. Select curves with degree x. Select surfaces with degree x.

  6. Add an optional pop-up warning when deleting objects that are NOT visible in the viewport but exist in the scene somewhere behind the current camera view.

  7. Make “Purge history” better, by adding the following options:

  • Purge history from all objects (visible, hidden, locked, unlocked);
  • Purge history from visible objects only (history of hidden and locked objects remains);
  • Purge history from unlocked objects only (history of locked and hidden objects remains);
  • Purge history from hidden objects only (history of visible, locked and unlocked objects remain);
  • Undo Purge history (currently, if Purge history is used, Undo scene will NOT undo the lost history).

Numbers 1, 4, 5, and most of 7 (not the undo part) are scriptable.
Numbers 2 and 3 might be time consuming as everything needs to be checked, but are probably programmable with some effort.

I’m not familiar with Rhino script, unfortunately… Any ideas how these could work?

Here are a couple:

This one was already in my library (5a)
SelCrvsByDegree.py (795 Bytes)

For surfaces (5b) one would need to extrapolate this to checking degrees in the U and V direction.

For 4 (date) perhaps I misled you - one can easily report the creation order in the file of the object(s) but not the actual date/time it was created… Also, might not be all that useful, as when you modify an object, I’m not sure what happens to the order in the file… Have to check on that one

For 1 (select objs with custom mesh) you can try this hack and see if it works.
SelObjsWCustomMesh.py (1.7 KB)


1 Like

I like how you have a library. At best, I have a pile.


But what a pile it is !!! Lots of gold nuggets hidden in there when you go digging!

Would requests such as in the first post be better in Serengeti?

Still no such an important warning? :innocent: Last night I figured out that a few objects from my current project were accidentally deleted due to the fact that they were not visible in the viewport. Luckily, I save my scenes each day with a different name, so I was able to import the lost models from an older file, but imagine what happens if somebody does not have that habit and loses forever some accidentally deleted models.
Similar warning already exists upon deletion of layers that consist hidden objects, so I thin it would be a welcomed addition to add a warning for deletion of objects that are not visible in the active viewport. Is it too difficult to implement?

Damn, I got an important model somewhere outside of the visible portion of the viewport accidentally deleted and it’s a pure luck that I had it in an earlier version of the model from the day before. A warning window would make the life so much easier. :slight_smile:

Just figured out that I accidentally deleted some object not seen in the viewport, so I came back here to ask again for the request to add a warning upon deletion of objects outside the visible area of the active viewport. :slight_smile: Kind of the warning that appears upon trying to delete a layer consisting objects.

You can kind of handle deleting in a number of ways in Rhino just to be safe.
I have a safe delete script which sends stuff to a layer called safe delete. Then if I need to, I can delete the objects on this layer after inspection.

You could also script an export first then delete, that would also put a time stamp on the export file.
I know it’s not precisely what you’re asking for, but my safe delete layer script has saved me many times.