Cubit 16.14 User Documentation
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:
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:
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.
To reverse the effects of fixing a geometric entity, the user may "free" an entity using the following syntaxMesh Tolerant Fix [Volume|Surface|Curve|Vertex] <range>
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
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