|
Classes | |
| class | chamfer_wire_options |
Set specific options for api_chamfer_wire_vertex Limitations: Not implemented yet. More... | |
Functions | |
| outcome | api_accurate_bs3_approximation (FACE *face, double requested_tol, bs3_surface &fit_sur=*(bs3_surface *) NULL_REF, AcisOptions *ao=NULL) |
| Recomputes the 3D B-spline surface approximation, using the newer algorithm. | |
| outcome | api_body_to_1d (BODY *body, logical fix_normals, const ENTITY_LIST &ref_faces=*(ENTITY_LIST *) NULL_REF, AcisOptions *ao=NULL) |
| Converts a double-sided body to a single-sided body. | |
| outcome | api_body_to_2d (BODY *body, AcisOptions *ao=NULL) |
| Converts single-sided faces to double-sided faces. | |
| outcome | api_chamfer_wire_vertex (VERTEX *ver, double offset, chamfer_wire_options *co=NULL, AcisOptions *ao=NULL) |
| Chamfers a wire at a given vertex. | |
| outcome | api_enclose_void (FACE *face, REVBIT sense, logical lumps, AcisOptions *ao=NULL) |
| Modifies an enclosing set of faces from void bounding to material bounding. | |
| outcome | api_fillet_vertex (VERTEX *vert, double radius, EDGE *edge1=NULL, EDGE *edge2=NULL, AcisOptions *ao=NULL) |
| Fillets a wire at a given vertex. | |
| outcome | api_modify_ellipse (EDGE *ell, const SPAposition ¢er, const SPAunit_vector &normal, const SPAvector &major_axis, double radius_ratio, double start_angle, double end_angle, AcisOptions *ao=NULL) |
| Modifies an elliptical edge. | |
| outcome | api_modify_line (EDGE *line, const SPAposition &st_pt, const SPAposition &end_pt, AcisOptions *ao=NULL) |
| Modifies a linear edge to pass through two given points. | |
| outcome | api_orient_wire (COEDGE *coed, AcisOptions *ao=NULL) |
| Checks the wire and reorients it to make the given coedge the starting coedge in case of good closed wire. | |
| outcome | api_reset_bs3_approximation (FACE *face, double &achieved_tol, double requested_tol, bs3_surface &fit_sur=*(bs3_surface *) NULL_REF, logical force_regeneration=FALSE, AcisOptions *ao=NULL) |
Recomputes the bs3_surface approximation, using the default algorithm. | |
| outcome | api_reverse_body (BODY *body, AcisOptions *ao=NULL) |
| Reverses the orientations of all coedges in the body. | |
| outcome | api_reverse_face (FACE *&face, AcisOptions *ao=NULL) |
| Reverses the sense of a face. | |
| outcome | api_reverse_wire (WIRE *wire, AcisOptions *ao=NULL) |
| Reverses the direction (sense) of a wire. | |
| outcome | api_reverse_wire (ENTITY *body, AcisOptions *ao=NULL) |
| Reverses the direction (sense) of a wire body. | |
| outcome | api_set_pcurve_tightness (COEDGE *coed, double tol, bs2_curve &fit_cur=*(bs2_curve *) NULL_REF, logical use_approx_surf=FALSE, logical force_regeneration=FALSE, AcisOptions *ao=NULL) |
Recalculates pcurve on a coedge so that bs2_curve has a given tolerance. | |
| outcome | api_trim_2curves (const entity_with_ray &crv1, const entity_with_ray &crv2, AcisOptions *ao=NULL) |
| Trims two edges to their intersection. | |
| outcome | api_trim_chain (int num_crv, const entity_with_ray *crvs, logical close, ENTITY_LIST &trimmed_crvs, AcisOptions *ao=NULL) |
| Trims a list of edges so that they form a contiguous chain. | |
| outcome | api_trim_curve (const entity_with_ray &eray1, const SPAposition *trim_pt, const entity_with_ray *eray2, AcisOptions *ao=NULL) |
| Trims one end of an edge at a given position or at the intersection with another edge. | |
| outcome | api_trim_middle (const entity_with_ray &crv, const SPAposition *trim_pt1, const entity_with_ray *trimr1, const SPAposition *trim_pt2, const entity_with_ray *trimr2, EDGE *&edge, AcisOptions *ao=NULL) |
| Trims the middle of an edge. | |
| outcome api_accurate_bs3_approximation | ( | FACE * | face, | |
| double | requested_tol, | |||
| bs3_surface & | fit_sur = *(bs3_surface *) NULL_REF, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
Recomputes the 3D B-spline surface approximation, using the newer algorithm.
Role: Recomputes the 3D B-spline surface approximation (to a requested tolerance), always using the newer, more robust approach. It also removes internal double knots whenever possible. If the requested tolerance is non-positive, SPAresfit is used.
The 3D B-spline surface is returned, if requested. It is still owned by the face's surface, however.
Effect: Changes model
Journal: Not Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| face | input spline face. | |
| requested_tol | requested fit tolerance. | |
| fit_sur | output bs3_surface. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_body_to_1d | ( | BODY * | body, | |
| logical | fix_normals, | |||
| const ENTITY_LIST & | ref_faces = *(ENTITY_LIST *) NULL_REF, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
Converts a double-sided body to a single-sided body.
Role: When fix_normals is set to FALSE, this function merely marks the faces as single-sided, without checking to see if the faces on the resulting single-sided body have consistent normal directions. For performance purposes, the user may want to use this setting when confident that no such inconsistencies exist. To guard against the creation of an invalid body; however, we recommend that this flag be set to TRUE. In that case, the user may provide a list of faces (one on each shell of the body) via the argument ref_faces, which specifies those faces whose normals are to remain unchanged if any face normals are found to have an inconsistent orientation. If this argument is not provided, or if any of the body's shells is not represented in the list, this function uses the first face on each of the unrepresented shells to determine the orientation of the result.
Note: Support for the fix_normals option does not extend to either non-manifold bodies or to non-orientable manifold sheets (for example, a Moebius strip). If this option is nevertheless used in conjunction with such objects, undesirable results can occur. In the case of non-manifold bodies, face normals may be partially adjusted; in the case of non-orientable sheets, a system error (UNSUPPORTED_TOPOLOGY) will be thrown.
Limitations: The fix_normals option is not supported for non-manifold bodies or for non-orientable sheets.
Errors: The pointer to the body is NULL, one of more of the entities in ref_faces is not a face, one or more of the faces in ref_faces is owned by another body, or two or more of the faces in ref_faces belong to the same shell.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| body | the body to be modified. | |
| fix_normals | flag to check and fix inconsistent face normals. | |
| ref_faces | optional list of faces whose normals are to remain unchanged by the operation. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_body_to_2d | ( | BODY * | body, | |
| AcisOptions * | ao = NULL | |||
| ) |
Converts single-sided faces to double-sided faces.
Role: This API function converts every single-sided face in the given body into a double-sided face; that is, a sheet face. Each shell will be owned by a separate lump.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| body | body to be converted. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_chamfer_wire_vertex | ( | VERTEX * | ver, | |
| double | offset, | |||
| chamfer_wire_options * | co = NULL, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
Chamfers a wire at a given vertex.
Role: Replaces a vertex with a linear edge at a given offset. The offset is calculated relative to the incoming pair of edges, not the vertex. The new edge and vertices will meet the two edges that are connected to the given vertex.
Limitations: The vertex is connected to two edges.
The vertex is not smooth, i.e. the tangential directions of the edges are different.
Different offsets from the vertex are not supported.
The operation should be performed for one vertex at a time and only that vertex will be removed.
wire-body self-intersection is not detected.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| ver | vertex to chamfer. | |
| offset | offset of the chamfer. | |
| co | for future use, pass NULL if ao is passed. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_enclose_void | ( | FACE * | face, | |
| REVBIT | sense, | |||
| logical | lumps, | |||
| AcisOptions * | ao = NULL | |||
| ) |
Modifies an enclosing set of faces from void bounding to material bounding.
Role: This API function walks outward from the face along the closest radial enclosing faces until a volume is enclosed or NULL coedges are encountered. Changes the containment data on the faces that are detected so they no longer contain a void. A double-sided, OUTSIDE face is changed to single-sided (unless it is detected twice in the search) and a single-sided face is changed to double-sided, INSIDE. If the lumps argument is TRUE, search for lumps that contain or are contained by the face group detected, and change the face containment information to reflect a filling of the void. Does not change any lumps that are not directly contained or containing; i.e., are walled-off from the void, containment-wise, by another lump. Merges any changed lumps into the original lump. Requires no action if the side of the face given is already a material containing.
Errors: Pointer to face is NULL or not to a FACE.
Effect: Changes model
Journal: Not Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| face | input face. | |
| sense | inside/outside sense with respect to the input face. | |
| lumps | search for lumps if TRUE. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_fillet_vertex | ( | VERTEX * | vert, | |
| double | radius, | |||
| EDGE * | edge1 = NULL, |
|||
| EDGE * | edge2 = NULL, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
Fillets a wire at a given vertex.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| vert | vertex to fillet at. | |
| radius | radius of fillet. | |
| edge1 | for future use. | |
| edge2 | for future use. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_modify_ellipse | ( | EDGE * | ell, | |
| const SPAposition & | center, | |||
| const SPAunit_vector & | normal, | |||
| const SPAvector & | major_axis, | |||
| double | radius_ratio, | |||
| double | start_angle, | |||
| double | end_angle, | |||
| AcisOptions * | ao = NULL | |||
| ) |
Modifies an elliptical edge.
Role: Modifies an elliptical edge according to the given ellipse parameters. This involves changing the positions of the edge vertices as well as modifying the curve, which serves as the edge geometry.
Effect: Changes model
Journal: Not Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| ell | elliptical edge to modify. | |
| center | new center. | |
| normal | new normal. | |
| major_axis | new major axis. | |
| radius_ratio | radius ratio. | |
| start_angle | new start angle in radians. | |
| end_angle | new end angle in radians. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_modify_line | ( | EDGE * | line, | |
| const SPAposition & | st_pt, | |||
| const SPAposition & | end_pt, | |||
| AcisOptions * | ao = NULL | |||
| ) |
Modifies a linear edge to pass through two given points.
Role: Modifies a linear edge to pass through two given end points. This involves changing the positions of the two edge vertices as well as modifying the straight line, which serves as the edge geometry.
Effect: Changes model
Journal: Not Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| line | linear edge to modify. | |
| st_pt | new start position. | |
| end_pt | new end position. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_orient_wire | ( | COEDGE * | coed, | |
| AcisOptions * | ao = NULL | |||
| ) |
Checks the wire and reorients it to make the given coedge the starting coedge in case of good closed wire.
Role: Checks and orients wire from given coedge. For good open wires, nothing is modified. In case of good closed wire, then the wire is oriented so that the given coedge becomes the starting coedge. If the wire is branched or has bad start/end topology connections, appropriate error messages are thrown. However, the bad wire does not get fixed.
Limitations: For wires with branches or bad start/end topology connections, nothing is done to modify (fix) the wire.
Errors: If the wire is branched or has bad start/end topology connections.
Effect: Good closed wires are oriented such that given coedge is made the start pointer.
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| coed | the coedge to be checked. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_reset_bs3_approximation | ( | FACE * | face, | |
| double & | achieved_tol, | |||
| double | requested_tol, | |||
| bs3_surface & | fit_sur = *(bs3_surface *) NULL_REF, |
|||
| logical | force_regeneration = FALSE, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
Recomputes the bs3_surface approximation, using the default algorithm.
Role: Recomputes the bs3_surface approximation (to a requested tolerance) using the default method for the particular spl_sur on the spline of the face. If a non-negative requested_tol is supplied, the new bs3_surface approximation will be computed to that fit tolerance, otherwise a default tolerance is used if there is not already an approximation there.
The fit tolerance of the bs3_surface approximation is returned. Also, the bs3_surface is returned, if requested. It is still owned by the face's surface, however. The achieved_tol is returned as -1 either if it failed to refit the entire B-spline to the requested tolerance, or if the fit was already good enough. The face's SURFACE is replaced if the B-spline was successfully refitted. This is so that applications can roll back to the state before the improved fit was created.
Effect: Changes model
Journal: Not Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| face | input spline face. | |
| achieved_tol | achieved fit tolerance. | |
| requested_tol | requested fit tolerance. | |
| fit_sur | output bs3_surface. | |
| force_regeneration | always recompute. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_reverse_body | ( | BODY * | body, | |
| AcisOptions * | ao = NULL | |||
| ) |
Reverses the orientations of all coedges in the body.
Role: Also reverses face orientations and the orientation of loops within the faces.
Errors: Pointer to body is NULL or not to a BODY.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| body | body to be reversed. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_reverse_face | ( | FACE *& | face, | |
| AcisOptions * | ao = NULL | |||
| ) |
Reverses the sense of a face.
Role: This API function reverses the sense of a face; i.e., makes the face material void (flips the normal). Also, alters the senses of the coedges to avoid changing the shape of the face.
Errors: Pointer to face is NULL or not to a FACE.
Limitations: The function does not check to see if the face belongs to a solid, nor does it compensate for side effects caused by reversal of the face. The user must ensure that the function is called only for independent faces.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| face | same face is modified. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_reverse_wire | ( | WIRE * | wire, | |
| AcisOptions * | ao = NULL | |||
| ) |
Reverses the direction (sense) of a wire.
Role: This API function reverses the sense of a wire by negating the sense of each coedge. If the wire has no branches or loops, and the first coedge of the wire was the start of the chain of coedges, then the first coedge of the reversed wire will be the new start of the chain of coedges. Otherwise, the wire's first coedge will not be changed.
Errors: Entity NULL or not a wire.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| wire | wire to reverse. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_reverse_wire | ( | ENTITY * | body, | |
| AcisOptions * | ao = NULL | |||
| ) |
Reverses the direction (sense) of a wire body.
Role: This API function reverses the sense of a wire body by negating the sense of each coedge of each wire. If a wire has no branches or loops, and the first coedge of the wire was the start of the chain of coedges, then the first coedge of the reversed wire will be the new start of the chain of coedges. Otherwise, the wire's first coedge will not be changed.
Errors: Entity NULL or not a wire.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| body | wire body to reverse. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_set_pcurve_tightness | ( | COEDGE * | coed, | |
| double | tol, | |||
| bs2_curve & | fit_cur = *(bs2_curve *) NULL_REF, |
|||
| logical | use_approx_surf = FALSE, |
|||
| logical | force_regeneration = FALSE, |
|||
| AcisOptions * | ao = NULL | |||
| ) |
Recalculates pcurve on a coedge so that bs2_curve has a given tolerance.
Role: Recalculates pcurve (or adds one if not present) on a given coedge so that the pcurve's bs2_curve lies within a specified fit tolerance. It is the caller's responsibility to delete the requested bs2_curve. When the logical force_regeneration is TRUE, a new pcurve will be created even when the fit tolerance of the original pcurve is zero. Otherwise, we assume pcurves with fit tolerance of zero are precise.
Effect: Changes model
Journal: Not Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| coed | input coedge. | |
| tol | fit tolerance. | |
| fit_cur | output bs2_curve. | |
| use_approx_surf | use surface approx. | |
| force_regeneration | always recompute. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_trim_2curves | ( | const entity_with_ray & | crv1, | |
| const entity_with_ray & | crv2, | |||
| AcisOptions * | ao = NULL | |||
| ) |
Trims two edges to their intersection.
Role: This API function trims the two edges, crv1 and crv2, to the intersection that is the closest to the average of the two rays.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| crv1 | edge to trim and a position on the part to keep. | |
| crv2 | edge to trim and a position on the part to keep. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_trim_chain | ( | int | num_crv, | |
| const entity_with_ray * | crvs, | |||
| logical | close, | |||
| ENTITY_LIST & | trimmed_crvs, | |||
| AcisOptions * | ao = NULL | |||
| ) |
Trims a list of edges so that they form a contiguous chain.
Role: This API function adds all edges in the input list to the entity list trimmed_crvs. If an edge appears in the input list more than once, it is copied and the copy is added to trimmed_crvs. Each pair of edges is then trimmed using api_trim_2curves. If close is TRUE, the first and last edges are also trimmed.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| num_crv | number of edges. | |
| crvs | array of edges. | |
| close | whether to form a closed chain or not. | |
| trimmed_crvs | list of trimmed edges returned. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_trim_curve | ( | const entity_with_ray & | eray1, | |
| const SPAposition * | trim_pt, | |||
| const entity_with_ray * | eray2, | |||
| AcisOptions * | ao = NULL | |||
| ) |
Trims one end of an edge at a given position or at the intersection with another edge.
Role: The edge is trimmed either at a given position or at the intersection with another edge. To trim to a position, specify a position in trim_pt and NULL for eray2. The edge is trimmed to the normal projection of the position onto the edge's curve. To trim to the intersection with another edge, specify NULL for trim_pt and an entity_with_ray for eray2. The edge is trimmed to the intersection with the edge given in eray2 that is closest to the ray given in eray2.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| eray1 | edge to trim and a position on the part to keep. | |
| trim_pt | position to trim to or NULL. | |
| eray2 | edge to trim to or NULL returned. | |
| ao | ACIS options. |
include <cstrapi.hxx>
| outcome api_trim_middle | ( | const entity_with_ray & | crv, | |
| const SPAposition * | trim_pt1, | |||
| const entity_with_ray * | trimr1, | |||
| const SPAposition * | trim_pt2, | |||
| const entity_with_ray * | trimr2, | |||
| EDGE *& | edge, | |||
| AcisOptions * | ao = NULL | |||
| ) |
Trims the middle of an edge.
Role: Using the trim data, this API function computes two trim points on the edge to be trimmed. If trim_pt1 or trim_pt2 is non-NULL, the corresponding trim point is the normal projection of the position on the edge's curve; otherwise, the trim point is the intersection of the edges closest to the ray associated with trim_r1 or trim_r2. The action performed depends on whether the edge is closed and periodic.
For a closed periodic edge, only a single edge results from the trim. The part of the edge on which the pick was made is removed. The edge is NULL.
For a non-periodic edge, the part of the edge between the trim points is removed. If the trim points are both on the interior of the edge; i.e., they are not the start or end points, the trim results in two edges. The original edge is modified as the first edge, and the second edge is returned in edge. If one of the trim points is not in the interior of the edge, the original edge is modified, and edge is NULL.
Effect: Changes model
Journal: Available
Product(s): 3D ACIS Exchange, 3D Viz Exchange, 3D ACIS Modeler
| crv | edge to trim and a position on the part to keep. | |
| trim_pt1 | position to trim to or NULL. | |
| trimr1 | edge to trim to or NULL. | |
| trim_pt2 | position to trim to or NULL. | |
| trimr2 | edge to trim to or NULL. | |
| edge | newly created edge or NULL returned. | |
| ao | ACIS options. |
include <cstrapi.hxx>