5.10. Considerations and Cautions for Solid Modeling

5.10.1. Representation of Solid Model Entities

During the solid modeling process, it is helpful to understand the underlying mathematical operations used by Mechanical APDL. This knowledge is particularly useful when you encounter degeneracies and discontinuities. For example, an error stating that a degeneracy has been detected in a solid model Boolean operation may occur. Knowledge of the mathematical terminology involved can aid in overcoming such an error.

Internally, solid model entities are mathematically represented by trimmed parametric surfaces. Trimmed parametric surfaces consist of two components: parametric geometry and topology. Parametric geometry defines the underlying surface of a model. The term "parametric" refers to the parametric space that mathematically represents the geometric space. Refer to Figure 5.63: Cone Surface Maps to a Parametric Square for an illustration of the relationship between the geometric model and the parametric model. Nonuniform Rational B-splines, or NURBS, are used in the definition of the parametric geometry. The term "topology" refers to the trimming surfaces that bound a model's geometry.

5.10.2. When a Boolean Operation Fails

Boolean operators provide a powerful set of tools that enable you to create complicated geometries with a minimum amount of input. However, you might encounter situations in which a Boolean operation will have difficulties. If this happens, you can still sometimes work around the problem to achieve the desired solid model. Let's examine some of the causes of and cures for Boolean failures.

5.10.2.1. Degeneracies

Boolean operations can fail due to degeneracies. Knowing what constitutes a degeneracy, how a degeneracy is formed, and why degeneracies sometimes cause Booleans to fail can help you overcome such errors. Degeneracies can arise due to issues in geometry or topology. Mechanical APDL classifies degeneracies (which cause a Boolean failure) as either parametric (geometry) or topological.

Parametric degeneracies result from the representation of geometric space with an underlying parametric space. When this "shadow world" of the parametric representation is not in dimensional harmony with the real world of the geometric model, a degeneracy is created. For example, at the apex of a cone, a single point on the geometric model is represented by an edge in the parametric representation (see Figure 5.63: Cone Surface Maps to a Parametric Square). Such a point is termed a degenerate edge, or more simply, a degeneracy. Figure 5.65: Examples of Degeneracies illustrates several common degeneracies formed during modeling.

A degeneracy of this kind is not harmful in and of itself. A model that contains a degeneracy can often be used in Boolean operations, can be meshed successfully, and can yield excellent analysis results. It is only when a degeneracy happens to cause a problem in a Boolean operation that you even need to be aware of its existence.

Figure 5.63: Cone Surface Maps to a Parametric Square

Cone Surface Maps to a Parametric Square

5.10.3. Graphically Identifying Degeneracies

Degeneracies in areas or volumes can be graphically identified using the methods described below. If you are using the command input method, including the DEGEN label will place a red star at keypoints associated with degeneracies (see Figure 5.64: Plotting of Geometric Degeneracies).

  • To display degeneracies in areas, use the APLOT,,,,DEGE commaand.

  • To display selected volumes, use the VPLOT,,,,DEGE command.

5.10.4. Listing the Keypoints Associated with Degeneracies

You may also choose to list the keypoints associated with degeneracies:

  • To list keypoints of an area that lie on a parametric degeneracy, use the ADGL command.

  • To list keypoints of a volume that lie on a parametric degeneracy. use the VDGL command.

Figure 5.64: Plotting of Geometric Degeneracies

Plotting of Geometric Degeneracies

Another kind of degeneracy can be detected if a Boolean operation attempts to create a degenerate boundary during any phase of its operation. A degenerate boundary is an incomplete or zero-area loop, or an incomplete or zero-volume shell. This type of degeneracy is commonly referred to as a topological degeneracy. A Boolean operation will produce an error message if a degeneracy of this nature is detected. Topological degeneracies cannot be plotted since they do not exist prior to a Boolean operation. Examples of topological degeneracies are illustrated in Figure 5.66: Topologically Degenerate Loop and Figure 5.67: Examples of Topologically Degenerate Loops and Shells. An example of a Boolean operation resulting in failure is shown in Figure 5.66: Topologically Degenerate Loop. In this example, the triangular prism cannot be subtracted (VSBV) from the block, because a degenerate loop would be formed on the top surface of the block. Other Boolean operations such as VADD, VOVLAP, etc. would also fail for these volumes due to this degeneracy.

Figure 5.65: Examples of Degeneracies

Examples of Degeneracies

A topologically degenerate loop will be created during VSBV, VADD, VOVLAP, or other Boolean operations involving these volumes

Figure 5.66: Topologically Degenerate Loop

Topologically Degenerate Loop

Figure 5.67: Examples of Topologically Degenerate Loops and Shells

Examples of Topologically Degenerate Loops and Shells

5.10.4.1. Discontinuities

Generally, discontinuities are sharp "kinks" in solid model entities. They can result from the combination of lines (LCOMB) with inconsistent end tangents or from an IGES import. See Figure 5.68: Lines and Areas Containing Discontinuities for an illustration of entities containing discontinuities.

Figure 5.68: Lines and Areas Containing Discontinuities

Lines and Areas Containing Discontinuities

Many solid model operations will support entities containing discontinuities. However, Boolean operations do not directly support discontinuities. Boolean operations will split or divide entities at points or along lines of discontinuities prior to the Boolean operation. For example, Figure 5.69: Boolean Operation Involving Entities With Discontinuities shows an area containing a discontinuity involved in a Boolean subtract operation. Prior to the subtract operation area 1 along with lines 1 and 3 are split at discontinuities.

Figure 5.69: Boolean Operation Involving Entities With Discontinuities

Boolean Operation Involving Entities With Discontinuities


Note:  Discontinuities can be associated with both direction and magnitude of tangent vectors. Boolean operations will detect both types of discontinuities.


5.10.4.2. Other Causes of Boolean Failures

Boolean operations can fail due to other circumstances besides degeneracies. For instance, intersections at tangent points can sometimes be difficult for the Boolean operations to handle, particularly with non-primitive constructions. Also, entities that share a boundary (such as two volumes with bounding areas on the same surface) can potentially cause problems in a Boolean operation. Problems might also be encountered if your geometry contains small regions with very high curvatures, or regions with very sharp angles or transitions.

5.10.5. Some Suggested Corrective Actions

If a Boolean operation fails, you can try using one or more of the following procedures to work around the problem.

You need not always follow these guidelines as you first build your model. You can often create a model any way you like, and never encounter a Boolean failure. These guidelines are provided as suggested ways to try to recover from a Boolean failure.

Adjust the input geometries, using the following guidelines:

  • Whenever possible, try to use geometric primitives as you create your solid model. The results of Boolean operations on non-primitives can sometimes be less accurate and efficient.

  • Try to avoid creating geometries that contain degeneracies, if the degeneracy will lie on a potential intersection curve. A few specific examples of such geometries would include:

  • Try to avoid performing Boolean operations on entities that are tangent to each other. Similarly, try to avoid Boolean operations on entities that have coincident boundaries.

  • If your Boolean operation included more than two input entities, break the operation into a series of operations with fewer input entities. For example, replace AADD,ALL with the series (AADD,1,2; AADD,5,3; AADD,1,4). (See Figure 5.70: Decompose a Single Operation into a Series of Operations.) You will have to keep track of the numbers assigned to new Boolean output entities created throughout the series of commands.

    Figure 5.70: Decompose a Single Operation into a Series of Operations

    Decompose a Single Operation into a Series of Operations

  • If a failure occurs in a series of Boolean operations, try changing the order of operations. For instance, replace the series (AADD,1,2; AADD,5,3; AADD,1,4) with a reordered series, such as (AADD,4,3; AADD,5,2; AADD,3,1). (See Figure 5.71: Change the Order of a Series of Operations.)

    Figure 5.71: Change the Order of a Series of Operations

    Change the Order of a Series of Operations

  • If the Boolean operation fails, you may receive an error message suggesting you loosen (increase) the tolerance from the default value of 1.0 x 10-4 (1.0E-4). This tolerance affects the precision with which Boolean constructions are formed. Sometimes, simply changing this tolerance and reissuing the Boolean command will suffice. At other times, you might find that you need to retrace your steps, recreating the Boolean's input entities using a changed tolerance, before you can successfully proceed with the Boolean operation.

You can loosen the tolerance with the BTOL,PTOL command, where PTOL is the new tolerance.

Once you have loosened the tolerance and re-executed the operation successfully, you should return the tolerance to its default value. Doing so will assure precise Boolean constructions later in your modeling effort.

If the geometry is unworkable (no Boolean will work or it cannot be meshed), or if you have encountered a "database corruption" (or contamination) message, then as a work-around use CDWRITE to write out the geometry (CDWRITE,COMB) using the ANF option (CDOPT,ANF) and CDREAD to read it back in (after exiting and re-entering Mechanical APDL) to obtain clean geometry.

5.10.6. Other Hints

5.10.6.1. Avoid Regions that Cross over Themselves

You must take care not to define an area or volume that crosses over itself. (You might inadvertently create such an entity by means of an ADRAG or VDRAG command, for instance.) The Mechanical APDL program cannot always detect such a defect before meshing, but an area or volume that crosses over itself will usually reveal itself in a meshing failure.

5.10.6.2. Use Mechanical APDL Parameters

Use Mechanical APDL parameters for dimensions that might change or that have a lot of digits. Typing a number like 2.8574639 over and over is tedious and is likely to lead to input errors.

5.10.6.3. Consider Alternatives to Boolean Commands

When appropriate, use reasonable alternatives to Boolean commands to overcome Boolean failures or simply to reduce run times. (For example, dragging or rotating might sometimes be preferred over comparable Boolean modeling operations.)

5.10.6.4. Work with Lower-Dimension Constructions

Modeling sessions can sometimes be made more efficient, both with respect to run times and memory requirements, if Boolean operations can be performed using lower-dimension entities. For instance, replacing a line-volume subtraction (LSBV) with a series of line-area subtractions (LSBA) and a deletion (LDELE) might yield the same results at less cost. Switching to lower-dimension operations can sometimes save CPU time and memory requirements. (See Figure 5.72: Switching to Lower-Dimension.) Of course, you must weigh the loss of convenience against any gain that you might realize. Switching to lower-dimension operations will probably not be justified unless you are experiencing out-of-memory errors, extremely long run times, or other such problems.

Figure 5.72: Switching to Lower-Dimension

Switching to Lower-Dimension

5.10.6.5. Create Complex Models in Pieces

Consider creating complex solid models in pieces and combining them using the RESUME command and CDREAD command in the preprocessor (PREP7). The following is an example of this procedure:

/PREP7
RESUME,MODEL1,DB
CDWRITE,SOLID         !Write out just solid model (to file.iges)
RESUME,MODEL2,DB      !Note that this 2nd RESUME clears MODEL1 from the
                      !database and reads MODEL2
CDREAD,SOLID          !Reads in the solid model (from file.iges)

!Solid models from MODEL1 and MODEL2 are now 
!in the current database

SAVE,MODEL3,DB        !Save combined model to separate file
FINISH

The CDREAD command automatically renumbers new entities to avoid conflicts with other solid model entities that already exist in the database. In addition, this command automatically executes a NUMMRG,KP command to merge duplicate solid-model entities.

5.10.6.6. Don't Forget to SAVE

Make it a habit to save your database (SAVE) before attempting a new or risky operation. If an operation causes your system to hang or crash, or produces some other undesired result, you have a clean copy of your database to help you recover from such trouble.

5.10.6.7. Tessellation Errors

It is possible, although unlikely, that you might encounter the following error message at times as you are building your solid model:

 *** WARNING ***

Error in surface tessellation for area N.  This area can only be 
displayed with /FACET,WIRE, and cannot be part of a V, VA, VSUM, 
or ASUM operation.

Tessellation is the subdividing of an area for purposes of display (that is, surface faceting), area calculation (as in ASUM), and volume integration (as in V, VA, or VSUM). A tessellation error produces a warning message instead of an error message because an area that cannot be tessellated might still mesh successfully.

The types of situations that can cause tessellation errors include: areas having sharp knife edges, areas having too many holes, or areas having holes on extremely warped surfaces.


Note:  For very narrow (sliver) areas or very thin volumes, such that the ratio of the minimum to the maximum dimension is less than 0.01, the ASUM and VSUM commands can provide erroneous area or volume information. To ensure that such calculations are accurate, make certain that you subdivide such areas and volumes so that the ratio of the minimum to the maximum is at least 0.05.