|
Functions | |
| outcome | api_bool_make_intersection_graph (BODY *tool, BODY *blank, BODY *&graph, BOOL_TYPE type, const glue_options *glue_opts, BoolOptions *bool_opts, AcisOptions *ao=NULL) |
| This is a partial Boolean operation to compute and build the intersection graph between two bodies. | |
| outcome | api_bool_make_intersection_graph (BODY *tool, BODY *blank, BODY *&graph, BOOL_TYPE type=UNION, const glue_options *glue_opts=NULL, AcisOptions *ao=NULL) |
| This is a partial Boolean operation for computing and building the intersection graph between two bodies. | |
| outcome | api_bool_make_intersection_graph_wo_bool_end (BODY *tool, BODY *blank, BODY *&graph, BOOL_TYPE type, const glue_options *glue_opts, BoolOptions *bool_opts, AcisOptions *ao=NULL) |
| Returns a premature intersection graph between two bodies. | |
| outcome | api_bool_make_intersection_graph_wo_bool_end (BODY *tool, BODY *blank, BODY *&graph, BOOL_TYPE type=UNION, const glue_options *glue_opts=NULL, AcisOptions *ao=NULL) |
| Returns a premature intersection graph between two bodies. | |
| outcome | api_boolean_chop_complete (logical nonreg, BODY *&outside, BODY *&leftovers, NDBOOL_KEEP ndbool_keep, BODY *&result_body, BoolOptions *bool_opts, AcisOptions *ao=NULL) |
| This is a partial Boolean API function that completes a chop operation. | |
| outcome | api_boolean_chop_complete (logical nonreg, BODY *&outside, BODY *&leftovers=*(BODY **) NULL_REF, NDBOOL_KEEP ndbool_keep=NDBOOL_KEEP_NEITHER, BODY *&result_body=*(BODY **) NULL_REF, AcisOptions *ao=NULL) |
| This is a partial Boolean API function that completes a chop operation. | |
| outcome | api_boolean_complete (BOOL_TYPE op, NDBOOL_KEEP ndbool_keep, BODY *&result_body, BoolOptions *bool_opts, AcisOptions *opts) |
| This is a partial Boolean API function to finish a Boolean operation. | |
| outcome | api_boolean_complete (BOOL_TYPE op, NDBOOL_KEEP ndbool_keep=NDBOOL_KEEP_NEITHER, BODY *&result_body=*(BODY **) NULL_REF, AcisOptions *opts=NULL) |
| This is a partial Boolean API function to finish a Boolean operation. | |
| outcome | api_boolean_start (BODY *tool, BODY *blank, AcisOptions *ao=NULL) |
| This is a partial Boolean API function that initializes a Boolean operation. | |
| outcome | api_complete_intersection_graph (BODY *tbody, BODY *blank, BODY *&graph, AcisOptions *ao=NULL) |
| This is a partial Boolean operation to build the intersection graph between two bodies. | |
| outcome | api_fixup_intersection (int edge_knt, EDGE **edge_array, FACE **tfaces, AcisOptions *ao=NULL) |
| Fixes intersection records created by api_update_intersection. | |
| outcome | api_imprint_complete (BODY *tool, BODY *blank, AcisOptions *ao=NULL) |
| This is a partial Boolean API function to complete an imprint operation. | |
| outcome | api_imprint_stitch_complete (BODY *b1, BODY *b2, AcisOptions *ao=NULL) |
| This is a partial Boolean API function to imprint two bodies and stitch them along their face-face intersection curves. | |
| outcome | api_selectively_imprint (BODY *tool, ENTITY_LIST &tool_faces, BODY *blank, ENTITY_LIST &blank_faces, logical split_checking, ENTITY_LIST &intgraph_edges, BoolOptions *bool_opts, AcisOptions *ao=NULL) |
| Performs an imprint operation using a subset of faces from the tool body and a subset of faces from the blank body. | |
| outcome | api_selectively_imprint (BODY *tool, ENTITY_LIST &tool_faces, BODY *blank, ENTITY_LIST &blank_faces, logical split_checking=TRUE, ENTITY_LIST &intgraph_edges=*(ENTITY_LIST *) NULL_REF, AcisOptions *ao=NULL) |
| Performs an imprint operation using a subset of faces from the tool body and a subset of faces from the blank body. | |
| outcome | api_selectively_intersect (const int number_faces, FACE *tool_faces[], FACE *blank_faces[], BoolOptions *bool_opts, AcisOptions *ao=NULL) |
| This is a partial Boolean API function to intersect an array of faces of one body with an array of faces of another body. | |
| outcome | api_selectively_intersect (const int number_faces, FACE *tool_faces[], FACE *blank_faces[], AcisOptions *ao=NULL) |
| This is a partial Boolean API function to intersect an array of faces of one body with an array of faces of another body. | |
| outcome | api_slice_complete (BODY *tool, BODY *blank, SPAunit_vector const &normal, BODY *&graph, AcisOptions *ao=NULL) |
| This is a partial Boolean API function to complete a slice operation. | |
| outcome | api_update_intersection (FACE *tool_face, const SPAtransf &ttrans, FACE *blank_face, const SPAtransf &btrans, const int number_edges, EDGE *ssi_edges[], logical check_rels=TRUE, AcisOptions *ao=NULL) |
| This is a partial Boolean API function to create a surf_surf_int intersection structure to be used in place of an actual intersection. | |
| outcome api_bool_make_intersection_graph | ( | BODY * | tool, | |
| BODY * | blank, | |||
| BODY *& | graph, | |||
| BOOL_TYPE | type, | |||
| const glue_options * | glue_opts, | |||
| BoolOptions * | bool_opts, | |||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean operation to compute and build the intersection graph between two bodies.
Role: This API function computes all intersections and builds a specialized wire body with Boolean attributes, representing the intersection graph between two bodies.
Notes:
tool or blank is a NULL pointer or does not point to a BODY. | tool | (in) Tool or slicing body. | |
| blank | (in) Blank body to be sliced. | |
| graph | (out) Returned intersection graph. | |
| type | (in) Type of Boolean operation (for glue only). Valid values are UNION and SUBTRACTION. | |
| glue_opts | (in) Glue info and options. | |
| bool_opts | (in) Boolean options. Refer to BoolOptions for details. | |
| ao | (in) ACIS options such as versioning or journaling. |
include <boolapi.hxx>
| outcome api_bool_make_intersection_graph | ( | BODY * | tool, | |
| BODY * | blank, | |||
| BODY *& | graph, | |||
| BOOL_TYPE | type = UNION, |
|||
| const glue_options * | glue_opts = NULL, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean operation for computing and building the intersection graph between two bodies.
Role: This API function computes all intersections and builds a specialized wire body with Boolean attributes, representing the intersection graph between two bodies.
Notes:
tool or blank is a NULL pointer or does not point to a BODY. | tool | (in) Tool or slicing body. | |
| blank | (in) Blank body to be sliced. | |
| graph | (out) Returned intersection graph. | |
| type | (in) Type of Boolean operation (for glue only). Valid values are UNION and SUBTRACTION. | |
| glue_opts | (in) Glue info and options. | |
| ao | (in) ACIS options such as versioning or journaling. |
include <boolapi.hxx>
| outcome api_bool_make_intersection_graph_wo_bool_end | ( | BODY * | tool, | |
| BODY * | blank, | |||
| BODY *& | graph, | |||
| BOOL_TYPE | type, | |||
| const glue_options * | glue_opts, | |||
| BoolOptions * | bool_opts, | |||
| AcisOptions * | ao = NULL | |||
| ) |
Returns a premature intersection graph between two bodies.
Role: This API function returns a premature version of the intersection graph returned by api_bool_make_intersection_graph. To complete the intersection graph a subsequent call to api_complete_intersection_graph is essential.
Note: Do not remove the Boolean attributes attached to the entities or other sub-state data. This function is not necessary in normal circumstances. Calling api_bool_make_intersection_graph is recommended.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Errors: tool or blank is a NULL pointer or does not point to a BODY.
Effect: Read-only on input. A new body is created.
Journal: Available
Product(s): 3D ACIS Modeler
| tool | (in) Tool or slicing body. | |
| blank | (in) Blank body to be sliced. | |
| graph | (out) Returned intersection graph. | |
| type | (in) Type of Boolean operation (for glue only). Valid values are UNION and SUBTRACTION. | |
| glue_opts | (in) Glue info and options. | |
| bool_opts | (in) Boolean options. Refer to BoolOptions for details. | |
| ao | (in) ACIS options such as versioning or journaling. |
include <boolapi.hxx>
| outcome api_bool_make_intersection_graph_wo_bool_end | ( | BODY * | tool, | |
| BODY * | blank, | |||
| BODY *& | graph, | |||
| BOOL_TYPE | type = UNION, |
|||
| const glue_options * | glue_opts = NULL, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
Returns a premature intersection graph between two bodies.
Role: This API function returns a premature version of the intersection graph returned by api_bool_make_intersection_graph. To complete the intersection graph a subsequent call to api_complete_intersection_graph is essential.
Note: Do not remove the Boolean attributes attached to the entities or other sub-state data. This API function is not necessary in normal circumstances. Calling api_bool_make_intersection_graph is recommended.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Errors: tool or blank is a NULL pointer or does not point to a BODY.
Effect: Read-only on input. A new body is created.
Journal: Available
Product(s): 3D ACIS Modeler
| tool | (in) Tool or slicing body. | |
| blank | (in) Blank body to be sliced. | |
| graph | (out) Returned intersection graph. | |
| type | (in) Type of Boolean operation (for glue only). Valid values are UNION and SUBTRACTION. | |
| glue_opts | (in) Glue info and options. | |
| ao | (in) ACIS options such as versioning or journaling. |
include <boolapi.hxx>
| outcome api_boolean_chop_complete | ( | logical | nonreg, | |
| BODY *& | outside, | |||
| BODY *& | leftovers, | |||
| NDBOOL_KEEP | ndbool_keep, | |||
| BODY *& | result_body, | |||
| BoolOptions * | bool_opts, | |||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean API function that completes a chop operation.
Role: This API function completes simultaneous Boolean intersect and subtract operations on two bodies (blank and tool). It is assumed that the intersection graph has already been computed using other partial Boolean APIs. The intersection result is returned via a modified blank body. A new body is created for the subtraction result and is returned via the pointer outside. The caller is responsible for passing in a NULL pointer through which the subtraction result will be returned.
If the tool body is an incomplete solid, any lumps of the blank which are not intersected by the faces of the tool, and which therefore cannot be classified as either inside or outside, will be returned in a newly created body via the pointer leftovers, if a NULL pointer is supplied. If leftovers is not supplied, any unclassified lumps will be deleted. The operation will fail if the tool body does not extend far enough to cut completely through any lump of the blank body with which its faces do intersect.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans. For additional information on chop operations refer to the Technical Article Basic Boolean Operations.
Effect: Changes model.
Journal: Available
Product(s): 3D ACIS Modeler
| nonreg | (in) Set to TRUE when nonregularized results are required, FALSE otherwise. | |
| outside | (out) Used to return the subtraction of the tool body from the blank body. | |
| leftovers | (out) Used to return any unclassified lumps from the blank body, or NULL if none. | |
| ndbool_keep | (in) Optional flag for non-destructive Booleans. Valid values are NDBOOL_KEEP_NEITHER (default), NDBOOL_KEEP_BLANK, NDBOOL_KEEP_TOOL, and NDBOOL_KEEP_BOTH. | |
| result_body | (out) Used to return the intersection of the tool body with the blank body if performing a non-destructive Boolean. Default value is *(BODY**)NULL_REF if not required. | |
| bool_opts | (in) Boolean options. Refer to BoolOptions for details. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_boolean_chop_complete | ( | logical | nonreg, | |
| BODY *& | outside, | |||
| BODY *& | leftovers = *(BODY **) NULL_REF, |
|||
| NDBOOL_KEEP | ndbool_keep = NDBOOL_KEEP_NEITHER, |
|||
| BODY *& | result_body = *(BODY **) NULL_REF, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean API function that completes a chop operation.
Role: This API function completes simultaneous Boolean intersect and subtract operations on two bodies (blank and tool). It is assumed that the intersection graph has already been computed using other partial Boolean APIs. The intersection result is returned via a modified blank body. A new body is created for the subtraction result and is returned via the pointer outside. The caller is responsible for passing in a NULL pointer through which the subtraction result will be returned.
If the tool body is an incomplete solid, any lumps of the blank which are not intersected by the faces of the tool, and which therefore cannot be classified as either inside or outside, will be returned in a newly created body via the pointer leftovers, if a NULL pointer is supplied. If leftovers is not supplied, any unclassified lumps will be deleted. The operation will fail if the tool body does not extend far enough to cut completely through any lump of the blank body with which its faces do intersect.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans. For additional information on chop operations refer to the Technical Article Basic Boolean Operations.
Effect: Changes model.
Journal: Available
Product(s): 3D ACIS Modeler
| nonreg | (in) Set to TRUE when nonregularized results are required, FALSE otherwise. | |
| outside | (out) Used to return the subtraction of the tool body from the blank body. | |
| leftovers | (out) Used to return any unclassified lumps from the blank body, or NULL if none. | |
| ndbool_keep | (in) Optional flag for non-destructive Booleans. Valid values are NDBOOL_KEEP_NEITHER (default), NDBOOL_KEEP_BLANK, NDBOOL_KEEP_TOOL, and NDBOOL_KEEP_BOTH. | |
| result_body | (out) Used to return the intersection of the tool body with the blank body if performing a non-destructive Boolean. Default value is *(BODY**)NULL_REF if not required. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_boolean_complete | ( | BOOL_TYPE | op, | |
| NDBOOL_KEEP | ndbool_keep, | |||
| BODY *& | result_body, | |||
| BoolOptions * | bool_opts, | |||
| AcisOptions * | opts | |||
| ) |
This is a partial Boolean API function to finish a Boolean operation.
Role: This API function completes a Boolean operation using information from the current intersection graph. It is assumed that the intersection graph has already been computed using other partial Boolean API functions.
By default, the result is returned in a modified blank body and the tool body is deleted. However, the non-destructive Boolean argument ndbool_keep, allows the caller to preserve the blank body, tool body, or both bodies. If the blank body is to be preserved, a new body is created for the result and returned via the pointer result_body. The caller is responsible for passing in a NULL BODY pointer, through which the result body is returned.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Effect: Changes model.
Journal: Available
Product(s): 3D ACIS Modeler
| op | (in) Type of Boolean operation. Valid values are UNION, INTERSECTION, SUBTRACTION, NONREG_UNION, NONREG_INTERSECTION, and NONREG_SUBTRACTION. | |
| ndbool_keep | (in) Optional flag for non-destructive Booleans. Valid values are NDBOOL_KEEP_NEITHER (default), NDBOOL_KEEP_BLANK, NDBOOL_KEEP_TOOL, and NDBOOL_KEEP_BOTH. | |
| result_body | (out) Used to return the result body if performing a non-destructive Boolean. Default value is *(BODY**)NULL_REF if not required. | |
| bool_opts | (in) Boolean options. Refer to BoolOptions for details. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_boolean_complete | ( | BOOL_TYPE | op, | |
| NDBOOL_KEEP | ndbool_keep = NDBOOL_KEEP_NEITHER, |
|||
| BODY *& | result_body = *(BODY **) NULL_REF, |
|||
| AcisOptions * | opts = NULL | |||
| ) |
This is a partial Boolean API function to finish a Boolean operation.
Role: This API function completes a Boolean operation using information from the current intersection graph. It is assumed that the intersection graph has already been computed using other partial Boolean API functions.
By default, the result is returned in a modified blank body and the tool body is deleted. However, the non-destructive Boolean argument ndbool_keep, allows the caller to preserve the blank body, tool body, or both bodies. If the blank body is to be preserved, a new body is created for the result and returned via the pointer result_body. The caller is responsible for passing in a NULL BODY pointer, through which the result body is returned.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Effect: Changes model.
Journal: Available
Product(s): 3D ACIS Modeler
| op | (in) Type of Boolean operation. Valid values are UNION, INTERSECTION, SUBTRACTION, NONREG_UNION, NONREG_INTERSECTION, and NONREG_SUBTRACTION. | |
| ndbool_keep | (in) Optional flag for non-destructive Booleans. Valid values are NDBOOL_KEEP_NEITHER (default), NDBOOL_KEEP_BLANK, NDBOOL_KEEP_TOOL, and NDBOOL_KEEP_BOTH. | |
| result_body | (out) Used to return the result body if performing a non-destructive Boolean. Default value is *(BODY**)NULL_REF if not required. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_boolean_start | ( | BODY * | tool, | |
| BODY * | blank, | |||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean API function that initializes a Boolean operation.
Role: This API function performs the opening stage of a Boolean operation, initializing the operation to the point where face-face intersections can be performed to construct an intersection graph.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Errors: tool or blank is a NULL pointer or does not point to a BODY.
Effect: System routine.
Journal: Available
Product(s): 3D ACIS Modeler
| tool | (in) Tool body. | |
| blank | (in) Blank body. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_complete_intersection_graph | ( | BODY * | tbody, | |
| BODY * | blank, | |||
| BODY *& | graph, | |||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean operation to build the intersection graph between two bodies.
Role: This API function builds a specialized wire body containing extra coedges and Boolean attributes, representing the intersection graph between two bodies. It is assumed that the necessary intersections have already been performed using other partial Boolean API functions. To compute and build the intersection graph in one step, the API api_bool_make_intersection_graph is recommended.
Notes:
tool or blank is a NULL pointer or does not point to a BODY. | tbody | (in) Tool body. | |
| blank | (in) Blank body. | |
| graph | (out) Resulting intersection graph. | |
| ao | ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_fixup_intersection | ( | int | edge_knt, | |
| EDGE ** | edge_array, | |||
| FACE ** | tfaces, | |||
| AcisOptions * | ao = NULL | |||
| ) |
Fixes intersection records created by api_update_intersection.
Role: This API function should be called after calling api_update_intersection. This function is needed only when imprinting multiple edges on a face, and not during a typical Boolean operation.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Errors: tfaces[edge_knt] is a NULL pointer or does not point to a FACE.
Effect: System routine.
Journal: Not Available
Product(s): 3D ACIS Modeler
| edge_knt | (in) Array index of the relevant tool face. | |
| edge_array | Obsolete argument. | |
| tfaces | (in) Array of tool faces. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_imprint_complete | ( | BODY * | tool, | |
| BODY * | blank, | |||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean API function to complete an imprint operation.
Role: This API function imprints the current intersection graph on both bodies. It is assumed that the intersection graph has already been computed using other partial Boolean API functions. Faces and edges may be split as a result.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Errors: tool or blank is a NULL pointer or does not point to a BODY.
Effect: Changes models.
Journal: Available
Product(s): 3D ACIS Modeler
| tool | (in/out) Tool body. | |
| blank | (in/out) Blank body. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_imprint_stitch_complete | ( | BODY * | b1, | |
| BODY * | b2, | |||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean API function to imprint two bodies and stitch them along their face-face intersection curves.
Role: This API function imprints the current intersection graph on both bodies, and then combines the bodies, stitching them along the imprinted edges and vertices. It is assumed that the intersection graph has already been computed using other partial Boolean API functions. The result is returned in the body b1 and the body b2 is deleted.
Face normals and coedge senses must be compatible for stitching of sheet edges. Stitching of incompatible edges will be ignored. When vertices at the same location (within tolerance) are merged, they become non-manifold and contain all surrounding face groups.
This API function is designed to be faster than performing separate imprint and stitch operations because the imprinted edges are supplied directly to the stitch operation, thus avoiding the need to detect compatible edges. However, note that bodies that do not intersect or touch will be grouped into one body, whereas calling api_imprint_complete followed by api_stitch on such bodies would leave them separate.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Errors:
b1 or b2 is a NULL pointer or does not point to a BODY.
b1 and b2 are the same body.
Effect: Changes model.
Journal: Available
Product(s): 3D ACIS Modeler
| b1 | (in/out) First body, modified by the operation. | |
| b2 | (in) Second body, deleted by the operation. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_selectively_imprint | ( | BODY * | tool, | |
| ENTITY_LIST & | tool_faces, | |||
| BODY * | blank, | |||
| ENTITY_LIST & | blank_faces, | |||
| logical | split_checking, | |||
| ENTITY_LIST & | intgraph_edges, | |||
| BoolOptions * | bool_opts, | |||
| AcisOptions * | ao = NULL | |||
| ) |
Performs an imprint operation using a subset of faces from the tool body and a subset of faces from the blank body.
Role: This API takes a list of faces from the tool body and a list of faces from the blank body. It intersects every face in tool_faces with every face in blank_faces and imprints the resulting intersection graph on both bodies.
If the argument split_checking is set to TRUE, checking will be performed to assure that all edges and vertices imprinted on the blank body contribute to the splitting of blank body faces. If they do not (e.g. there are dangling edges imprinted on the faces) then an exception will be thrown. If split_checking is set to FALSE, then all edges and vertices of the intersection graph will be imprinted, regardless of their contribution to face splitting.
Optionally, the API will return a list of the edges imprinted on the blank body via the argument intgraph_edges.
If annotations are turned on, SPLIT_ANNOTATIONs and IMPRINT_ANNOTATIONs will be added to the entities of the blank and tool bodies during the operation.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Errors:
NO_INTSCT: No intersection edges were found between the specified subsets of faces. IMPROPER_SPLIT: Checking discovered that improper face splitting had occurred. | tool | (in/out) Tool body. | |
| tool_faces | (in) Tool faces selected for imprinting. A NULL reference implies all faces should be used. | |
| blank | (in/out) Blank body. | |
| blank_faces | (in) Blank faces selected for imprinting and/or splitting. A NULL reference implies all faces should be used. | |
| split_checking | (in) Set to TRUE to check if all edges and vertices created by the imprint contribute to the splitting of blank faces. | |
| intgraph_edges | (out) Returned list of edges imprinted on the blank body. | |
| bool_opts | (in) Boolean options. Refer to BoolOptions for details. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_selectively_imprint | ( | BODY * | tool, | |
| ENTITY_LIST & | tool_faces, | |||
| BODY * | blank, | |||
| ENTITY_LIST & | blank_faces, | |||
| logical | split_checking = TRUE, |
|||
| ENTITY_LIST & | intgraph_edges = *(ENTITY_LIST *) NULL_REF, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
Performs an imprint operation using a subset of faces from the tool body and a subset of faces from the blank body.
Role: This API function takes a list of faces from the tool body and a list of faces from the blank body. It intersects every face in tool_faces with every face in blank_faces and imprints the resulting intersection graph on both bodies.
If the argument split_checking is set to TRUE, checking will be performed to assure that all edges and vertices imprinted on the blank body contribute to the splitting of blank body faces. If they do not (for example, there are dangling edges imprinted on the faces), then an exception will be thrown. If split_checking is set to FALSE, then all edges and vertices of the intersection graph will be imprinted, regardless of their contribution to face splitting.
Optionally, the API function will return a list of the edges imprinted on the blank body via the argument intgraph_edges.
If annotations are turned on, SPLIT_ANNOTATIONs and IMPRINT_ANNOTATIONs will be added to the entities of the blank and tool bodies during the operation.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Errors:
NO_INTSCT: No intersection edges were found between the specified subsets of faces. IMPROPER_SPLIT: Checking discovered that improper face splitting had occurred. | tool | (in/out) Tool body. | |
| tool_faces | (in) Tool faces selected for imprinting. A NULL reference implies all faces should be used. | |
| blank | (in/out) Blank body. | |
| blank_faces | (in) Blank faces selected for imprinting and/or splitting. A NULL reference implies all faces should be used. | |
| split_checking | (in) Set to TRUE to check if all edges and vertices created by the imprint contribute to the splitting of blank faces. | |
| intgraph_edges | (out) Returned list of edges imprinted on the blank body. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_selectively_intersect | ( | const int | number_faces, | |
| FACE * | tool_faces[], | |||
| FACE * | blank_faces[], | |||
| BoolOptions * | bool_opts, | |||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean API function to intersect an array of faces of one body with an array of faces of another body.
Role: This API function intersects each face in array of faces from the tool body with the corresponding face in an array of faces from the blank body. Thus, both arrays must have the same length, equal to number_faces. The resulting intersections are appended to the current intersection graph.
Note: api_boolean_start must be called before using this APIfunction.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Effect: System routine.
Journal: Available
Product(s): 3D ACIS Modeler
| number_faces | (in) Size of face arrays. | |
| tool_faces | (in) Array of tool body faces. | |
| blank_faces | (in) Array of blank body faces. | |
| bool_opts | (in) Boolean options. Refer to BoolOptions for details. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_selectively_intersect | ( | const int | number_faces, | |
| FACE * | tool_faces[], | |||
| FACE * | blank_faces[], | |||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean API function to intersect an array of faces of one body with an array of faces of another body.
Role: This API function intersects each face in array of faces from the tool body with the corresponding face in an array of faces from the blank body. Thus, both arrays must have the same length, equal to number_faces. The resulting intersections are appended to the current intersection graph.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Note: api_boolean_start must be called before using this API function.
Effect: System routine.
Journal: Available
Product(s): 3D ACIS Modeler
| number_faces | (in) Size of face arrays. | |
| tool_faces | (in) Array of tool body faces. | |
| blank_faces | (in) Array of blank body faces. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_slice_complete | ( | BODY * | tool, | |
| BODY * | blank, | |||
| SPAunit_vector const & | normal, | |||
| BODY *& | graph, | |||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean API function to complete a slice operation.
Role: This API function completes a slice operation. It is assumed that the necessary intersections have already been performed using other partial Boolean API functions. It returns a special wire body where each edge has two coedges. A normal vector can given in the special case when the tool body is a plane, causing this operation to sequence the resultant wires into non-overlapping loops of conventional sense. Generally, the normal vector should be set to *(SPAunit_vector*)NULL_REF.
Notes:
tool or blank is a NULL pointer. | tool | (in) Tool or slicing body. | |
| blank | (in) Blank body to be sliced. | |
| normal | (in) Normal about which wire edges at a vertex are to be ordered. | |
| graph | (out) Returned slice graph. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>
| outcome api_update_intersection | ( | FACE * | tool_face, | |
| const SPAtransf & | ttrans, | |||
| FACE * | blank_face, | |||
| const SPAtransf & | btrans, | |||
| const int | number_edges, | |||
| EDGE * | ssi_edges[], | |||
| logical | check_rels = TRUE, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
This is a partial Boolean API function to create a surf_surf_int intersection structure to be used in place of an actual intersection.
Role: This routine is passed a tool face and blank face together with an array of edges which represent the intersection of the two faces. A surf_surf_int structure is built using the geometry of these edges as the intersection of the two surfaces, thereby eliminating the need to intersect the faces themselves. To record this, an ATTRIB_FACEINT attribute is attached to the tool face and no intersection will be performed when these faces are to be intersected.
The logical argument check_rels specifies whether or not to check if the intersection edges really lie in the faces. This can be relatively expensive so may be avoided by passing FALSE, in which case the edge-face relationships are being guaranteed by the caller.
Coordinate Systems and Transformations: The intersection edges must be in the coordinate system of the blank body. For instance, if the blank body is in the world coordinate system (that is, the blank body does not have a transformation attached to it) then the intersection edges will also be specified in world coordinates. If the blank body does have a transformation attached to it, the intersection edges will be in the space of the untransformed blank body (that is, with respect to the world coordinate system the intersection edges will be transformed by the inverse of the transform on the blank body). The transformation associated with the tool face, ttrans, must be the transformation to convert from the coordinate system of the tool body into the coordinate system of the blank body. If Tt is the transformation on the tool body and Tb is the transformation on the blank body, then the transformation from tool coordinates to blank coordinates, is: Ttb = Tt * Tb-1. If both the tool and blank bodies are in the world coordinate system, then ttrans will be the identity transformation. The transformation associated with the blank face, btrans, must be the identity transformation.
Note: A call to this API function should be followed by a call to api_fixup_intersection when imprinting multiple edges on a face, but not during a typical Boolean operation.
For additional information on partial Boolean operations refer to the Technical Article Partial Booleans.
Errors: NULL pointer to tool or blank face.
Effect: System routine.
Journal: Available
Product(s): 3D ACIS Modeler
| tool_face | (in) Tool face. | |
| ttrans | (in) Tool body transform. | |
| blank_face | (in) Blank face. | |
| btrans | (in) Blank body transform. | |
| number_edges | (in) Number of edges in ssi_edges. | |
| ssi_edges | (in) Edges to make up the surf_surf_int structure. | |
| check_rels | (in) Flag indicating whether or not to avoid checking the edge-face relationships. | |
| ao | (in) ACIS options such as versioning and journaling. |
include <boolapi.hxx>