Defeature Tool

The Defeature Tool is capable of removing small irrelevant curves and surfaces.  These small curves and surfaces are one of the main sources of low quality elements and meshing failures.  Sliver surfaces and curves generally exist at fillets, chamfers, and sliver surfaces at misalignments in imprinted assembly models.

Figure 1 - Defeature Power Tool

Defeaturing small curves and surfaces involves three main steps:

  1. Analyze the model to automatically detect small curves and surfaces.
  2. Manually deselect, if needed, detected small curves and surfaces.
  3. Execute the defeature tool to remove small curves and surfaces.

Step 1 requires specifying volume ids (e.g. all) and a tolerance (e.g. 0.6) as shown in Figure 1.  Clicking “Analyze” button will automatically find small curves and surfaces in the volumes specified.  Figure 2 shows the highlighted small curves and surfaces with the label information.   Figure 3 shows a zoom view of a small surface.

In Step 2 the user is allowed to deselect entities by unchecking entities from the list “Entities to be Defeatured”.  Users can also use “Highlight”, “Draw”, and “Locate” buttons to examine the automatically detected entities (see Figure 2).

In Step 3 actual defeaturing is performed by clicking the “Execute” button (see Figure 5).  Figure 4 shows the zoom view of a defeatured volume.  Defeatured volumes are created in a new user specified group (by default in “defeature_group”) as shown in Figure 6.  Only the volumes that have small curves and surfaces will be defeatured.  Also, by default old original volumes are deleted and new defeatured volumes (child entities) will use the corresponding old ids.  Please use the option “Keep Originals” if you want to have both old original and new defeatured volumes.

NOTE:

  1. The new defeatured volumes are in MBG format.  That is defeatured volumes are facet based instead of NURBS based ACIS volumes.  Therefore, it is highly recommended to perform NURBS based operations such as webcut and imprint before calling defeature.  

Command Syntax:

Set tolerant mesh mbg only

This command forces the mesh to associate with new defeatured volume.  Currently, this command must be called before calling the defeature command below.

Defeature curve_length <value> [Curve <ids>] [Curve <ids>] surface_prox2d <value> [Surface <ids> ] [group <id>] [keep]

curve_length <value>: Curves with length less than or equal to <value> are automatically detected as candidate for defeaturing if auto_identify is specified.  Otherwise, [Curve <ids>] must be specified.

surface_prox2d <value>: Surfaces with narrow region between opposing bounding curves are automatically detected as candidate for defeaturing if auto_identify is specified.  The 2d proximity <value> specified in detecting surfaces containing narrow regions.  If auto_identify is not specified, then [Surface <ids>] must be specified.

group <id>:  Defeatured volumes are added to the group id specified.

keep: If keep argument is specified original entities are kept along with new defeatured volumes.  If keep argument is not specified, then original entities are deleted and new defeatured volumes and its subentities (surfaces, curves, and vertices) will use the ids of original volumes.

Preserving Critical Geometric Entities

Before defeaturing the geometry, the user may wish to specify geometry that will be preserved during defeaturing. The below given "Fix" keyword is used to preserve any entity. The user may specify a volume, surface, curve, or vertex to fix.

Mesh Tolerant Fix [Volume|Surface|Curve|Vertex] <range>

To reverse the effects of fixing a geometric entity, the user may "free" an entity using the following syntax

Mesh Tolerant Free [Volume|Surface|Curve|Vertex] <range>

Example for fixing geometric entities:

reset

brick x 10

brick x .1

move vol 2 x 5

unite all

mesh tolerant fix surf all

mesh tolerant fix curve all

Defeature curve_length .2 curve 31 29 27 26 24 32 13 30 17 28 22 25

surface_prox2d .2 surface 13 14 15 16 12

Sample Journal File:

Even though the defeature tool is mainly intended to driven by the GUI, it can be used via command line.  Without the GUI, it will be harder to provide the list of small curves and surfaces to the defeature command.   Here is a sample journal file:

# import simple assembly

import acis 'assembly11a.sat'

# perform any ACIS based operations such as webcutting and imprinting first

imprint all

merge all

# enable the developer only command

set developer on

# force the mesh to associate with defeatured MBG volumes

set tolerant mesh mbg only

# create a new group to store defeatured volumes

group 'defeatured_vols' add volume all

# perform actual defeaturing by specifying the volume ids, tolerance, and small curve/surf ids.  

# defeatured volumes will be placed in the user specified group id and original entities can be

 # kept along with new defetured  volume using “keep” option.

defeature volume all curve_length 0.3 curve 107 103 102 100 88 85 82 80 9 6 4 2 214 212 211 210 203 200 199 197 188 187 185 183 170 167 164 162 234 232 227 225 254 253 252 251 249 248 243 242 272 271 270 269 265 264 259 258 288 287 286 285 281 280 275 274 304 303 302 301 297 296 291 290 312 311 307 306 surface_prox2d 0.3 surface 47 48 50 51 41 43 40 42 2 4 1 3 111 112 118 120 121 122 124 126 128 129 130 132 134 135 136 138 140 141 142 144 81 82 83 84 88 89 90 91 94 95 96 97 100 101 102 103 group 2 keep

# del any old original volumes if you don’t want it anymore

delete vol 1 to 11

# enable visibility of only defeatured vols

vol all vis off

vol all in group 2 vis on

#  set scheme to tetmesh

vol all in group 2 scheme tetmesh

# set mesh size

vol all in group 2 size 1

# mesh defeatured vols

mesh vol all in group 2

# disable developer only command

set dev off

Figures

Figure 1: Specify Volume ID and Tolerance before clicking “Analyze”

 

Figure 2: Use “Highlight”, “Draw”, and “Locate” to visualize small curves and surfaces

 

Figure 3: Zoom view of a small curve and surface

 

Figure 4: Zoom view of defeatured volume

 

Figure 5: Click Execute button to Defeature automatically/manually selected entities

 

Figure 6: New defeature_group contains defeatured volumes in MBG format