Wish: Inherit Object Name after Join

Hi All, I do alot of 2D linework for CNC cutting, but this request not only applied to just lines but surfaces and solids too.
Basically I use the object name of a parts curves to keep track of it through processes like nesting etc.
I also use object names in the model to keep track of parts through the process of 3D to 2D.

The problem comes in with editing anything that you have already named. eg. filling in a gap in a 2D curve, or adding a surface to a solid with a hole
In these cases if the original object has a name , and the join command is used to join it to an object which has No Name, then the new joined object inherits the No Name, instead of carrying over the name from the object of the pair which actually DID have a name.
I understand that this can be the default name method when 2 or more of the objects have different names and then No Name would make sense, but when joining 2 or more curves and only one has a name and the others have no object name then I think logically the name from the one that has a name should be inherited.?
This is a pain when editing thousands of CNC curves and always having to remember that after joining a curve which may be an extension, a gap filler or various other, that you must first copy the object name of the ‘base’ curve and then paste in into the object name of the output curve once joined.
The same goes for editing solids, and surfaces and joining any number of them which have no name to one that has an object name. If there is a single name amongst the group being joined then that should be carried through to the new object. Please.
Regards. Michael VS

When joining things, just make sure that the named object is selected FIRST. That will make the name stick to the post-joined geometry. Please post a specific example if that appears not to be working for you.

Hello @wim, Yes. Thanks for that info. That can work on one by one basis, but when doing mass fixing, editing of many parts, and a drag selection is used to join parts then it seems to be random pot luck as to whether the output part has a name or not for each joined object.
Same for drag selecting over many surfaces that make up a solid. It becomes very time consuming to go through doing individual selection of ever surface to make sure that you chose the one with the name first for each object.
Thanks though. MIchael VS

Hi Michael,
I understand that things are a bit more complicated with mass fixing.
I seemed to remember that also the active layer had something to do with properties inheritance but playing a bit with that, I’m now more confused than I was before. :confused:

I have a simple square, exploded, each of 4 sides on a separate layer and only one of them has a name. I thought that as long as I set the active layer to the named object, cross selecting all and joining would ensure that the name is carried on to the result. That worked. :thumbsup:

Then I set the default layer to one of the other sides and tried again. The name still carried over. In this simple example I was unable to get the name not to stick to the result. :thumbsdown: @pascal, any pointers here? [I did read the help file…]

Hi Michael,

FWIW: I put together a script that will:

  • let you pick a (pre) selection
  • check all the names of the objects
  • if 1 name is found let’s you confirm the name
  • if multiple names are found lets you choose a name to pass
  • if no name is found nothing special happens
  • next the regular join command is run on the objects. All objects selected afterwards are named the new name. Regardless if they were used in the joining.

You have to store the file in a folder where it can remain as it is being linked to.
Next drag and drop the file over Rhino. It will add an Alias based on the filename -".py".
So by default NamedJoin
NamedJoin.py (1.1 KB)


Hello @Willem, Thanks for the py script but when I drag it over Rhino, the open dialog comes up and then if I click open then Rh5-64bit says: File type not supported
I do have other python scripts embedded in buttons in my workspace which work, but the alias function on commandline would be nicer than putting this on a button. Thanks. Michael VS

Hi Michael,

My mistake sorry. This drag and drop does not work for python scripts.
You could open it in the python script editor and running it from there one time will register the alias.

HTH - Willem

Hello @Willem, Thanks. I got it to work, and will use this until the inherited naming logic is perhaps incorporated into Rhino. Thank you. Michael VS

1 Like