The Morph Constraints panel allows you to create constraints that restrict the movements of nodes or force compliance with dimensional requirements during morphing. Constraints are entities and are saved with the model.
|
The panel is organized into two subpanels: Create/Update and Release Nodes.
Changes made on one subpanel do not affect the other, and are persistent so that you can switch freely between subpanels without losing any settings already made.
You can change the nodes that are associated with a constraint being reviewed by adding or removing them and clicking update. Clicking reject rejects the last constraint created.
You can also release nodes from all of their constraints by accessing the release nodes subpanel, selecting the nodes to be released, and clicking release.
The following example shows fixed constraints. The marked nodes in the center of the plate are constrained to be fixed (they will not move when the model is morphed). The three handles on the left edge of the plate are perturbed vertically. The constrained nodes do not move while the unconstrained nodes are unaffected.
The following example shows a fixed constraint with the stretch mesh around nodes option selected, which allows for smoother transitions between constrained nodes and the rest of the model.
The following example shows a cluster type constraint. The marked nodes in the center of the plate are constrained to move as a cluster, which means that during morphing, the perturbations for all of the nodes in the cluster are averaged and applied to the cluster, moving the cluster as if it were a rigid body. In the example below the handle at the top right is moved and the model is morphed.
The following example shows a cluster type constraint with full rotation and mesh stretching. Like a normal cluster constraint the perturbations of the constrained nodes are averaged and applied to all the nodes, but additionally the cluster will be rotated to match the rotation or skewing of the surrounding mesh. In the example below, the handle at the top right is moved and the model is morphed. The cluster nodes are translated and rotated as if they were a rigid body. Furthermore, rotation for cluster constraints can be limited to occur only in plane (spin) or out of plane (tilt) but these options are only effective for clusters which lay generally in a plane. You can also constrain nodes to move along a vector, line, plane, surface, elements, or an equation. These nodes will follow the feature selected during morphing enabling you to alter the shape of a mesh while keeping it on a line, surface, vector, plane, mesh, or surface of a function. The nodes constrained to a feature do not need to be on the feature to begin with, but they will be moved to that feature when the constraint is applied. You may also constrain a node where a handle is located and that handle will follow the constraints. You can have as many constraints as you desire per node—but if conflicting constraints exist, there is no guarantee that any of them will be satisfied. The following example shows nodes constrained to a line. The marked nodes are constrained to follow the highlighted line. When the rightmost handle is moved to the end of the line, the constrained nodes move along the line while the unconstrained nodes are unaffected. However, if mesh stretching is applied the unconstrained nodes will stretch to match the perturbations of the constrained nodes resulting in a smoother mesh. Additionally, placing handles at constrained nodes can be used to achieve mesh stretching (see next example).
Another option for constraining nodes to vectors, lines, planes, surfaces, and elements, is "bounded," which means that the features serve as limits to morphing. The constrained nodes can move up to, but not past, the given feature. You may also prescribe a distance which the constrained nodes can get no closer than when you create a limiting constraint. The following examples show nodes bounded by a line with a set distance beyond which the nodes cannot move. In the first case (top two pictures), the mesh does not stretch to accommodate the constraint. However in the second case (lower two pictures), creating handles at the constrained nodes (and making them dependent on the handles which are being moved) allows them to move along with the perturbed handles and affect the mesh when they encounter a constraint. A similar effect can be achieved by applying the mesh stretching option, but by using handles the user can control the amount of stretching by adjusting the handle biasing factor.
The following example shows a constraint along dofs. This is a constraint where one, two, or all three of the degrees of freedom of the nodes are fixed for a given coordinate system. The figure below shows a constraint placed upon the nodes of the magenta elements where the r coordinate of the cylindrical system is constrained but the theta and z coordinates are free. In the figure on the right, all the nodes have been morphed to the right. Note how the constrained nodes have maintained their radial distance from the system while rotating around the z-axis (moving in the theta direction) and thus maintaining the conical shape of the mesh. The top part of the gray section shows the morphing which was applied to the entire mesh while the lower part of the gray section shows mesh stretching through three rows of elements. The following example shows a smooth type constraint. This is a type of constraint where one or more connected edge domains are made to smoothly propagate the perturbations of the handles lying along them. For edge domains that begin perfectly straight, the smooth constraint enforces a spline curve fit through the handles along their length. If the edge domains are not perfectly straight, existing curvature or bends will be preserved and the smoothing will be applied across those features. The following example shows several types of tangency constraints. In the upper left figure, the model is unconstrained. In the upper middle figure, a continuous type tangency has been applied between two edge domains. In the upper right figure, a continuous type tangency has been applied between two 2-D domains. In the lower left figure, a master-slave type tangency has been applied between two edge domains. In the lower middle figure, an attached type tangency has been applied between two edge domains. In the lower right figure, the model with the attached tangency has been morphed with the end angle of the attached domain following the morphing of the domain to which it is attached. The following example shows a match elems constraint. In the left figure the elements on upper 2D domain have been matched with the elements on the lower 2D domain in the normal direction at a distance of 5.0. When the handle on the lower domain is moved downward the elements on the upper domain are moved downward to preserve the matching alignment.
The following example shows three match elems constraints connecting four 2D domains. One constraint matches the uppermost layer to the second layer down, another constraint matches the second layer down to the third layer down, and the last constraint matches the third layer down to the bottom layer. All constraints use the orient option to more precisely match the constrained layers. A handle on the third layer is moved downward causing a chain reaction which passes the shape change from one layer to the next until they are all matched.
There are also seven types of "model constraints" (length, angle, radius, arc angle, area, volume, and mass) available. These allow you to constrain some feature in your model, such as the length along a line of nodes, or the total weight of the model, to be above, below, or equal to a specified value. These types of constraints are associated with user-defined shapes, which are applied automatically during morphing so that the model constraint targets are met. The following example shows an area type model constraint. The elements of the 2-D domain are constrained to have a constant area. The constraint is linked to the shape shown with the small gray arrows which, when applied, will uniformly grow or shrink the elements towards or away from the center of the domain. This constraint was generated automatically using the create generic button in the morph constraints panel. When the model is morphed, such as when the two handles on the right side of the domain are moved to the right, the total area of the elements increases and violates the constraint. HyperMorph then applies the shape (or shapes) which are linked to the area constraint by whatever amount is necessary to satisfy the constraint. As shown in the example, the figure on the left is the initial state of the mesh with the area constraint created on the elements. The figure on the right is the state of the model after the handles are moved and the shape linked to the constraint is applied by an amount which results in the area remaining constant.
|
The Morph Constraints panel contains the following subpanels and command buttons:
Use the Create/Update subpanel to create a new constraint, or to select and modify an existing one. A constraint is set to be active when it is created, meaning that the constraint will be applied automatically whenever the model is morphed. To change a constraint's active status, go to the Morph Options panel or click the options… button and go to the morphing subpanel. Click the morphconstraints collector to modify which constraints are active and which are not.
When a constraint to a line, plane, surface, elements, or an equation is applied, the nodes will be moved to that feature and the node movement will be stored as a morph that can be undone and redone. However, undoing a morph that occurred as part of constraining nodes will not remove the constraint. To remove a constraint after it has been applied, you will need to do one of the following: use the reject button, use the release feature on the release nodes subpanel, or delete the constraint (via the delete panel). Nodes may be part of multiple constraints. In these cases, HyperMorph will perform a series of iterations to try to satisfy all of the constraints. For instance, a node constrained to two intersecting surfaces will be moved to a point along the interface between those surfaces. If all of the constraints cannot be met for a given node, HyperMorph will return a warning. When morphing, constraints are applied after the nodes or handles are morphed. In some cases this may change the amount of morphing applied to the handles or nodes. For instance, when rotating handles which are constrained to move along a line, the handles will first be rotated by the given amount and then moved to line, possibly altering the angle applied to the handles. This is true for all morphing operations except when the distance or angle is changed in the Morph panel, alter dimensions subpanel, which will iterate until both the desired distance or angle is met and the constraints have been satisfied. For tangency constraints, you are allowed to create tangency "chains" by joining as many 2-D or edge domains as desired and even make loops, although master-slave loops and other insolvable configurations are not allowed. Also, while the 2-D domain tangency option is fairly robust, its performance may not be satisfactory when long, curving chains of domains are made tangent to each other. In those cases, the interpolate surf feature in the Map to Geom panel can be used to smooth the mesh. When a model constraint (length, angle, radius, arc angle, area, volume, or mass) is applied, the shapes associated with the constraint will be applied to the model in order to enforce the constraint. For example, if you have a model that must weigh no more than a certain amount you can create a mass constraint that uses a shape which varies the total width of the model. From then on, after every morph, HyperMorph checks the current weight of the model and, if the model is too heavy, it applies the shape, reducing the width of the model, so that the weight does not exceed the value set in the mass constraint. Constraints are not retroactive when applied. Morphs in the undo list as well as saved shapes will not be updated to match any constraints that you create afterward. You can update an existing shape to be constrained by removing all morphs, applying the shape with the constraint active, and saving the shape to the same name. The following inputs are found on the Create/Update subpanel. To make finding a specific input easier, inputs are listed in alphabetical order instead of attempting to follow the subpanel layout. This is necessitated by the fact that many inputs are used by multiple constraint types, and thus their descriptions often refer to each other.
Panel Inputs
|
Use the Release Nodes subpanel to free specific nodes from any constraints they might be part of. You can pick nodes individually, or use the extended entity selection menu to pick groups of nodes by certain criteria. The Release Nodes subpanel contains only a single nodes entity selector, and the release command button.
|
The following action buttons appear throughout the subpanels:
|
Changing a Curvature Using Map to Geometry - HM-3530