Relationships and Joints
Autodesk Inventor® 2014 changed the way we categorize assembly Constraints, collecting these into a group and referring to them as assembly Relationships. Constraints now share the Relationships category alongside the newly introduced Joints. This article will review the purpose and function of Joints, as well as attempt to predict what we might expect in the future with assembly Relationships
What are Assembly Joints?
Joints were intended to provide a one-step method of positioning components and defining their motion. This notable portion of the 2014 release is intended to reduce the number of steps required to constrain components in an assembly, as well as add some logic to the assembly puzzle.
Previously we all used Constraints to position and control component motion in the assembly environment. Each of these (with the exception of the Insert Constraint) is somewhat generic in purpose, but in combination produce an effective assembly model, and limit the components’ respective Degrees or Freedom (DOF).
Joints, however, are focused on the specific nature of how components are placed and behave, and are intended to act as a single ‘joint’ between components. In order to complete the overall usefulness of the concept, the Rigid Joint was developed to constrain out all DOF and to make Joints an [almost] complete component joining function.
Joints are created using the Joint tool on the Relationships panel of the ribbon. Once the Joint tool is selected and the Joint dialog is opened, users can configure the manner in which the components will be joined.
Figure 1: Relationships (note the Assemble tool remains).
The dialog has selections for the following:
- Type of joint
- Gap between components
- Joint connection feature selection
- Joint alignment feature selection
- Animate joint
Additionally, there is a limits configuration tab.
Figure 2: The Edit Joint dialog.
Immediately, users are prompted to select features with the joint type being set to the default setting of Automatic. Inventor uses the selected features to determine the required joint type, which can easily (and often necessarily) be overridden by the user.
Figure 3: Placing a joint. Here, the main dialog is out of the view.
Once a successful placement has been applied, the Joint behavior is animated so users can quickly visualize the nature of the connection that is being made, and what type of alignment is necessary.
This animated functionality is nice as it delivers an automatic visual representation to the user. At the same time, it is annoying because we often need things to behave in a snappier manner. When applying the Joints, you can approve the feature without waiting for the animation to complete.
The Joint tool offers some new methods of helping the user identify and then select and identify the geometry features that can be used to place the components. An outline is projected onto the feature along with respective keypoint nodes, which changes as the cursor is passed over each feature. This outlining is seen transparently through components so that you don’t always have to move your view and components in order to verify how the components are being assembled.
Figure 4: Joint placement determination UI. (Note that this is the first component selected. Also the Ctrl key was held to focus on only a single face's key points.)
The Control key (Crtl) is used to limit which faces are being focused on. As the cursor is moved about, various faces activate and ‘get it the way,’ so to speak. Positioning the cursor over a desired face and then pressing the Ctrl key allows users to then move about the face’s key points without other faces activating.
This is the fantastic type of UI that we have come to expect from Autodesk, and I think this is on the right track.
It is important to remember that as a joint’s components are selected, the order of selection is important. The first selection is the component to move and the second selection is the component to join onto. The Edit Joints dialog will warn you when a grounded component is about to be moved. If you hit OK, it will get translated, grounded or not. If this behavior is unacceptable, select the grounded component last.
Joints are designed to permit the following freedom of movement:
Rigid – removes all degrees of freedom (DOF)
Rotational – one rotational DOF
Slider – one translational DOF
Cylindrical – one translational and one rotational DOF
Planar – two translational and one rotational DOF
Ball – three rotational DOF
Note: You can use Joints in conjunction with Constraints to position and describe motion.
Joint Locking and Protect
As Joints are created and their respective alignment features are identified, they continue to remain flexible. One example of this is the Rotational constraint. The base cylinder edge’s translational DOF are fixed, but one rotational DOF remains (it spins in place). Autodesk intended for this Joint’s natural behavior to continue until you purposefully cause it to halt.
We can remove all DOF using the following two options:
- Lock – Maintains the current position until a connected component position is changed.
- Protect – alerts you if an added relationship violates the required DOF.
Note: Lock and Protect are not available for constraints.
Figure 5: Locked ball joint.
Limits further define the manner in which Joints behave. They can limit both linear and angular motion in component behavior. In the example below, the Tension Bolt (which once was related in the assembly with an Insert Constraint) is limited to 0.20” of linear (axial) movement.
Figure 6: Limits tab defines joint behavioral limitations.
You can grab it and pull it about and it will move, but only the amount prescribed.
I think the limits behavior is well defined in this release, and helps make the Joints a better solution than Constraints in most instances.
All Relationships can be driven from the context menu activated by the Relationship browser items or the Relationships Glyph. Joints’ Drive functionality and dialogs are consistent with those of the Constraints’ we are used to.
Joints are stored under each component in halves similar to the manner we are accustomed to with existing Constraints. The Constraints folder has been renamed to Relationships and now appears in both the Assembly and Modeling views. This I like.
Figure 7: Relationships Group in the browser.
Visual management of Joints is provided by glyphs (on-screen icons) that are attached to related components. Each Relationship Type is represented by a glyph and once visible, can be acted upon by double-clicking or using the context menu.
These glyphs can be visualized using the Show and Hide tools available on the Relationships panel.
Figure 8: Joint visibility tools.
- Show – When active, relationship glyphs appear when the component is selected. Further editing of the relationships is provided through the related contextual glyph menu.
- Hide All – Removes all relationship glyphs from the display.
- Show Sick – Displays the glyphs for all sick or damaged relationships.
- Grounded glyph – ‘Pin’ appears when you mouse over a component.
Figure 9: Showing Relationship glyphs.
Once shown, the display is persistent until the Hide All function is reactivated.
Where Joints are concerned, each Relationship Type glyph is accompanied by two additional glyph halves that represent the base position and alignment for the two related components. These are activated when the Relationship glyph is hovered over.
Additionally, as components move either through the Joint’s behavior or by a Free Move, the Relationship glyphs remain with each respective component, resulting in two visibly separated halves for each Relationship.
Figure 10: Activating Relationship glyphs. (Note the joint's alignment visibility and the information panel.)
Free Move and Relationships
The Free Move command allows users to move any components regardless of Relationships. The translation is temporary and remains until the assembly is updated, at which time the components return to their respective original locations.
Figure 11: Relationship behavior during a Free Move. (Note the context menu activated from the Relationship glyph half.)
Assembly and Simulation Joint Similarity
As many of you may have noticed, Assembly Joints are similar to the joints found in the Simulation environment. I like this because it reduces the difference between the modeling and simulation environments. Some conversion of names between the two still has to be made when entering the Simulation environment.
Simulation Joint Conversion Types
Assembly Joints are automatically converted to Simulation Joints when you enter the Dynamic Simulation environment. The converted joints are listed as standard joints in the Simulation Environment browser.
The following are the automatic conversions:
Inventor Joint Joint in Dynamic Simulation
Table 1: Assembly and Simulation Joint comparison.
Eventually these two types will most likely be developed as a single feature that successfully passes between the Simulation and Assembly environments (for as long as those environments remain separate).
In my opinion, the Insert Constraint remains king in its general UI and extended use (driving the constraint, and so on). Obviously this constraint is only intended to handle a limited role in joining two components. Its replacement, the Cylindrical Joint, is far superior in capability and options; however, it lacks the ‘snap’ needed to make the experience of using it daily as pleasant as the Insert Constraint.
Figure 12: Tangent Constraint.
Not all Constraints are reproducible as Joints. The Tangent constraint, as with the cone-face used in this example, cannot be related using a Joint.
There is nothing ‘bad’ about Joints per se, though users may experience a rough spot or two initially. I’d like to lose the ‘gentle’ motion that they exhibit when the initial placement is achieved, replaced with the neck-snapping pop and the audible sound associated with Constraints.
We refer to joints in our daily lives, and generally expect a joint to perform a specific task. For example, a ball joint on a car and an elbow on your arm are singular joints doing a specific job. This ‘single joint’ concept (removing the multiple constraints required to fully constrain two components together) is possibly the best part about Joints, and fantastic from the respect of organizing and managing the assembly.
The more I use Joints, the more I appreciate them. For an initial release, I think they are well developed and, for the most part, well implemented. There is no reason why the next release will not be even better.
What’s in the future? Eventually I expect that the Constraints will die away, as will Joints. Only Relationships will remain. The separation between the Assembly and Simulation environments will continue to blur, and Joints (or Relationships) will no longer need to be translated between environments, but instead simply exist as is. (These are just my expectations—nothing verified or stated by Autodesk.)