Assembly Link

Assembly Links are used to connect two Linking Interfaces together which creates the binding between two Assemblies. The result will establish two levels of connection between the Linking Interfaces: a data connection as well as a dynamic connection with the help of an Attachment.

An Assembly Link can be included inside a Mechanism, a Scene or an Assembly to connect or disconnect dynamically two Linking Interfaces. Both level of connection (data and dynamics) are done simultaneously.

The data connection is done by connecting the inputs and outputs of the interfaces where fields are linked by name. The dynamic connection is similar to an Attachment where the Attachment Point of both Linking Interface is used.

Configuring an Assembly Link

Assembly Link can be created from the Scene, Mechanism or Assembly Editor via the Toolbox. The Assembly Link icon is located in the Dynamics section of the Toolbox.

Once included in the Editor, the instance of the Assembly Link won't do anything by itself. It requires to be associated with two Linking Interfaces. By selecting the instance of the Assembly Link in the Explorer Tree you can see its properties been displayed in the Properties Panel. 

Inputs:

  • InterfaceA and InterfaceB
    These are the targeted Linking Interfaces to be linked. For more details on how to create a Linking Interface, please refer to the Working with Linking Interfaces section of the Assemblies.

If a Linking Interface is currently linked by an Assembly Link, the same interface cannot be used with any other Assembly Link (the link will never be established).

  • Link Assemblies
    When the value of the field Link Assemblies is set to True, the Assembly Link will attempt to create a connection between the Linking Interface set on the other inputs. Any compatibility issue, or field matching error is reported. See the Linking Process in the Linking Process section.

Outputs:

  • Assemblies are Linked
    Indicates that the Assemblies are effectively linked. Some errors on the extension can still be shown.

Parameters:

  • Snap
    When the value of the field Snap is set to True and the linking is done, the Assembly represented by InterfaceB's Linking Interface will be moved so that both Attachment Points will be at the same exact position. This may translate and rotate the Assembly when performing the link. When toggling off the parameter, no assemblies are moved. Please use this setting with caution as it can easily destabilize a simulation.

Linking Process

Several conditions are required to create a valid connection between both Linking Interfaces input. Here is a list of important element to take into account before trying to create a link.

Data connection in the Assembly Link consist of linking the Outputs of one of the Linking Interface to the Inputs of the second one and vice versa. 

  • InterfaceA.Outputs → InterfaceB.Inputs
  • InterfaceB.Outputs → InterfaceA.Inputs

Any Linking Interface can be linked as long as the tag is respected. Fields are connected by name, such as a field named Velocity in the output will be connected to a field named Velocity in the input of the other Linking Interface. Ordering of the fields is not important and the link will be valid as long as all inputs and outputs find their counterpart in the other Linking Interface. If fields are missing or the naming is different, a data connection will be attempted and warnings will be raised.

The dynamic connection is accomplished with the Attachment Points field of each Linking Interface assigned in the input fields of the Assembly Link. Like the data connection, the dynamic connection won't be created if the tags are not valid. If valid, an Attachment will be created as long as no issues with the Attachment Points are detected. Attachment warnings will be raised if this is the case.


In the case where some collisions must be disabled between the two assemblies to be linked, it is possible to specify a list of collidable objects in both concerned Linking Interfaces . Collision rules will be created between all collidable objects from the first Linking Interface and collidable objects of the second Linking Interface. These rules will make sure to disable all collisions between these collidable objects when the Assembly Link's linking is active. This feature can be quite useful to ensure a stable linking between two assemblies.

Tagging is an optional way to ensure compatibility between Linking Interfaces. Wrong tagging will prevent both the data connection as well as the physical connection to occur. For more information, please refer to the "Interface Tag" field in the Linking Interface documentation.