Transfer TCP through Multiple Components

I modeled a torch, torch mounting bracket, and break-away clutch as separate entities. The PnP snapping works great but I can’t seem to get the TCP to transfer from the robot to the TCP that I have setup on the torch. If I snap the torch directly to the robot (without the mounting bracket and clutch) the tool is then available to select in the programming tab and TCP is positioned at the tip of the wire of the torch as desired.

I realize that I could have modeled all three components as one and this would not be a problem, but for the sake of modularity I was hoping to be able to make this work the way I have it.

Any suggestions on how to get the TCP to transfer from a robot, trough intermediate components, to my torch?

Here are some options.

Option 1 - Import/Export Tool Frame Interfaces Physically

This will require the intermediate components to import and export the TCP using interfaces. So the component that is directly connected to robot can export the TCP that it imports from another component.

This can be cumbersome.

Option 2 - Write Script in Torch

Use a Python script that has an event handler for evaluating the component hierarchy of torch when it is connected to another component. So you work your way up the tree, checking if parent component is a robot. If a robot is found, append or copy the TCP to robot controller Bases property or use an existing tool frame in robot and edit its properties.

This can be tedious.

Option 3 - Create an Assembled Rig

This does not answer your question, but might get the juices flowing.

  1. Connect and/or attach the three modeled components.
  2. Select the component that is the highest level parent. For example, moving the component would move the other two components.
  3. Save the selected component as a NEW component.
  4. In the new component, create an interface that allows the rig to attach itself to robot and export the tool frames of a Tool Container behavior.

For the record.

I had a similar problem which I tried to solve via option 1.

“torch” would pass its TCP to “torch mount”.

“torch mount” can pass its TCP to “robot”

“torch” can pass its TCP to robot, when connected directly.

It appears the tool middle tool container is populated for use, but only permanent TCP’s are passed up the chain.