Assembly Link
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.Â
 Â
How to use Assembly Link
Assembly Link has two modes of operation: manual or with coupling logic. In any mode of operation, the parameters Snap and Only connect Male-Female will be taken into account.
Manual use of Assembly Link
In the manual use of Assembly Link, if you want to link two Linking Interface, they must be set in the two inputs Interface A and Interface B and the input Link Assemblies need to be set to true. When linking is established, the outputs will indicate which interfaces were linked.
If there are any errors, they will be displayed on the extension itself. In this case, you need to uncheck input Link Assemblies, correct the error, and check it again.
Coupling Logic
When the Enable Coupling Logic parameter is set to true, additional parameters can be set in the Assembly Link. In this mode, only Interface A can be set in the inputs. If linking is requested, by setting Link Assemblies to true, the Assembly Link will try and locate a suitable Linking Interface, using the thresholds parameters Distance Threshold and Orientation Threshold. When a suitable Linking Interface satisfies the Distance and Orientation threshold, it will be automatically linked. The outputs will indicate exactly which Linking Interface are linked. Otherwise, no linking will happen.
Inputs, Outputs and Parameters for Assembly Link
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 Coupling Logic is enabled, Interface B cannot be set. Any value present will be ignored.
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 3409987474.
Outputs:
- Assemblies are Linked
Indicates that the Assemblies are effectively linked. Some errors on the extension can still be shown. - InterfaceA and InterfaceB
These are the Linking Interfaces that are linked.
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. - Only connect Male-Female
When the value of the field Only connect Male-Female is set to True (the default), the Assembly Link will consider the gender of the targeted Linking Interfaces in its compatibility checks. See the Linking Process in the 3409987474. Enable Coupling Logic
When true, linking will be done with a suitable Linking Interface that satisfies the thresholds.If Enable Coupling Logic is set to true while there are already linked Linking Interfaces, they will stay linked even if they do not satisfy the threshold. This is useful to set an initial linked interface.
If a Linking Interface does not have an Attachment Point, it has no position and will not be taken as a candidate for coupling logic.
Enabling coupling logic gives access to additional parameters
- Distance Threshold
The threshold distance that allows linking. Any candidate linking interface must be closer than the threshold. The distance is calculated between the two Attachment Points in the Linking Interface. - Use Orientation Threshold
Enable or disable the use of the orientation threshold. - Orientation Threshold
The threshold orientation difference that allows linking. The orientation difference between the two Attachment Points is calculated as a rotation axis and a rotation around that axis; the threshold value is the absolute value for the rotation around the axis.
- Distance Threshold
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:
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.
Dynamic Connection:
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(Optional):
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.
Only connect Male-Female:
Gender is another way to ensure compatibility between Linking Interfaces. Setting the Assembly Link to restrict connection to only Male and Female linking interfaces guards against incompatible connections. For more information, please refer to the "Gender" field in the Linking Interface documentation.
Example of using an Assembly Link
For a example of how assembly link works, create a Scene document in the Editor, and add two mechanisms : C:\CM Labs\Vortex Studio Content XXXX.X\Samples\Vehicles\Semi Truck - Tandem\Semi Truck - Tandem.vxmechanism and C:\CM Labs\Vortex Studio Content XXXX.X\Samples\Vehicles\Intermodal Chassis\Physics\Intermodal Chassis.vxmechanism.
The truck and trailer can be connected by driving the truck under the trailer and pressing the A button on the gamepad.