Location: Tools page - HyperMorph module
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:
|
For fixed constraints:
For cluster constraints:
For smooth constraints:
For vector constraints:
For line, surface, or plane constraints:
For element constraints:
When in the bind components configuration:
In the following example, the bind components feature is used to quickly select which nodes on one component are within 12.0 model units of another component. The all elems option was used on the target components. When the find nodes/elems button is clicked the panel switches over to the constraint creation configuration with the nodes and elements selectors filled in. When in the constraint creation configuration:
Extended edges is an option which will effectively extend the constraint element mesh roughly two element lengths beyond its edge (see following figure). Depenetration will relieve penetration of elements attached to the constrained nodes through the constraint element mesh.
The fixed layers option was developed specifically for CFD meshes where thin boundary layers of matching nodes are commonly used. This option is much faster than the bounded or set distance options for these types of meshes and generally gives better results. For CFD meshes it is best to use the stretch mesh around nodes option so that the transition between the boundary layer and the inner mesh is as smooth as possible.
Now, select how the layers of nodes are repositioned relative to the constraint elements when the constraint elements are morphed. The options are: fully fixed, translate only, force normal, and allow sliding. The fully fixed option will both translate and rotate the inner nodes to match changes in the constraint elements, preserving the initial distance and orientation. The translate only option will only translate the inner nodes to match changes in the constraint elements, preserving the initial distance. The force normal option is identical to the fully fixed option, but will force the inner nodes to lie normal to the constraint elements when the constraint is created. The allow sliding option is similar to the translate only option but will allow the inner nodes to move perpendicular to the normal direction as long as the initial distance in the normal direction is preserved. Next, select how the element normals are calculated. The smoothed normals option will average and smooth the calculated normal directions between neighboring elements before repositioning the inner nodes. This option is fast but may not work well for sharp corners and large displacements. The cfd corners option calculates the normal direction using the cfd corners algorithm and, while slow, is very good at handling sharp corners. These two options are compared in the following images: In the example below, a boundary layer has been constrained to the outer layer using a fixed layers constraint, smoothed normals, and stretch mesh around nodes. The height of the model has been reduced by 50%, but the boundary layers have been maintained at the original thicknesses. For equation constraints:
For tangency constraints:
For length, angle, radius, arc angle, area, volume, or mass constraints:
HyperMesh creates the constraint and automatically applies it to the selected nodes.
CommentsClicking undo moves constrained nodes back to their original locations (for example, when nodes are constrained to a line) but does not remove their association with the constraint. To reapply the constraint, click the apply button, which will apply all active constraints. 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. 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.
|
|
CommentsYou can release every node in the model from all constraints by selecting all from the node selector’s extended entity selection menu.
|
|
See Also:
Changing a Curvature Using Map to Geometry - HM-3530