On this page:
4.6.1 Automatic Geometry Clean-up
4.6.1.1 Automatic Forced Sweepability
4.6.1.1.1 Example
4.6.1.2 Automatic Surface Split
4.6.1.2.1 Example
4.6.1.3 Automatic Small Curve Removal
4.6.1.4 Automatic Small Surface Removal
4.6.1.4.1 Example
4.6.2 Healing
4.6.2.1 Analyzing Geometry
4.6.2.2 Auto Healing
4.6.2.3 Healing Attributes
4.6.2.4 Spline Removal
4.6.2.5 What if Healing is Unsuccessful?
4.6.3 Removing Geometric Features
4.6.3.1 Removing Surfaces
4.6.3.2 Removing Vertices
4.6.4 Tweaking Geometry
4.6.4.1 Tweaking Curves
4.6.4.2 Tweak Remove Topology
4.6.4.3 Tweaking Surfaces
4.6.4.3.7.1 Hole Removal Example
4.6.4.3.8.1 Fillet Removal Example
4.6.4.3.9 Changing the Taper of Surfaces
4.6.4.4 Tweaking Vertices
4.6.4.5 Tweak Volume Bend
4.6.4.5.1 Example
4.6.5 Debugging Geometry
4.6.5.1 Related Commands
4.6.6 Finding Surface Overlap
4.6.6.2.1 Facet - Absolute/  Angle
4.6.6.2.2 Gap - Minimum/  Maximum
4.6.6.2.3 Angle - Minimum/  Maximum
4.6.6.2.4 Normal
4.6.6.2.5 Tolerance
4.6.6.2.6 Group
4.6.6.2.7 List
4.6.6.2.8 Display
4.6.6.2.9 Body
4.6.6.2.10 Imprint
4.6.7 Geometry Accuracy
4.6.8 Regularizing Geometry
4.6.9 Removing Blunt Tangencies
4.6.10 Stitching Sheet Bodies
4.6.11 Trimming and Extending Curves
4.6.12 Validating Geometry
2021.11

4.6 Geometry Cleanup and Defeaturing

Frequently, models imported from various CAD platforms either provide too much detail for mesh generation and analysis, or the geometric representation is deficient. These deficiencies can often be overcome with small changes to the model. Several tools are provided in Cubit for this purpose.

4.6.1 Automatic Geometry Clean-up

The automated geometry clean-up commands are used to automatically clean up geometry in preparation for meshing. These commands are built in to the ITEM interface, but they can also be used on their own. Note: some of these operations will create virtual geometry.

4.6.1.1 Automatic Forced Sweepability

In some cases, a volume can be "forced" into a sweepable configuration by compositing surfaces on the linking surfaces. The automatic forced sweep command will attempt to automatically composite linking surfaces together to create a sweepable topology. This command can be useful in cases where there are many linking surfaces that prohibit sweepability and are not needed to define the mesh. It is assumed that the user has assigned the source and target surfaces for the sweep prior to calling this function. Cubit will try to composite linking surfaces together to get rid of problems such as 1) non-submappable linking surfaces, 2) interior angles between curves of a surface that deviate far from multiples of 90 degrees, and 3) surfaces with curves smaller than the small curve size, if a small curve size is specified. This command is incorporated into the ITEM GUI, but is also available from the command line using the following command syntax.

To use automatic forced sweepability

  1. On the Command Panel, click on Geometry and then Volume.

  2. Click on the Modify action button.

  3. Select Auto Clean from the drop-down menu.

  4. Enter in the appropriate values for Volume ID(s). This can also be done using the Pick Widget function.

  5. Enter in the appropriate value for Small Feature Threshold Size.

  6. Click Force Sweepability from the Select Auto Clean Method menu.

  7. Click Apply.

Auto_clean Volume <id_range> Force_sweepability [Small_curve_size <val>]

The small_curve_size qualifier is an optional argument. If a curve size is specified, the command will try to remove surfaces with curves smaller than this size by compositing the surface with adjacent surfaces.

4.6.1.1.1 Example

The following cylinder has been webcut and had surface splits so that it is not sweepable. The split surface command has also introduced 3 small curves on the surfaces. After the source and target surfaces are set, the force sweepability command is issued to automatically composite neighboring surfaces to make the volume sweepable and remove the small curves. The results are shown in the image below.

auto_clean volume 1 force_sweepability small_curve_size .7

Figure 154: Linking surfaces are composited to force a sweepable volume topology

4.6.1.2 Automatic Surface Split

This auto clean command will attempt to automatically split narrow regions of surfaces. In this context, any surface that contains a portion that narrows down to a small angle is considered a narrow region. The command will use the split command from the underlying solid modeling kernel. The user specifies a size that defines what is narrow. This command also propagates the splits to neighboring narrow surfaces. This command is usually used as a preprocessor to the "tweak remove_topology" command but can also be used on its own.

To automatically split narrow regions of surfaces

  1. On the Command Panel, click on Geometry and then Volume.

  2. Click on the Modify action button.

  3. Select Auto Clean from the drop-down menu.

  4. Enter in the appropriate values for Volume ID(s). This can also be done using the Pick Widget function.

  5. Enter in the appropriate value for Small Feature Threshold Size.

  6. Click Split Narrow Regions from the Select Auto Clean Method menu.

  7. Click Apply.

Auto_clean Volume <id_range> Split_narrow_regions Narrow_size <val>

4.6.1.2.1 Example

The model has a surface that necks down to a narrow region. This surface also has some neighboring narrow surfaces to which the splits are propagated.

Figure 155: Automatic small and narrow surface removal on a cylinder

4.6.1.3 Automatic Small Curve Removal

The automatic small curve removal command uses composites and collapse curves commands to automatically remove small curves from a volume. This is useful for removing small or unnecessary details from a model to facilitate meshing algorithms. The user enters a small curve size. Any curve smaller than this specified size will be removed. This command is issued from the ITEM toolbar. More information can be found by reading the section entitled Small Details in the Model in the ITEM documentation. This command can also be called from the command line. The syntax of this command is:

To remove small curves from a volume

  1. On the Command Panel, click on Geometry and then Volume.

  2. Click on the Modify action button.

  3. Select Auto Clean from the drop-down menu.

  4. Enter in the appropriate values for Volume ID(s). This can also be done using the Pick Widget function.

  5. Enter in the appropriate value for Small Feature Threshold Size.

  6. Click Small Curves from the Select Auto Clean Method menu.

  7. Click Apply.

Auto_clean Volume <id_range> Small_curves Small_curve_size <val>

The automatic curve removal should be used with caution, as the user has little control over how curves are removed.

Example:

The cylindrical model has 3 small curves just less than 0.7. The remove small curves command will remove two of the small curves by compositing two neighboring surfaces and the third using the collapse curve functionality.

auto_clean volume 1 small_curves small_curve_size .7

Figure 156: Automatic small curve removal on a cylinder

4.6.1.4 Automatic Small Surface Removal

This auto clean command will attempt to remove small and narrow surfaces from the model by compositing them with neighboring surfaces. The user specifies a small curve size value. This value is used in two different ways. First, a small area is calculated as the small curve size squared. This value is used to compare against when looking for small surfaces. The small curve size is also used to identify surfaces that are narrower than the small curve size.

To remove small and narrow surfaces from the model

  1. On the Command Panel, click on Geometry and then Volume.

  2. Click on the Modify action button.

  3. Select Auto Clean from the drop-down menu.

  4. Enter in the appropriate values for Volume ID(s). This can also be done using the Pick Widget function.

  5. Enter in the appropriate value for Small Feature Threshold Size.

  6. Click Small Surfaces from the Select Auto Clean Method menu.

  7. Click Apply.

Auto_clean Volume <id_range> Small_surfaces Small_curve_size <val>

4.6.1.4.1 Example

The cylindrical model has 2 small surfaces and a few narrow surfaces. The surfaces are composited to remove these.

Figure 157: Automatic small and narrow surface removal on a cylinder

4.6.2 Healing

Healing is an optional module that detects and fixes ACIS models.

It is possible to create ACIS models that are not accurate enough for ACIS to process. This most often happens when geometry is created in some other modeling system and translated into an ACIS model. Such models may be imprecise due to the inherent numerical limitations of their parent systems, or due to limitations of data transfer through neutral file formats. This imprecision can also result when an ACIS model is created at a different tolerance from the current tolerance settings. This imprecision leads to problems such as geometric errors in entities, gaps between entities, and the absence of connectivity information (topology). Since ACIS is a high precision modeler, it expects all entities to satisfy stringent data integrity checks for the proper functioning of its algorithms. Therefore, if such imprecise models must be processed by an ACIS based system, "healing" of such models is necessary to establish the desired precision and accuracy.

4.6.2.1 Analyzing Geometry

The following operation analyzes the ACIS geometry and will indicate problems detected

  1. On the Command Panel, click on Geometry and then Volume.

  2. Click on the Modify action button.

  3. Select Heal from the drop-down menu.

  4. Select Analyze or Autoheal.

  5. Enter in the Filename.

  6. Enter in any other appropriate settings from this menu.

  7. Click Apply.

Healer Analyze Body <id_range> [Logfile [’filename’] [Display]]

The logfile option writes the analysis results to the filename specified, or to ’healanalysis.log’ by default.In the GUI version of Cubit, the display option will write the results in a dialog window.

The outputs include an estimate of the percentage of good geometry in each body. The optional logfile will include detailed information about the geometry analysis. By default Cubit will also highlight the bad geometry in the graphics and give a printed summary indicating which entities are "bad".Sample output from this command is shown below:

Percentage good geometry in Body 9: 98%

HEALER ANALYSIS SUMMARY:

Analyzed 1 Body: 9
Found 2 bad Vertices: 51, 52
Found 3 bad Curves: 76, 77, 80
Found 2 bad CoEdges. The Curves are: 76
Found 1 Bodies with problems: 9
Journaled Command: healer analyze body 9

It is not necessary to analyze the geometry before healing; however, it can be useful to analyze first rather than healing unnecessarily. Also, that healer analysis can take a bit of time, depending on the complexity of the geometry and how bad the geometry is.

The validate geometry commands work independently of the healer and give more detailed information.

4.6.2.1.1 Healer Settings

You can control the outputs from the healer with the following commands:

Healer Set OnShow {Highlight|Draw|None}

Healer Set OnShow {Badvertices|Badcurves|Badcoedges|Badbodies|All} {On|Off}

Healer Set OnShow Summary {On|Off}

These settings allow you to highlight, draw or ignore the bad entities in the graphics. You can control which entity types to display, as well as whether or not to show the printed summary at the end of analysis.

After you have analyzed the geometry (which can take some time), you can show the bad geometry again with the show command. This command simply uses cached data (healing attributes - see the next section) from the previous analysis.

Healer Show Body <id_list>

4.6.2.2 Auto Healing

Healing is an extremely complex process. The general steps to healing are:

Autohealing makes these steps automatic with the following command:

To use Autohealing

  1. On the Command Panel, click on Geometry and then Volume.

  2. Click on the Modify action button.

  3. Select Heal from the drop-down menu.

  4. Select Autoheal.

  5. Enter in the Filename.

  6. Enter in any other appropriate settings from this menu.

  7. Click Apply.

Healer Autoheal Body <id_range> [Rebuild] [Keep] [Maketolerant] [Logfile [’logfilename’] [Display]]

The rebuild optionunhooks each surface, heals it individually, then stitches all the surfaces back together and heals again. In some cases this can more effectively fix up the body, although it is much more computationally intensive and is not recommended unless normal healing is unsuccessful.

The keep option will retain the original body, putting the resulting healed body in a new body.

The maketolerant option will make the edges tolerant if ACIS is unable to heal them. This can result in successful booleans even if the body cannot be fully healed - ACIS can then sometimes "tolerate" the bad geometry. Note that the healer analyze command will still show these curves as "bad", even though they are tolerant. The validate geometry commands however take this into consideration.

The output from the autoheal command can be written to a file using the logfile option; the default file name is autoheal.log.The display option works as before, displaying the results in a window in the GUI version of Cubit.

4.6.2.3 Healing Attributes

Once the geometry is analyzed, the results are stored as attributes on the solid model - this allows you to use the "show" command to quickly display the bad geometry again. The results attributes are automatically removed when the geometry is exported or any boolean operations are performed. They can also be explicitly removed with the command

Healer CleanAtt Body <id_range>

You can force the results to be removed immediately after each analyze operation with the cleanatt setting (this can save a little memory):

Healer Set CleanAtt {On|Off}

4.6.2.4 Spline Removal

If healing fails to convert spline surfaces to analytic ones fails, the simplification tolerance can be modified and healing re-run:

healer default simplifytol .1

healer autoheal body 1

Spline surfaces can also be forced into an analytic form (use this command with caution):

Healer Force {Plane|Cylinder|Cone|Sphere|Torus} Surface <id_list> [Keep]

The Keep option will retain the original body and generate a new body containing analytic surfaces. Note: Spline curves can be found using entity filters:

Execute Filter Curve Geometry_type Spline

4.6.2.5 What if Healing is Unsuccessful?

The ACIS healing module is under continued development and is improving with every release. However, there will often be situations where healing is unable to fully correct the geometry. This might be okay, as meshing is rarely affected by the small inaccuracies healing addresses. However, boolean operations on the geometry can fail if the bad geometry must be processed by the operation (i.e., a webcut must cut through a bad curve or vertex).

Here are some possible methods to fix this bad geometry:

Contact the development team mailto:support@coreform.com) if you need further help with fixing bad geometry.

4.6.3 Removing Geometric Features

The Remove will remove surfaces or vertices from bodies. Adjacent surfaces or curves will be extended, where possible, to fill in remaining gaps. The remove command is useful for replacing filleted edges with sharp corners.

4.6.3.1 Removing Surfaces

The remove surface command removes surfaces from bodies. By default, it attempts to extend the adjoining surfaces to fill the resultant gap. This is a useful way to remove fillets and rounds and other features such as bosses not needed for analysis. See Figure 158 for an example of this process.The syntax for this command is:

To remove a surface

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Remove from the drop-down menu.

  4. Enter the appropriate values for Surface ID(s). This can also be done using the Pick Widget function.

  5. Enter any other appropriate settings from this menu.

  6. Click Apply.

Remove Surface <id_range> [Blend_Chain] [cavity][EXTEND|Noextend] [Keepsurface] [Keep] [Individual]

The noextend qualifier prevents the adjoining surfaces from being extended, leaving a gap in the body. This is sometimes useful for repairing bad geometry - the surface can be rebuilt with surface from curves or a net surface, etc.., then combined back onto the body.

The keep option will retain the original body and put the results of the remove surface in a new body. The keepsurface option will retain the surface which was removed.

The individual option will remove surfaces one-by-one instead of as a group. If one removal fails, the rest are still attempted. Without the individual option, no surface is removed unless they are all able to be removed.

Theblend_chainoption will not only remove the selected surface but will also remove any surfaces belonging to the same blend chain. A blend is a non-planar surface such as a fillet that has a constant radius of curvature in at least one of its principal parametric directions. The blend chain includes all connected surfaces that share a common radius of curvature.

Thecavityoption can be used to remove all surfaces defining a hole or cavity. A cavity is defined as the collection of surfaces bounded by curves where the exterior angle is greater than 180 degrees. Designating the cavity option will automatically include all surfaces that are part of the cavity to which the surface belongs. If the surface does not belong to a cavity, this option will be ignored.

This command is identical to the Tweak Surface Remove command.

Figure 158: Remove Surface Example

4.6.3.1.1 Remove Sliver Surface

This command uses the ACIS remove surface capability on surfaces that have area less than a specified area limit.When ACIS removes a surface it extends the adjoining surfaces and intersects them to fill the gap. If it is not possible to extend the surfaces or if the geometry is bad the command will fail. The syntax for this command is:

To remove slivers

  1. On the Command Panel, click on Geometry and then Volume.

  2. Click on the Modify action button.

  3. Select Remove Slivers from the drop-down menu.

  4. Enter the appropriate values for Volume ID(s). This can also be done using the Pick Widget function.

  5. Enter the appropriate values for Area Limit.

  6. Click Apply.

Remove Slivers Body <id_range> [EXTEND|Noextend] [Keepsurface] [Keep] [Arealimit [<double>]]

Default Arealimit = 0.1

The noextend, keepsurface and keep options operate as for the remove surface command.The arealimit option allows the user to set the area below which surfaces will be removed.

4.6.3.2 Removing Vertices

At times you may find that you have an extraneous vertex in your model. This would be a vertex connected to two and only two edges. This stray vertex can cause unwanted mesh artifacts, due to the fact that a mesh node MUST lie on this vertex, thereby disallowing the possibility of movement for better quality. Fortunately there is a relatively easy way of getting rid of this stray vertex using the tweak surface command.

To replace with a surface

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Select Replace With Surface from the drop-down menu.

  5. Enter the appropriate values for Surface ID(s) and replace with Surface ID. This can also be done using the Pick Widget function.

  6. Click Apply.

Tweak Surface <id> Replace With Surface <same_id>

Note that you are replacing a surface with itself. In doing so, the geometry engine will do an intersection check on that surface, and should realize that the vertex doesn’t need to be there.

4.6.4 Tweaking Geometry

The tweaking commands modify models by moving, offsetting or replacing surfaces, curves, or volumes while extending the adjoining surfaces to fill the resulting gaps. This is useful for eliminating gaps between components, simplifying geometry or changing the dimensions of an object.

4.6.4.1 Tweaking Curves

This section details the options of the Tweak Curve commands available.

4.6.4.1.1 Create a Chamfer or Fillet

The Tweak Curve Chamfer or Fillet command is used to fillet or chamfer a curve. The radius value is the radius of the fillet arc or chamfer cut distance. The command syntax is:

To tweak a curve using the chamfer or fillet radius

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Enter the appropriate value for Curve ID(s). This can also be done using the Pick Widget function.

  5. Select Fillet Radius or Chamfer Radius from the drop-down menu.

  6. Enter in the appropriate information.

  7. Click Apply.

Tweak Curve <id_range> {Fillet|Chamfer} Radius <value> [Keep] [Preview]

In addition to creating chamfers of a single cut distance, the chamfer can be specified be two values.

Tweak Curve <id_list> Chamfer Radius <val1> [<val2>] [Keep] [Preview]

Figure 159 shows a brick (’br x 10’) chamfered with two different cut distances Tweak Curve 1 2 Chamfer Radius 2 4.

Figure 159: Chamfer with two different distances

Individual curves can also be filleted with different start and finish radius values. The syntax is:

Tweak Curve <id> Fillet Radius <val1> [<val2>] [Keep] [Preview]

Figure 160 shows a brick (’br x 10’) filleted with different start and end radius values Tweak Curve 1 2 Chamfer Radius 2 4’.

Figure 160: Fillet with two different radii

For all Tweak Fillet and Tweak Chamfer variations, the keep option prevents the destruction of the original geometry after the operation and the preview option temporarily displays the new geometry configuration without actually changing the geometry.

4.6.4.1.2 Tweaking a Curve Using an Offset Distance

To tweak a curve using offset

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Enter the appropriate value for Curve ID(s). This can also be done using the Pick Widget function.

  5. Select Offset from the drop-down menu.

  6. Enter in the appropriate Offset Value.

  7. Click Apply.

tweak curve <id_list> offset <val> [curve <id_list> offset <val>] [curve <id_list> offset <val> ...] [keep] [preview]

Tweaking curves a specified distance offsets the existing curves and extends the attached surfaces to meet them. A positive offset value will enlarge the surface while a negative value will decrease the area of the attached surface. Different offset values can be specified for each curve. The keep option prevents the destruction of the original geometry after the operation. The preview option temporarily displays the new geometry configuration without actually changing the geometry. Figure 161 shows an example of offsetting a curve a specified distance.

Figure 161: Offsetting a set of curves a specified distance

4.6.4.1.3 Removing a Curve

To remove a curve

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Enter the appropriate value for Curve ID(s). This can also be done using the Pick Widget function.

  5. Select Remove from the drop-down menu.

  6. Click Apply.

Tweak Curve <id_list> Remove [Keep] [Preview]

Similar to the Tweak Curve Remove command, the tweak curve remove function removes a specified curve from a sheet body. Figure 162 shows a simple example of removing a curve from a sheet body.

Figure 162: Removing a curve from a sheet body

The keep option prevents the destruction of the original geometry after the operation. The preview option temporarily displays the new geometry configuration without actually changing the geometry.

4.6.4.1.4 Tweaking a Curve Using Target Surfaces, Curves, or Plane

Use Tweak Curve Target to offset a curve to a specified surface, plane or curve. Figure 163 shows an example of tweaking a curve to several surfaces.

Figure 163: Tweaking a curve to multiple target surfaces

Similarly, a target plane can be specified using the Plane specification syntax.

To tweak a curve using a target surface

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Enter the appropriate value for Curve ID(s). This can also be done using the Pick Widget function.

  5. Select Target Surface from the drop-down menu.

  6. Enter the appropriate value for Surface ID. This can also be done using the Pick Widget function.

  7. Click Apply.

Tweak Curve <id_list> Target {Surface >id_list> [Limit Plane (options)] [EXTEND|Noextend] | Plane (options)} [Max_area_increase <val>] [Keep] [Preview]

To tweak a curve using a target curve

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Enter the appropriate value for Curve ID(s). This can also be done using the Pick Widget function.

  5. Select Target Curve from the drop-down menu.

  6. Enter the appropriate value for Curve ID. This can also be done using the Pick Widget function.

  7. Click Apply.

Tweak Curve <id_list> Target Curve <id_list > [EXTEND|Noextend] [Max_area_increase <val>] [Keep] [Preview]

If a target surface is supplied, the user can also use a limit plane if he wishes. A limit plane is a plane that the tweak will stop at if the tweaked curve does not completely intersect the target surface. The limit plane must be used with the extend option. See the help for Specifying a Plane for the options available to define a plane.

It should be noted that if the source and target surfaces are from the same body the resulting geometry will be automatically stitched. Single target surfaces are automatically extended so that the tweaked body will fully intersect the target. Unfortunately, extending multiple target surfaces can sometimes result in an invalid target, so the option is given to tweak to non-extended targets with the noextend option. In this case, the tweaked body must fully intersect the existing targets for success. If you experience a failure when tweaking to multiple targets or the results are unexpected, it is recommended to try the noextend option

Tweaking to multiple targets is only implemented in the ACIS geometry engine

. If a value for the max_area_increase keyword is given, Cubit will not perform the tweak if the resulting surface area increases by more than the specified amount. The keyword expects a percentage to be entered (i.e. ’50’ for 50%). It is recommended to always preview before using the tweak target commands.

For all tweak target variations, the keep option prevents the destruction of the original geometry after the operation and the preview option temporarily displays the new geometry configuration without actually changing the geometry.

Although it may not be intuitive curves can also serve as the target geometry. Figure 164 shows an example of extending a curve to another curve.

Figure 164: Tweaking a curve to a target curve

Notice that the source curve actually extends to the target curve as if the target were a surface.

4.6.4.1.5 Tweaking a Pair of Curves to a Corner

When creating mid-surface geometry it is often useful to extend surfaces to form a corner. To handle this specific but common case use the tweak corner command.

To tweak a pair of curves to a corner

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Enter the appropriate value for Curve ID(s). This can also be done using the Pick Widget function.

  5. Select Corner from the drop-down menu.

  6. Enter the appropriate value for Curve ID. This can also be done using the Pick Widget function.

  7. Click Apply.

tweak curve <id> <id> corner [preview]

Figure 165 shows a typical tweak corner example. Notice that surfaces are extended/trimmed to intersect at a corner.

Figure 165: Tweaking two curves to a corner

The preview option temporarily displays the new geometry configuration without actually changing the geometry.

4.6.4.2 Tweak Remove Topology

The tweak remove topology command removes curves and surface from a model and replaces them with new topology. The reconstruction of the new topology and the stitching of it into the model is done using real solid modeling kernel operations. This command is intended to be used on small curves and surfaces in the model. The command tries to find small curves/surfaces neighboring the specified topology and includes these neighbors in the removal process. Thus, the command can often be used to remove networks of small features just by specifying a single curve or surface.

To use the tweak remove topology operation

  1. On the Command Panel, click on Geometry and then Surface or Curve.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Select Remove Topology from the drop-down menu.

  5. Enter the appropriate value for Surface ID(s) and Curve ID(s). This can also be done using the Pick Widget function.

  6. Enter the appropriate value for Small Curve Size and Backoff Distance.

  7. Click Apply.

Tweak Remove_Topology {Surface <id_range> | Curve <id_range> | Surface <id_range> Curve <id_range>} Small_curve_size <val> Backoff_distance <val>

The small_curve_size is input by the user, and is used to calculate the small curves and surfaces. The backoff_distance value specifies how far away from the original topology cuts are made to cut out the old topology and stitch in the new topology. The removed topology is replaced by simplified topology where possible often resulting in a dimension reduction of the original topology. Extraneous curves that are introduced during the cutting and stitching process are regularized out if possible using the solid modeling kernel regularize functionality or are composited out using virtual geometry if the regularization is not possible.

This command is currently only implemented for ACIS and Catia models.

4.6.4.2.1 Example

reset
set attribute on
import ACIS "test10.sat"
separate body all
set attribute off
Auto_clean Volume 1 Split_narrow_regions Narrow_size 2.2
tweak remove_topology curve 19 small_curve_size .21 backoff 1.5

Figure 166: Tweak Remove Topology command

4.6.4.3 Tweaking Surfaces

The following options of the Tweak Surface command are available. Command syntax and examples follow below.

4.6.4.3.1 Tweaking a Surface Using an Offset

To tweak a surface using offset

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Select Offset from the drop-down menu.

  5. Enter the appropriate value for Surface ID(s). This can also be done using the Pick Widget function.

  6. Enter in the appropriate Offset Value.

  7. Click Apply.

Tweak Surface <id_list> Offset <val> [Surface <id_list> Offset <val>] [Surface <id_list> Offset <val> ...] [Keep] [Preview]

The tweak offset form of the command offsets an existing set of surfaces and extends the attached surfaces to meet them. A positive offset value will offset the surface in the positive surface normal direction while a negative value will go the other way. Different offsets may be specified for each surface. Figure 167 shows a simple example of offsetting. Note that you can also offset whole groups of surfaces at once. The keep option will retain the original surfaces and curves.

Figure 167: Tweak Offset

4.6.4.3.2 Tweaking a Surface by Moving

The tweak move form of the command simply moves the given surfaces along a vector direction. The direction can be specified either absolutely or relative to other geometry entities in the model (from entity centroid to location). Note that when moving a surface for tweak, the surface is moved and the surface and the adjoining surfaces are extended or trimmed to match up again. So, for example, moving a vertically oriented planar surface in the vertical direction will have no effect. In this example, if you move the surface 10 in the x and 5 in the y the effect will be to move it simply 10 in the x. You can also use this form of the command to move a protrusion around - just be sure to specify all of the surfaces on the protrusion for moving. The last form of the command can be used to move a surface along another surface’s normal.

To tweak a surface moving

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Select Move Delta Distance, Move Normal to Surface, Move to Entity or Move to Location from the drop-down menu.

  5. Enter in the appropriate settings from this menu.

  6. Click Apply.

Tweak Surface <id_range> Move {Vertex|Curve|Surface|Volume|Body} <id> Location {Vertex|Curve|Surface|Volume|Body} <id> [Except [X][Y][Z]] [Keep] [Preview]

Tweak Surface <id_range> Move {Vertex|Curve|Surface|Volume|Body} <id> Location <x_val> <y_val> <z_val> [Except [X][Y][Z]] [Keep][Preview]

Tweak Surface <id_range> Move <dx_val> <dy_val> <dz_val> [Keep] [Preview]

Tweak Surface <id_range> Move Direction <options> Distance <val> [Keep] [Preview]

Tweak Surface <id_range> Move Normal To Surface <id> Distance <val> [Except [X][Y][Z]] [Keep][Preview]

4.6.4.3.3 Tweaking Surfaces to Target Surfaces

The tweak target form of the command actually replaces the given surfaces with a copy of the new surfaces, then extends and trims surfaces to match up. This can be useful for closing gaps between components or performing more complicated modifications to models. The command syntax is:

To tweak a surface using a target surface

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Select Target Surface from the drop-down menu.

  5. Enter the appropriate value for Surface ID(s) and Target Surface ID(s). This can also be done using the Pick Widget function.

  6. Click Apply.

Tweak {Curve|Surface} <id_list> Target {Surface <id_list> [Limit Plane (options)] [EXTEND|noextend] | Plane (options)} [keep] [preview]

Tweak Surface <id_list> Replace [With] Surface <id_list> [Keep] [Preview]

The plane option allows a plane to be specified instead of target surface(s). If a target surface is supplied, the user can also use a limit plane if he wishes. A limit plane is a plane that the tweak will stop at if the tweaked surface does not completely intersect the target surface. The limit plane must be used with the extend option. See the help for Specifying a Plane for the options available to define a plane.

Single target surfaces are automatically extended so that the tweaked body will fully intersect the target. Unfortunately, extending multiple target surfaces can sometimes result in an invalid target, so the option is given to tweak to unextended targets with the noextend option. In this case, the tweaked body must fully intersect the existing targets for success. If you experience a failure when tweaking to multiple targets or the results are unexpected, it is recommended to try the noextend option (NOTE: Tweaking to multiple targets is only implemented in the ACIS geometry engine). It is recommended to always preview before using the tweak target commands.

Figure 168 shows a simple example.

Figure 168: Tweak Surface Target (Viewed directly from the side)

4.6.4.3.4 Removing a Surface

The tweak remove command allows you to remove surfaces from a model by extending the adjacent surfaces to fill in the resulting gaps. It is identical to the remove surface command. See Removing Surfaces for a description of the command options.

To remove a surface

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Select Remove from the drop-down menu.

  5. Enter the appropriate value for Surface ID(s). This can also be done using the Pick Widget function.

  6. Click Apply.

Tweak Surface <id_list> Remove [EXTEND|Noextend] [Keepsurface] [Keep][Preview]

4.6.4.3.5 Tweaking a Conical Surface

The tweak cone form of the command is used to replace a conical projection with a flat circular surface. This command is useful for simplifying bolt holes. The command syntax is.

To tweak a conial surface

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Select Cone from the drop-down menu.

  5. Enter the appropriate value for Surface ID(s). This can also be done using the Pick Widget function.

  6. Click Apply.

Tweak Surface <id_range> Cone [Preview]

The following is a simple example illustrating the use of the tweak surface cone command.

Figure 169: Conical bolt hole before and after tweaking

4.6.4.3.6 Tweaking Doublers to Target Surfaces

The Tweak Doubler form of the command takes a specified surface and creates drop-down surfaces either normal to the doubler surface or by a user specified vector to a target surface. This can be helpful in creating surfaces for weld elements between midsurfaced geometry. The resulting surfaces do not create a bounding volume, and do not imprint themselves onto the target surface. The command syntax is:

To tweak doublers to target surfaces

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Select Doubler from the drop-down menu.

  5. Enter the appropriate value for Surface ID(s) and Target Surface ID(s). This can also be done using the Pick Widget function.

  6. Enter in the appropriate values for direction and limit plane. Click on the direction... or limit plane... button, a window will appear to specify settings.

  7. Click Apply.

Tweak Surface <id_list> Doubler Surface <id_list> {[Limit Plane (options)] [EXTEND|noextend]} [Internal] [Direction (options)] [Thickness] [Preview]

The user can also use a limit plane with a target surface. A limit plane is a plane that the tweak will stop at if the tweaked surface does not completely intersect the target surface. If you use the limit plane option, you must also use the extend option. See the help for Specifying a Plane for the options available to define a plane.

Single target surfaces are automatically extended so that the tweaked body will fully intersect the target. Unfortunately, extending multiple target surfaces can sometimes result in an invalid target, so the option is given to tweak to unextended targets with the noextend option. In this case, the tweaked body must fully intersect the existing targets for success. If you experience a failure when tweaking to multiple targets or the results are unexpected, trying the noextend option is recommended.

If the doubler surface has a thickness property value, you can propagate that thickness value to the newly created drop-down surfaces by using the thickness flag.

It is recommended to always preview before using the tweak doubler commands.

This function only works for ACIS geometry.

Figure 170: Extending a doubler surface to target geometry (left) and output (right)

The internal option will also include internal curves when the surface is extended (see Figure 171c). The direction option will create a skewed surface along the given direction (see Figure 171d).

Figure 171: Explanation of tweak doubler options (a) Original surfaces (b) No option flags used (c) Internal option used - notice internal curves dropped down (d) Direction flag - notice skew

4.6.4.3.7 Removing Holes and Slots from Sheet Bodies

The tweak hole/slot idealize command takes a specified sheet body(s) and searches for either holes or slots (or both) which meet the user’s input parameters. This can be helpful in removing small holes or slots quickly and efficiently from midsurfaced bodies where such level of detail isn’t required. The command syntax is:

To remove holes and slots from sheet bodies

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Select Idealize/Remove from the drop-down menu.

  5. Enter the appropriate value for Surface ID(s). This can also be done using the Pick Widget function.

  6. Select Holes or Slots from the Select Feature to Idealize menu.

  7. Enter in the appropriate settings from this menu.

  8. Click Apply.

Tweak Surface <id_list> Idealize {[Hole Radius <val>] [Slot Radius <val> Length <val>]} [Exclude Curve <id_list>] [Preview]

Below is a diagram showing the different parameters available for input by the user.

Figure 172: Input parameters for tweak surface idealize command

4.6.4.3.7.1 Hole Removal Example

tweak surface 13 idealize hole radius 6

Figure 173: Example of hole removal using tweak surface idealize command

The exclude option allows the user to specify individual curves that should not be deleted, even if they meet the search criteria for removal. Figure 174 shows another hole removal example where several curves were excluded.

Figure 174: Example of hole removal using exclude option

This feature is for ACIS geometry

It is recommended to always preview before using the tweak command. Preview will highlight all curves slated to be removed if the command is executed.

4.6.4.3.8 Removing Fillets from Sheet Bodies

The tweak fillet idealize command takes a specified sheet body(s) and searches for either internal or external fillets (or both) which meet the users’ radius parameter. This can be helpful in removing fillets quickly and efficiently from midsurfaced bodies where such level of detail isn’t required. The command syntax is:

To remove fillets from sheet bodies

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Select Idealize/Remove from the drop-down menu.

  5. Enter the appropriate value for Surface ID(s). This can also be done using the Pick Widget function.

  6. Select Fillets from the Select Feature to Idealize menu.

  7. Enter in the appropriate settings from this menu.

  8. Click Apply.

Tweak Surface <id_list> Idealize Fillet Radius <val> {[Internal] [External]} [Exclude Curve <id_list>] [Preview]

4.6.4.3.8.1 Fillet Removal Example

tweak surface 13 idealize fillet radius 6 internal

Figure 175: Example of fillet removal using tweak surface idealize command

This feature is for ACIS geometry

It is recommended to always preview before using the tweak command. Preview will show the result if the command is executed.

Figure 176: Preview of the tweak surface idealize command

4.6.4.3.9 Changing the Taper of Surfaces

The taper or angle of a surface can be made shallower or steeper using the taper surface command. Several surfaces can be tapered at once to get a smooth transition. The command syntax is:

taper Surface <id_list> angle <val> {from plane <options> | about curve <id> | about vertex <id_1><id_2>} [keep] [preview]

Figure 177: taper surface 1 7 6 angle -20 from plane surface 3

The keep and preview options are helpful when figuring out the correct command setup.

The from plane form of the command is the most basic form of the command. The plane normal defines the direction used to set the angle for the surface. The origin of the plane determines how a surface is tapered. If the plane intersects the middle of a surface, the surface will be rotated in on the top and out on the bottom. If it intersects the bottom, the top of the surface will be rotated in and the bottom will stay fixed. If it intersects the top, the bottom of the surface will rotate out and the top will stay fixed.

Figure 178: A cube with one surface tapered 20 degrees with a plane in the middle, bottom, and top.

The about curve form of the command can be used to rotate a surface about a curve. The axis of rotation is determined using the tangent direction of the curve at its starting point. That axis crossed with the normal of the surface at the starting point determine the direction used to set the surface angle. In order to work, the curve must be part of one of the surfaces being changed. Since the direction is based on the curve sense, the final direction is not always obvious. Running the command with the preview option first can help determine what angle to apply.

The about vertex form of the command is similar to the about curve form. The axis of rotation is a vector from the first vertex to the second. That axis crossed with the normal of the surface at the starting point determine the direction used to set the surface angle. In order to work, the vertices must be part of one of the surfaces being changed.

4.6.4.4 Tweaking Vertices

This section details the Tweak Vertex command.

4.6.4.4.1 Tweaking a Vertex With a Chamfer

To tweak a vertex with a simple chamfer

  1. On the Command Panel, click on Geometry and then Vertex.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Enter the appropriate values for Vertex ID(s). This can also be done using the Pick Widget function.

  5. Select Simple Chamfer from the drop-down menu.

  6. Enter the appropriate value for Radius Value.

  7. Click Apply.

Tweak Vertex <id_range> Chamfer Radius <value>[Keep] [Preview]

This form of the command creates a chamfered corner at the specified vertex. Can be use on volumes or free surfaces. The ’keep’ option creates another volume on which the tweak is applied; the original volume remains unmodified.

Figure 179: Tweak Vertex Chamfer

4.6.4.4.2 Tweaking a Vertex With a Non-Equal Chamfer

To tweak a vertex with a complex chamfer

  1. On the Command Panel, click on Geometry and then Vertex.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Enter the appropriate values for Vertex ID(s). This can also be done using the Pick Widget function.

  5. Select Complex Chamfer from the drop-down menu.

  6. Enter the appropriate values for Chamfer Radius 1, Chamfer Radius 2 and Chamfer Radius 3.

  7. Enter the appropriate values for each Along Curve.

  8. Click Apply.

Tweak Vertex <id_range> Chamfer Radius <value> [Curve <id> Radius <value> Curve <id> Radius <value> Curve <id>] [Keep] [Preview]

This next form of the command creates a non-equal chamfered corner at the specified vertex. Can only be used on vertices of volumes. The ’keep’ option creates another volume on which the tweak is applied; the original volume remains unmodified.

4.6.4.4.3 Tweaking a Vertex With a Fillet Radius

To tweak a vertex with a fillet vertex

  1. On the Command Panel, click on Geometry and then Vertex.

  2. Click on the Modify action button.

  3. Select Tweak from the drop-down menu.

  4. Enter the appropriate values for Vertex ID(s). This can also be done using the Pick Widget function.

  5. Select Fillet Radius from the drop-down menu.

  6. Enter the appropriate value for Radius Value.

  7. Click Apply.

Tweak Vertex <id_range> Fillet Radius <value> [Keep] [Preview]

This command replaces a vertex with a filleted radius. The command can only be used on free surfaces. The ’keep’ option creates another volume on which the tweak is applied; the original free surface remains unmodified.

Figure 180: Tweak Vertex Fillet

4.6.4.5 Tweak Volume Bend

Entity bending bends a solid model around a given axis. In any bending operation, some material is stretched while other material is compressed, but the topology of the model is maintained. The command syntax is:

Tweak {Volume|Body} <id_list> Bend Root <location_options> Axis <direction_vector> Direction <direction_vector> Radius <val> angle <val> [Preview] [Keep] [Center_bend] [Location <options>]

root and axis determine location for the bend. direction determines direction of the bend. radius and angle determine how much to bend. center_bend will bend both sides of the volume around the bend location instead of one side. location can be used to select only specific parts of a volume to bend.

Figure 181: Bending a volume

4.6.4.5.1 Example

Bend parts of a body specified by the location option.

create brick width 11 height 1 create brick width 1 depth 10 height 10 create brick width 1 depth 10 height 10 create brick width 1 depth 10 height 10 move body 2 general location position -3 5 0 move body 3 general location position 0 5 0 move body 4 general location position 3 5 0 subtract body 2 from body 1 subtract body 3 from body 1 subtract body 4 from body 1 tweak volume 1 bend root 0 0 0 axis 1 0 0 direction 0 0 -1 radius 1 angle 3.14 location vertex 39 47

4.6.5 Debugging Geometry

The following command checks for inconsistencies in the Cubit topological model, by checking the specified entities and all child topology and/or comparing to solid model topology:

Geomdebug Validate [compare] <entity_list>

This command checks for:

4.6.5.1 Related Commands

Geomdebug Vertex <vertex_id>

Geomdebug Curve <curve_id>

Geomdebug Surface <surface_id>

Geomdebug body <body_id>

Geomdebug Containment {Curve | Surface} <id> {Location (options) | Node <id_list>}

The following command prints info about GeometryEntities owned by specified entity:

Geomdebug Geometry <entity_list> [interval <n>] [index <n>] [TEXT] [GRAPHIC] [attributes]

The following command lists (TopologyBridge) topology for specified entity:

Geomdebug solidmodel <entity_list> [index <n>] [depth<n>|up<n>|down<n>]

The following command lists GroupingEntities.

Geomdebug GPE <entity_list>

4.6.6 Finding Surface Overlap

The surface overlap capability finds surfaces that overlap each other, with the capability to specify a distance and angle range between them. This is useful for debugging geometry imprinting and merging problems, as well as for finding gaps in large assembly models.Finding overlapping geometry is done using the command:

Find [Surface] Overlap [{Body|Surface|Volume} <id_list> [Filter_Sliver]

If a list of entities is not specified, all bodies in the model are checked. By default the command does not check the surfaces within a given body against each other; rather, it only checks surfaces between bodies. This can be overridden by inputting a surface list (i.e. find overlap surface all), or with a setting (see below).

The filter_sliver option will remove false positives from the list by weeding out sliver surfaces that have a merged curve between them. The following pictures is an example of a sliver surface.

Figure 182: Example of a sliver surface

If curves 27 and 29 are merged before you run the find overlapping surface checkthe user will get the two surfaces in the picture as an overlapping surface pair. However, if the filter_sliver keyword is used, Cubit will not find the two surfaces to be overlapping.

4.6.6.1 Facetted Representation

This command works entirely off of the facetted surface representation of the model (the facetted representation is what you see in a shaded view in the graphics). There are inherent advantages and disadvantages with this method. The biggest advantage is avoidance of closest-point calculations with NURBS based geometry, which tends to be slow. This method also eliminates possible problems with unhealed ACIS geometry. The disadvantage is working with a less accurate (i.e., facetted) representation of the geometry. To circumvent problems with this facetted geometry, various settings can be used to control the algorithm. For example, you might consider using a more accurate facetted representation of the model - see below.

4.6.6.2 Find Overlap Settings

Various settings are used to control the precision and handling of overlaps during the find overlap process.A listing of the settings that find overlap uses is printed using the command:

Find [Surface] Overlap Settings

These settings, and the commands used to control them, are described below.

4.6.6.2.1 Facet - Absolute/Angle

- The angular tolerance indicates the maximum angle between normals of adjacent surface facets. The default angular tolerance is 15 - consider using a value of 5 . This will generate a more accurate facetted representation of the geometry for overlap detection. This can be particularly useful if the overlap command is not finding surface pairs as you would expect, particularly in "curvy" regions. Note however that the algorithm will run slower with more facets. The distance tolerance means the maximum actual distance between the generated facets and the surface. This value is by default ignored by the facetter - consider specifying a reasonable value here for more accurate results.

set overlap [facet] {angle|absolute} <value>

4.6.6.2.2 Gap - Minimum/Maximum

- the algorithm will search for surfaces that are within a distance from the minimum to maximum specified. The default range is 0 to 0.01. Testing has shown this to be about right when searching for coincident surfaces. Gaps can be found by using a range such as 3.95 to 5.05.

Set Overlap {Minimum|Maximum} Gap <value>

4.6.6.2.3 Angle - Minimum/Maximum

- the algorithm will search for surfaces that are within this angle range of each other. The default range is 0.0 to 5.0 degrees. Testing has shown that this range works well for most models. It is usually necessary to have a range up to 5.0 degrees even if you are looking for coincident surfaces because of the different types of faceting that can occur on curvy type surfaces. For example, for the case of a shaft in a hole, the facets of the shaft usually won’t be coincident with the facets of the hole, but may be offset by a certain distance circumferentially with each other. The 5 degree max angle range will account for this. If you find that the algorithm is not finding coincident surfaces when it should, you can increase the upper range of this value. Note that this parameter is useful also for finding plates coming together at an angle.

Set Overlap {Minimum|Maximum} Angle <value>

4.6.6.2.4 Normal

- this setting determines whether to search for surfaces whose normals point in the same direction as each other (same), away from each other (opposite) or either (any). The default is ANY, but it may be useful to limit this search to opposite, as this would be the usual case for most finds.

Set Overlap Normal {ANY|opposite|same}

4.6.6.2.5 Tolerance

- two individual facets must overlap by more than this area for a match to be found. Consider the two cylindrical curves at the interface of the shaft and the block in Figure 183. Note that some of the facets actually overlap, even though the curves will analytically be coincident. You can filter out false matches by increasing the overlap tolerance area.The default value for this setting is 0.001.

Set Overlap Tolerance <value>

surfaceoverlap.gif

Figure 183: Possible false find due to overlap (tolerance will prevent finding match)

4.6.6.2.6 Group

The surface pairs found can optionally be placed into a group. The name of the group defaults to "overlap_surfaces".

Set Overlap Group {on|OFF}

4.6.6.2.7 List

By default the command lists out each overlapping pair - this can be turned off using the command:

Set Overlap List {ON|off}

4.6.6.2.8 Display

By default the command clears the graphics and displays each overlapping pair - this can be turned off using the command:

Set Overlap Display {ON|off}

4.6.6.2.9 Body

By default the command will not search for overlapping pairs within bodies - only between different bodies. Turn this setting on to search for pairs within bodies. Note however that this will slow the algorithm down.

set overlap [within] {body|volume} {on|OFF}

4.6.6.2.10 Imprint

If on, Cubit will imprint the overlapping surfaces that it finds together. This will often force imprints that just imprinting bodies together will miss. For each pair of overlapping surfaces, the containing body of one surface is imprinted with the individual curves of the other surface, until the resulting surfaces no longer overlap.

set overlap imprint {on|OFF}

4.6.7 Geometry Accuracy

The accuracy setting of the ACIS solid model geometry can be controlled using the following command:

[set] Geometry Accuracy <value = 1e-6>

Some operations like imprinting can be more successful with a lower accuracy setting (i.e., 0.1 to 1e-5). However, it is not recommended to change this value.

Be sure to set it back to 1e-6 before exporting the model or doing other operations as a higher setting can corrupt your geometry

.

4.6.8 Regularizing Geometry

The regularize command removes unnecessary topology, which in effect reverses the imprint operation. This can help clean up the model from extra features that are unnecessary for the geometric definition of the model.The following command regularizes the model:

Regularize Body|Group|Volume|Surface|Curve|Vertex <range>

If you are frequently using web-cutting or other boolean operations to decompose your geometry, it may be convenient to always generate regularized geometry. To set creation of regularized geometry during boolean operations use the following command:

Set Boolean Regularize [ON | off]

4.6.9 Removing Blunt Tangencies

Removing blunt tangencies will improve the tet-meshability of a volume. Blunt tangencies are caused by fillets and will produce small elements and small timesteps. The operation cuts out the surfaces adjacent to the specified vertex and replaces them with other surfaces that wash over and eliminate the small angle.

The command to remove blunt tangencies is:

blunt tangency vertex <id> [remove_material] [angle <degress=45>] [depth <value>] [preview]

The command panel is shown below in Figure 184. It is a vertex modification operation.

Figure 184: Blunt Tangency Command Panel

Figure 185 shows an image of several blunt tangencies on a model. When tet-meshed, each of these will produce very small, poor elements and small time steps.

Figure 185: Blunt Tangent Examples

4.6.9.1 Explanation of command parameters

Vertex ID - indicate the ID of the tangency’s vertex

Depth - controls the depth of the surfaces that replace the tangency

Angle - the desired angle at the vertex after the blunt tangency operation. In other words, this controls the extent of the ’blunting’. The default value is 45.0.

Remove_Material - To add material, do not include this parameter. The example in Figure 186 does not remove material. The example in Figure 187 shows the same command when remove_material used.

Figure 186: Parameter Examples

Figure 187: Material Removed

4.6.9.2 Before and after using the command

In this example, the tetmesh produced elements with a minimum scaled Jacobian of approximately 0.0318.

Figure 188: Blunt Tangent Meshed without Mitigation

Meshing the same model after using the blunt tangency command, elements produced in the same area have a minimum scaled jacobian value of approximately 0.23.

Figure 189: Blunt Tangent Meshed with Mitigation

4.6.10 Stitching Sheet Bodies

The stitch command stitches together the specified sheet bodies into either a larger sheet body or a solid volume(s). The tolerance value can be used when these sheet bodies don’t line up exactly along the edges. This is common for IGES and STEP models. Only manifold stitching is performed, i.e., edges will be shared with no more than two surfaces.

To stitch specified sheet bodies together

  1. On the Command Panel, click on Geometry and then Volume.

  2. Click on the Modify action button.

  3. Select Stitch from the drop-down menu.

  4. Enter in the appropriate values for Volume ID(s). This can also be done using the Pick Widget function.

  5. Enter in the appropriate value for tolerancevalue.

  6. Click Apply.

Stitch {Body|Volume} <id_range> [Tolerance <value>] [no_simplify] [No_tighten_gaps]

This command has three stages to it:

  1. Stitch the surfaces together along overlapping edges Normally IGES and some STEP files do not contain topological information that links surfaces together to share bounding curves. Stitching is an operation that builds up this topological information.

  2. Simplify geometry The command replaces splines with analytics where possible.

  3. Tighten up gaps (inaccuracies) between the sheet bodies The command will build the geometry necessary to tighten the gaps in the model.

When the stitch operation completes, a print statement lets the user know if the resulting body is not a closed, solid body.

The user can choose to omit the second and third options of stitching with the no_simplify and no_tighten_gaps options respectively. This may be necessary in very large or complex models, where the regular approach fails, or takes an inordinate amount of time.

4.6.11 Trimming and Extending Curves

To trim or extend curves

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Trim from the drop-down menu.

  4. Enter in the appropriate values for Volume ID(s). This can also be done using the Pick Widget function.

  5. Select Curve or Vertex from the Trim At menu.

  6. Enter in the appropriate settings for this menu.

  7. Click Apply.

Trim Curve <id> AtIntersection {Curve|Vertex <id>} Keepside Vertex <id> [near]

Curves can be trimmed or extended where they intersect with another curve or at a vertex location. When trimming to another curve, the curves must physically intersect unless they both are straight lines in which case the near option is available. With the near option the closest intersection point is used to the other line - so it is possible to trim to a curve that lies in a different plane. When trimming to a vertex, if the vertex does not lie on the curve, it is projected to the closest location on the curve or an extension of the curve if possible.

The keepside vertex is needed to determine which side of the curve to keep and which side to throw away. This vertex need not be one of the curve’s vertices, nor does it need to lie on the curve. However, if it is not on the curve it will be projected to the curve and that location will determine which side of the curve to keep.

If the curve is part of a body or surface, it is simply copied first before trimming/extending. If it is a free curve a new curve is created and the old curve is removed. The figures below show several examples of trimming/extending curves.

4.6.11.1 Trimming a Curve

Figure 190: Trimming a Curve to an Intersecting Curve

Figure 191: Trimming a Curve to a Non-Intersecting Curve Using the Near Option

Figure 192: Trimming a Curve to a Vertex

4.6.11.2 Extending a Curve

Figure 193: Extending a Curve to An Intersecting Curve

Figure 194: Extending a Curve to a Non-Intersecting Vertex Using the Near Option

4.6.12 Validating Geometry

To validate the geometry and topology

  1. On the Command Panel, click on Geometry.

  2. Click on Volume, Surface, Curve or Vertex.

  3. Click on the Modify action button.

  4. Select Validate from the drop-down menu.

  5. Enter in the appropriate values for Volume ID(s), Surface ID(s), Curve ID(s) or Vertex ID(s). This can also be done using the Pick Widget function.

  6. Enter in the appropriate settings for the Validation/check level.

  7. Click Apply.

Validate {Body|Volume|Surface|Curve|Vertex|Group} <id_range>

Validate {Volume|Surface|Curve|Vertex} <range> Mesh

The validate {...} mesh command performs a connectivity check of the mesh elements to determine the validity of the mesh.

More rigorous checking can be accomplished with the validate geometry commands by specifying a higher check level. Use the following command to accomplish this:

set AcisOption Integer ’check_level’ <integer>

where integer is one of the following:

10 = Fast error checks

20 = Level 10 checks plus slower error checks (default)

30 = Level 20 checks plus D-Cubed curve and surface checks

40 = Level 30 checks plus fast warning checks

50 = Level 40 checks plus slower warning checks

60 = Level 50 checks plus slow edge convexity change point checks

70 = Level 60 checks plus face/face intersection checks

You can also get more detailed output from the validate command with (the default is off):

set AcisOption Integer ’check_output’ on

That some of the ids listed in the output of the validate command are currently meaningless, e.g. those for coedges.

The validate command can also check for consistent surface normals and return a list of offending surfaces. The syntax for the command is as follows:

Validate [Body] <body_id> Normal [Reference [Surface] <surface_id>] [Reverse]

Using the reference keyword, a reference surface is compared to the normal consistency of all other specified surfaces. Inconsistent surfaces can be reversed using the reverse keyword.