Options |
|
|
Technical Article |
Options may be set to modify the behavior of ACIS. An option's value may be a flag (indicating an on/off state), a number (integer or real number), or a string. Options may be set in a Scheme application (such as Scheme AIDE) using the Scheme extension option:set; or in a C++ application using one of several API functions. |
Type | Values | Default |
---|---|---|
integer | 0, 1, 2 | 2 |
Type | Values | Default |
---|---|---|
int | 0, 1, 2 | 2 |
Description
This option affects how coincident faces are processed during Boolean
operations. It determines whether mergeable edges (edges with identical
geometry on either side) are included in the intersection graph. In this case,
mergeable edges are found on coincident faces, and will be (or not)
consequently included in a subsequent imprint. This option only has an effect
on imprinting and regularized Booleans.
When the operation is a regularized Boolean, you do not need to include these
mergeable edges, as they do no affect the outcome. On the other hand, when the
operation is an imprint, mergeable edges on coincident faces should be included
in the intersection graph because they are required in the result.
The values available for this option are:
0 | Disables imprinting mergeable edges. |
1 | Enables imprinting mergeable edges. |
2 | The action to be taken is determined by the operation; mergeable edges are included during an imprint, but not on regularized Booleans. |
; all_free_edges ; Turn on free edges (option:set "all_free_edges" 1) ;; 2 |
[Top]
Type | Values | Default |
---|---|---|
boolean | #f, #t | #f |
Type | Values | Default |
---|---|---|
logical | FALSE, TRUE | FALSE |
Description
This option controls when edge/edge intersections are performed during
face/face intersection checking. Normally, a face is checked for improper
edge/edge intersections (i.e., those intersections that result in a vertex not
on the body being checked) only after the face is involved in a failed
face/face intersection during checking; otherwise it is assumed that the face
has no improperly intersecting edges. Turning this option on causes each face
to be checked for improper edge/edge intersections when doing face/face
intersection checking.
; check_ee_int_always ; Make a bad body--turn off local operations loop ; checking, but turn on face/face intersection ; checking from inside local ops to find bad ; edge/edge intersections (option:set "check_ee_int_always" #t) ;; #f (option:set "lop_ff_int" #t) ;; #f (option:set "lop_check_invert" #f) ;; #t (define b (solid:block (position -25 -25 -25) (position 25 25 25))) ;; b (lop:edge-taper-faces (pick:face (ray (position 0 0 0) (gvector 1 0 0))) (pick:edge (ray (position 0 0 -25) (gvector 1 0 0))) (gvector 0 0 1) 60) ;; entid 1419584 entid 1418712: ;; Error: edge intersection ;; entid -57528: ;; Warning: invalid face ;; entid 1419008 entid 1419296: ;; Error: edge intersection ;; entid -58008: ;; Warning: invalid face ;; entid -58248 entid -57768: ;; Error: face intersection ;; Warning: shell entid -57000 not used in ;; containment check ;; Warning: lump entid 1423104 not used in ;; containment check ;; *** Error lop:edge-taper-faces: improper edge/edge ;; intersection |
[Top]
Type | Values | Default |
---|---|---|
boolean | #f, #t | #f |
Type | Values | Default |
---|---|---|
logical | FALSE, TRUE | FALSE |
If any problems are found, an ERROR_ENTITY object is returned on the insane_ents ENTITY_LIST.
; check_ff_int ; Create some geometry (define b1 (solid:block (position 0 -10 -10) (position 10 10 10))) ;; b1 (define b2 (solid:block (position 15 -10 -10) (position 25 10 10))) ;; b2 (bool:unite b1 b2) ;; #[entity 2 1] ; Allow bad body to be made (option:set "lop_ff_int" #f) ;; #f ; Try to make an invalid body (lop:move-faces (car (pick:face (ray (position 5 0 0) (gvector 1 0 0)))) (gvector 20 0 0)) ;; #[entity 2 1] (option:set "check_ff_int" #t) ;; #f (entity:check b1) ;; checked: ;; 2 lumps ;; 2 shells ;; 0 wires ;; 12 faces ;; 12 loops ;; 48 coedges ;; 24 edges ;; 16 vertices ;; entid -57048 entid -55072: ;; Error: face intersection ;; entid -57048 entid -55552: ;; Error: face intersection ;; entid -57048 entid -55800: ;; Error: face intersection ;; entid -57048 entid -56040: ;; Error: face intersection ;; entid -57048 entid -56280: ;; Error: face intersection ;; entid -57288 entid -55312: ;; Error: face intersection ;; entid -57288 entid -55552: ;; Error: face intersection ;; entid -57288 entid -55800: ;; Error: face intersection ;; entid -57288 entid -56040: ;; Error: face intersection ;; entid -57288 entid -56280: ;; Error: face intersection ;; entid -57528 entid -55072: ;; Error: face intersection ;; entid -57528 entid -55312: ;; Error: face intersection ;; entid -57528 entid -55552: ;; Error: face intersection ;; entid -57528 entid -55800: ;; Error: face intersection ;; entid -57528 entid -56280: ;; Error: face intersection ;; entid -58008 entid -55072: ;; Error: face intersection ;; entid -58008 entid -55312: ;; Error: face intersection ;; entid -58008 entid -55800: ;; Error: face intersection ;; entid -58008 entid -56040: ;; Error: face intersection ;; entid -58008 entid -56280: ;; Error: face intersection ;; entid -57000 entid -55024: ;; Warning: shell intersection ;; entid 1423104 entid 1430328: ;; Warning: lump intersection ;; Body containing improper intersections created. ;; () |
[Top]
Type | Values | Default |
---|---|---|
boolean | #f, #t | #f |
Type | Values | Default |
---|---|---|
logical | FALSE, TRUE | FALSE |
Intersections are not performed during face/face checking when this option is FALSE. To perform these additional checks, the option must be TRUE.
This option only has an effect when either option lop_ff_int or check_ff_int is TRUE.
; check_ff_tangent_int ; Create some geometry (define b1 (solid:block (position 0 -10 -10) (position 10 10 10))) ;; b1 (define e (pick:edge (ray (position 0 0 10) (gvector 1 0 0)))) ;; e (abl:edge-blend e (abl:ell-rad #f 2 4.5 0)) ;; #[entity 3 1] (blend:network e) ;; #[entity 2 1] (option:set "check_ff_int" #t) ;; #f (option:set "check_ff_tangent_int" #t) ;; #f (entity:check b1) ;; checked: ;; 1 lumps ;; 1 shells ;; 0 wires ;; 7 faces ;; 7 loops ;; 30 coedges ;; 15 edges ;; 10 vertices ;; () |
[Top]
Type | Values | Default |
---|---|---|
boolean | #f, #t | #f |
Type | Values | Default |
---|---|---|
logical | FALSE, TRUE | FALSE |
Description
When on, the second edge is retained when merging vertices.
; keep_second_edge ; Turn on second edge keeping (option:set "keep_second_edge" #t) ;; #f |
[Top]
Type | Values | Default |
---|---|---|
boolean | #f, #t | #f |
Type | Values | Default |
---|---|---|
logical | FALSE, TRUE | FALSE |
Description
When on, the second face is retained when merging edges.
; keep_second_face ; Turn on second face keeping (option:set "keep_second_face" #t) ;; #f |
[Top]
Type | Values | Default |
---|---|---|
boolean | #f, #t | #t |
Type | Values | Default |
---|---|---|
logical | FALSE, TRUE | TRUE |
Description
When on, edges and vertices are merged for regularized Booleans. This option
affects the behavior of sweeping APIs. Thus, when this option is on, the edges
with common geometry are merged during the sweeping operation.
; merge ; Turn off merging (option:set "merge" #f) ;; #t |
[Top]
Type | Values | Default |
---|---|---|
boolean | #f, #t | #f |
Type | Values | Default |
---|---|---|
logical | FALSE, TRUE | FALSE |
Description
If this option is on, it allows merging of spline edges connected by a two-edge
vertex. Spline edges with different underlying geometry will also be merged.
; merge_spline_vertex ; Turn on merging (option:set "merge_spline_vertex" #t) ;; #f |
[Top]
Type | Values | Default |
---|---|---|
integer | 0, 1, 2, 3 | 0 |
Type | Values | Default |
---|---|---|
int | 0, 1, 2, 3 | 0 |
Description
This option affects the behavior of APIs
api_split_periodic_faces and
api_convert_to_spline. It controls how periodic faces are
split (for example, how many times to split; where to split; avoiding sliver
faces, etc.). The option values are:
; new_periodic_splitting ; Split closed periodic twice (option:set "new_periodic_splitting" 1) ;; 0 |
[Top]
Type | Values | Default |
---|---|---|
boolean | #f, #t | #f |
Type | Values | Default |
---|---|---|
logical | FALSE, TRUE | FALSE |
Description
If this option is on, pcurves are regenerated during the last (fourth) stage of
a Boolean operation (which makes the operation slower). If this option is off
(default), the pcurves are simply reparameterized.
; slow_bool4 ; Turn on pcurve regeneration (option:set "slow_bool4" #t) ;; #f |
[Top]
Type | Values | Default |
---|---|---|
boolean | #f, #t | #f |
Type | Values | Default |
---|---|---|
logical | FALSE, TRUE | FALSE |
Description
This option controls whether or not faces that are created by the splitting
process of API
api_split_periodic_faces are checked to see if any small faces
were created. The check examines the face area and minimum edge length to find
small faces. If this option is on, the checks are performed; if it is off, they
are not.
; split_face_checking ; Turn on face split check (option:set "split_face_checking" #t) ;; #f |
[Top]
Type | Values | Default |
---|---|---|
string | See Description | "spline" |
Type | Values | Default |
---|---|---|
char* | See Description | "spline" |
Description
Enables the use of the same underlying
spl_sur for different faces. This provides a minor performance
enhancement and a reduction in the size of SAT files. The valid values are:
The torus value is for future implementation and currently does not provide any performance enhancement.
; subsetting ; Set subsetting to none, which gives same ; performance and SAT file size as 3.0 (option:set "subsetting" "none") ;; "spline" |
[Top]
Type | Values | Default |
---|---|---|
boolean | #f, #t | #t |
Type | Values | Default |
---|---|---|
logical | FALSE, TRUE | TRUE |
Description
When on, enables the trimming of splines to the parameter bounds of the face
during Booleans.
; trim_faces ; Turn off face trimming (option:set "trim_faces" #f) ;; #t |
[Top]
© 1989-2007 Spatial Corp., a Dassault Systèmes company. All rights reserved.