Home

Tweak
[Local Operations]

Collaboration diagram for Tweak:

Functions

outcome api_convert_pipes (BODY *body, lop_options *pLopts, AcisOptions *ao=NULL)
 Replaces the geometry of any faces in the supplied array which currently are pipe_spl_sur splines with rb_blend_spl_sur splines.
outcome api_convert_pipes (int const nface, FACE *face[], lop_options *pLopts, AcisOptions *ao=NULL)
 Replaces the geometry of any faces in the supplied array which currently are pipe_spl_sur splines with rb_blend_spl_sur splines.
outcome api_detect_depression (const ENTITY *seed_ent, ENTITY_LIST &depression_faces, const detect_feature_options *df_opts=NULL)
 This API detects depression features on the model and returns a collection of contiguous faces defining the depression that includes the supplied seed entity.
outcome api_detect_protrusion (const ENTITY *seed_ent, ENTITY_LIST &protrusion_faces, const detect_feature_options *df_opts=NULL)
 This API detects protrusion features on the model and returns a collection of contiguous faces defining the protrusion that includes the supplied seed entity.
outcome api_sweep_more (int nface, FACE *face[], double dist, const SPAposition &box_low, const SPAposition &box_high, lop_options *pLopts, AcisOptions *ao=NULL)
 Sweeps an array of faces along a path defined by the faces adjacent the given faces.
outcome api_tweak_extend_faces (const int &nface, FACE *face[], SURFACE *tool_surface[], const int &nedge, EDGE *edge[], CURVE *tool_curve[], const SPAposition &box_low, const SPAposition &box_high, lop_options *pLopts, AcisOptions *ao=NULL)
 Extends an array of surfaces for use in api_tweak_faces.
outcome api_tweak_extend_faces (int const nface, FACE *face[], SURFACE *tool_surface[], SPAposition box_low, SPAposition box_high, AcisOptions *ao=NULL)
 Extends an array of surfaces for use in api_tweak_faces.
outcome api_tweak_faces (int const nface, FACE *face[], SURFACE *tool_surface[], int reverse[], int const nedge, EDGE *edge[], CURVE *tool_curve[], const int nvertex, VERTEX *vertex[], APOINT *tool_point[], SPAposition &box_low, SPAposition &box_high, lop_options *pLopts, AcisOptions *ao=NULL)
 Tweaks an array of faces to new surfaces.
outcome api_tweak_faces (int const nface, FACE *face[], SURFACE *tool_surface[], int reverse[], const SPAposition &box_low, const SPAposition &box_high, lop_options *pLopts, AcisOptions *ao=NULL)
 Tweaks an array of faces to new surfaces.
outcome api_tweak_faces_init (int const nface, FACE *face[], SURFACE *tool_surface[], int reverse[], ENTITY_LIST &multiple_sols, const SPAposition &box_low, const SPAposition &box_high, lop_options *pLopts, AcisOptions *ao=NULL)
 Adds attributes to edges completing the initial stage of tweak.
outcome api_tweak_fix_edge (EDGE *ed, CURVE *cu, logical correct_dir, AcisOptions *ao=NULL)
 Fixes an edge prior to a tweak.
outcome api_tweak_fix_vertex (VERTEX *vt, APOINT *ap, logical set_tolerant, AcisOptions *ao=NULL)
 Fixes a vertex prior to a tweak.
outcome api_tweak_open_circuits (int nEdge, EDGE *edges[], SURFACE *tool_surfaces[], int reverse[], const SPAposition &box_low, const SPAposition &box_high, lop_options *lopts, AcisOptions *ao)
 Tweaks a list of free-edge loops to new surfaces.
outcome api_tweak_pick_edge_solution (EDGE *edge, int soln_no, CURVE *curve=NULL, AcisOptions *ao=NULL)
 Specifies an edge solution that a subsequent tweak will use.
outcome api_tweak_query_edge_solutions (EDGE *edge, ENTITY_LIST &curve_list, AcisOptions *ao=NULL)
 Returns an ENTITY_LIST of CURVEs that are possible solutions for an EDGE's geometry in a tweak.
outcome api_tweak_replace_face (FACE *the_face, ENTITY *the_surface, const SPAposition &box_low, const SPAposition &box_high, lop_options *lopts, AcisOptions *ao)
 Replaces the surface of a face with given tool surface.
outcome api_tweak_tighten_edge (EDGE *the_edge, lop_options *lopts, AcisOptions *ao)
 Replaces the geometry of the input tolerant sharp edge with precise non-tolerant geometry

Role: Given a tolerant sharp edge, it is replaced with a non-tolerant edge by intersecting the adjacent surfaces.
outcome api_tweak_to_body (int nEdge, EDGE *edges[], BODY *targetBody, int boolType, const int numPoints, const SPAposition *testPoints, const SPAposition &boxLow, SPAposition &boxHigh, lop_options *pLopts, AcisOptions *ao=NULL)
 Tweaks an open sheet body to a target body.
outcome api_tweak_to_body (int const nFace, FACE *face[], BODY *targetBody, int boolType, const int numPoints, const SPAposition *testPoints, const SPAposition &boxLow, SPAposition &boxHigh, lop_options *pLopts, AcisOptions *ao=NULL)
 Tweaks an array of faces to a body.

Function Documentation

outcome api_convert_pipes ( BODY body,
lop_options pLopts,
AcisOptions ao = NULL 
)

Replaces the geometry of any faces in the supplied array which currently are pipe_spl_sur splines with rb_blend_spl_sur splines.



Topology Changes:

Refer to the topology changes listed for the function, api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Errors: Refer to the Errors listed for the function, api_tweak_faces

Limitations: Refer to the Limitations listed for the function, api_tweak_faces

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
body body to convert.
pLopts local operations options. NULL argument will set the default values.
ao ACIS options.

include <lop_api.hxx>

outcome api_convert_pipes ( int const   nface,
FACE face[],
lop_options pLopts,
AcisOptions ao = NULL 
)

Replaces the geometry of any faces in the supplied array which currently are pipe_spl_sur splines with rb_blend_spl_sur splines.



Topology Changes:

Refer to the topology changes listed for the function api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Errors: Refer to the Errors listed for the function, api_tweak_faces

Limitations: Refer to the Limitations listed for the function, api_tweak_faces

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
nface number of faces.
face faces being converted.
pLopts local operations options. NULL argument will set the default values.
ao ACIS options.

include <lop_api.hxx>

outcome api_detect_depression ( const ENTITY seed_ent,
ENTITY_LIST depression_faces,
const detect_feature_options df_opts = NULL 
)

This API detects depression features on the model and returns a collection of contiguous faces defining the depression that includes the supplied seed entity.

Depressions include features like cut, pocket, slot and hole.

Limitations: Mixed convexity edges are not handled well.

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
seed_ent seed face on the model
depression_faces face list of detected depression
df_opts detect feature options

include <lop_api.hxx>

outcome api_detect_protrusion ( const ENTITY seed_ent,
ENTITY_LIST protrusion_faces,
const detect_feature_options df_opts = NULL 
)

This API detects protrusion features on the model and returns a collection of contiguous faces defining the protrusion that includes the supplied seed entity.

Protrusions include bosses and islands.

Limitations: Mixed convexity edges are not handled well.

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
seed_ent seed face on the model
protrusion_faces face list of detected protrusion
df_opts detect feature options

include <lop_api.hxx>

outcome api_sweep_more ( int  nface,
FACE face[],
double  dist,
const SPAposition box_low,
const SPAposition box_high,
lop_options pLopts,
AcisOptions ao = NULL 
)

Sweeps an array of faces along a path defined by the faces adjacent the given faces.



Role: Replaces surfaces of supplied faces with surfaces moved along the sweep path. The sweep path is determined by a face that is not in that set of faces given but is adjacent to at least one of those faces in the set. This face must determine the sweep path. This means that it must be a cone, cylinder, plane, torus, sweep_spl_sur, rot_spl_sur, sum_spl_sur, or an offset of one of these surfaces.

The optional intersection box limits the size of intersections between surfaces which might otherwise be very long. It cannot be used to choose faces. Its main purpose is to speed up complicated cases where the intersection curves might be very long, thus improving performance. The box must contain the final faces and if omitted defaults to the size box.

Topology Changes:

Refer to the topology changes listed for the function, api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Errors: In addition to the following, refer to the errors listed for the function, api_tweak_faces

Some of the following errors will return a standard_error_info object in the API outcome. In these cases, the type of ENTITY returned, in parentheses, follows the error message below.

Distance must be non-zero, or error LOP_MOVE_BAD_TRANSFORM.

Rail and path information on adjacent swept face must be good, or error LOP_SWP_BAD_RAIL_OR_PATH (FACE *).

Limitations: If the first face is not planar and does not intersect the sweep path, ambiguous results may occur.

Refer to api_tweak_faces for more limitations.

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
nface number of faces.
face faces being moved.
dist distant to sweep faces.
box_low start of intersection box to be used.
box_high end of intersection box to be used.
pLopts local operations options. NULL argument will set the default values.
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_extend_faces ( const int &  nface,
FACE face[],
SURFACE tool_surface[],
const int &  nedge,
EDGE edge[],
CURVE tool_curve[],
const SPAposition box_low,
const SPAposition box_high,
lop_options pLopts,
AcisOptions ao = NULL 
)

Extends an array of surfaces for use in api_tweak_faces.



Role: Given an array of surfaces and the an array of faces that the surfaces will be tweaked into, the surfaces are automatically extended so that the tweak has a greater chance of being successful. Supplying a list of edges and their corresponding tweak curves, will help the algorithm come up with a better extension. The curves and edges which are supplied to the API have to be the image of the original edges after the tweak.

The curves underlying edges between two faces that are not directly involved in the tweak but adjacent to a face being tweaked may also be extended.

Topology Changes:

Refer to the topology changes listed for the function, api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Errors: In addition to the following, refer to the Errors listed for the function, api_tweak_faces

At least one face must be supplied, or error LOP_TWK_NO_FACE.

Faces must be valid, non-duplicate and from the same body, or error LOP_TWK_BAD_FACE (FACE*).

Tool surfaces must be valid or error LOP_TWK_BAD_SURFACE(FACE*).

Box, if supplied must be valid, or error LOP_BAD_BOX.

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
nface number of faces.
face faces being tweaked.
tool_surface new surfaces.
nedge number of edges for which the new geometry is know.
edge edges for which the new geometry is know.
tool_curve new curves.
box_low start of intersection box to be used.
box_high end of intersection box to be used.
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_extend_faces ( int const   nface,
FACE face[],
SURFACE tool_surface[],
SPAposition  box_low,
SPAposition  box_high,
AcisOptions ao = NULL 
)

Extends an array of surfaces for use in api_tweak_faces.



Role: Given an array of surfaces and the an array of faces that the surfaces will be tweaked into, the surfaces are automatically extended so that the tweak has a greater chance of being successful.

The curves underlying edges between two faces that are not directly involved in the tweak but adjacent to a face being tweaked may also be extended.

Topology Changes:

Refer to the topology changes listed for the function, api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Errors: In addition to the following, refer to the Errors listed for the function, api_tweak_faces

At least one face must be supplied, or error LOP_TWK_NO_FACE.

Faces must be valid, non-duplicate and from the same body, or error LOP_TWK_BAD_FACE (FACE*).

Tool surfaces must be valid or error LOP_TWK_BAD_SURFACE(FACE*).

Box, if supplied must be valid, or error LOP_BAD_BOX.

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
nface number of faces.
face faces being tweaked.
tool_surface new surfaces.
box_low start of intersection box to be used.
box_high end of intersection box to be used.
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_faces ( int const   nface,
FACE face[],
SURFACE tool_surface[],
int  reverse[],
int const   nedge,
EDGE edge[],
CURVE tool_curve[],
const int  nvertex,
VERTEX vertex[],
APOINT tool_point[],
SPAposition box_low,
SPAposition box_high,
lop_options pLopts,
AcisOptions ao = NULL 
)

Tweaks an array of faces to new surfaces.



Role: Replaces surfaces of supplied faces with supplied surfaces, taking the supplied reverse flags into consideration. Choose reverse flags carefully, as resulting body is not checked. Tweak will replace the original surface(s) with the user-supplied tool surface(s). The reverse bit depends on the relationship between the corresponding surfaces. It also takes into account the face sense of the corresponding tweak face(s). If the reverse bit is set to TRUE, then the FACE sense is switched; otherwise, it stays the same.

If curves and edges are supplied, then curves are used to replaced tangent, near tangent or free edge curves. If there are any free edges (sheet boundaries) whose faces are being tweaked, then the new curves must be supplied.

If points and vertices are supplied, then these points are used to replace vertices, which are located at tangent or near tangent intersections of edge curves.

The box_low and box_high arguments are used to limit any geometrical intersections, and so improve performance. Limiting the intersection improves performance. The box must contain the final faces and if omitted defaults to the size box.

Topology Changes:

The topology changes performed by tweak_faces on the tweaked faces and their neighbors are:

Mergeable edges and vertices on the supplied faces will be merged out.

Edges and vertices between faces that are tweaked to the same geometry will also be merged out.

Two edge vertices on the supplied faces between edges on the same geometrical non analytic intersection curve, which are not presently mergeable elsewhere, will be merged out by lop:tweak-faces if the option lop_merge_vertex is set on, which is the default setting.

Vertices with more than three edges may split into two or more vertices during a local operation. Single inverted faces, needed to fill any gap in the body, will be made (if two or more inverted faces are needed, the operation will fail).

Isolated single edge loops may degenerate exactly to a point or be removed altogether and their faces will be deleted when appropriate.

Edges in multi-edge loops may degenerate exactly to a point and will be removed.

Where an edge exactly degenerates to a point in a multi edge loop, the edges either side will be detected becoming fully or partially coincident, and the loop repaired by splitting it into valid and degenerate loops. Degenerate loops will be deleted, and their faces when appropriate.

When faces have been deleted, their shells and lumps will be repartitioned and split, if necessary.

The option lop_ff_int switches on face face intersection checking on the result body. The default for the option is off. If the option is switched on and a face face intersection is found in the body, the operation fails.

The self intersecting bodies repair is controlled by the lop_options class. It is enabled by default.

Geometry Changes:

The geometry changes performed by tweak_faces on the tweaked faces and their neighbors are:

pipe_spl_sur spline surfaces will be converted to rb_blend_spl_sur spline surfaces the supplied faces and their neighbors if the option lop_convert_pipe is set on, which is the default setting.

Errors: Some of the following errors will return a standard_error_info object in the API outcome. In these cases, the type of ENTITY returned, in parentheses, follows the error message below. (When the ENTITY is new and will be lost on rollback, no standard_error_info object is returned).

At least one face must be supplied, or error LOP_TWK_NO_FACE.

Faces must be valid, non-duplicate and from the same body, or error LOP_TWK_BAD_FACE (FACE*).

Tool surfaces must be valid, or error LOP_TWK_BAD_SURFACE (FACE*).

Body must be manifold, or error LOP_TWK_NON_MANIFOLD (COEDGE*).

New surface geometries must intersect consistently or the intersection has to prespecified by supplying tool curves, otherwise errors LOP_TWK_NO_EDGE (EDGE*) no solution for an edge.
  LOP_TWK_NO_VERT (VERTEX*) no solution for a vertex.

Internal algorithmic problems produce error LOP_TWK_INTERNAL.

Unpermitted topology changes, if detected, will produce the error LOP_TWK_TOPOL_CHANGE (FACE*).

Box, if supplied, must be valid, or error LOP_BAD_BOX.

Limitations: Body must be manifold.

No other topology changes than those documented above are permitted. Tweak_faces does not extend the geometry of the tool surfaces or their neighbors (unlike the other local operations which do).

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
nface number of faces.
face faces being tweaked.
tool_surface new surfaces.
reverse flags to reverse new surfaces; zero = leave as-is, nonzero = reverse.
nedge number of edges.
edge edges being tweaked.
tool_curve new curves.
nvertex number of vertices.
vertex vertices being tweaked.
tool_point new points.
box_low start of intersection box to be used.
box_high end of intersection box to be used.
pLopts local operations options. NULL argument will set the default values.
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_faces ( int const   nface,
FACE face[],
SURFACE tool_surface[],
int  reverse[],
const SPAposition box_low,
const SPAposition box_high,
lop_options pLopts,
AcisOptions ao = NULL 
)

Tweaks an array of faces to new surfaces.



Role: Replaces surfaces of supplied faces with supplied surfaces, taking the supplied reverse flags into consideration. Choose reverse flags carefully, as resulting body is not checked. Tweak will replace the original surface(s) with the user-supplied tool surface(s). The reverse bit depends on the relationship between the corresponding surfaces. It also takes into account the face sense of the corresponding tweak face(s). If the reverse bit is set to TRUE, then the FACE sense is switched; otherwise, it stays the same.

The box_low and box_high arguments are used to limit any geometrical intersections and so improve performance. Limiting the intersection improves performance. The box must contain the final faces and if omitted, defaults to the size box.

Topology Changes:

The topology changes performed by tweak_faces on the tweaked faces and their neighbors are:

Mergeable edges and vertices on the supplied faces will be merged out.

Edges and vertices between faces that are tweaked to the same geometry will also be merged out.

Two edge vertices on the supplied faces between edges on the same geometrical non-analytic intersection curve, which are not presently mergeable elsewhere, will be merged out by lop:tweak-faces if the option lop_merge_vertex is set on, which is the default setting.

Vertices with more than three edges may split into two or more vertices during a local operation. Single inverted faces, needed to fill any gap in the body, will be made (if two or more inverted faces are needed, the operation will fail).

Isolated single edge loops may degenerate exactly to a point or be removed altogether, and their faces will be deleted when appropriate.

Edges in multi-edge loops may degenerate exactly to a point and will be removed.

Where an edge exactly degenerates to a point in a multi-edge loop, the edges either side will be detected becoming fully or partially coincident, and the loop repaired by splitting it into valid and degenerate loops. Degenerate loops will be deleted, and their faces when appropriate.

When faces have been deleted, their shells and lumps will be repartitioned and split, if necessary.

The option lop_ff_int switches on face-face intersection checking on the result body. The default for the option is off. If the option is switched on and a face-face intersection is found in the body, the operation fails.

The self intersecting bodies repair is controlled by the lop_options class. It is enabled by default.

Geometry Changes:

The geometry changes performed by tweak_faces on the tweaked faces and their neighbors are:

pipe_spl_sur spline surfaces will be converted to rb_blend_spl_sur spline surfaces in the supplied faces and their neighbors if the option lop_convert_pipe is set on, which is the default setting.

Errors: Some of the following errors will return a standard_error_info object in the API outcome. In these cases, the type of ENTITY returned, in parentheses, follows the error message below. (When the ENTITY is new and will be lost on rollback, no standard_error_info object is returned).

At least one face must be supplied, or error LOP_TWK_NO_FACE.

Faces must be valid, non-duplicate, and from the same body, or error LOP_TWK_BAD_FACE (FACE*).

Tool surfaces must be valid, or error LOP_TWK_BAD_SURFACE (FACE*).

Body must be manifold, or error LOP_TWK_NON_MANIFOLD (COEDGE*).

Body must be solid, or error LOP_TWK_FREE_EDGE (COEDGE*).

New surface geometries must intersect consistently, or errors LOP_TWK_NO_EDGE (EDGE*) no solution for an edge.
  LOP_TWK_NO_VERT (VERTEX*) no solution for a vertex.

Internal algorithmic problems produce error LOP_TWK_INTERNAL.

Unpermitted topology changes, if detected, will produce the error LOP_TWK_TOPOL_CHANGE (FACE*).

Box, if supplied, must be valid, or error LOP_BAD_BOX.

Limitations: Body must be manifold and solid.

No other topology changes than those documented above are permitted. Tweak_faces does not extend the geometry of the tool surfaces or their neighbors (unlike the other local operations which do).

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
nface number of faces.
face faces being tweaked.
tool_surface new surfaces.
reverse flags to reverse new surfaces; zero = leave as-is, nonzero = reverse.
box_low start of intersection box to be used.
box_high end of intersection box to be used.
pLopts local operations options. NULL argument will set the default values.
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_faces_init ( int const   nface,
FACE face[],
SURFACE tool_surface[],
int  reverse[],
ENTITY_LIST multiple_sols,
const SPAposition box_low,
const SPAposition box_high,
lop_options pLopts,
AcisOptions ao = NULL 
)

Adds attributes to edges completing the initial stage of tweak.



Role: Completes the initial stage of a tweak where attributes are added to edges. Returns a list of edges that have more than one possible solution so the user may pick which solution the tweak uses in the next stage.

To complete the tweak, use api_tweak_faces, which will continue the tweak without duplicating the work already done.

The box low and high arguments are used to limit any geometrical intersections. Limiting the intersection improves performance. The box must contain the final faces. If omitted, it defaults to the size box.

Refer to the function api_tweak_faces for a complete description.

Topology Changes:

Refer to the topology changes listed for the function, api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Errors: Refer to the Errors listed for the function api_tweak_faces

Limitations: Refer to the Limitations listed for the function, api_tweak_faces

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
nface number of faces.
face faces being tweaked.
tool_surface new surfaces.
reverse flags to reverse new surfaces; zero = leave as-is, nonzero = reverse.
multiple_sols edges with multiple solutions.
box_low start of intersection box to be used.
box_high end of intersection box to be used.
pLopts local operations options. NULL argument will set the default values.
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_fix_edge ( EDGE ed,
CURVE cu,
logical  correct_dir,
AcisOptions ao = NULL 
)

Fixes an edge prior to a tweak.



Role: Places ATTRIB_LOP_EDGE on edge containing new geometry for the edge to be used during the next tweak. NULL new geometry implies that the geometry must not change during the tweak. Data for an edge from the most recent call referring to it applies.

Topology Changes:

Refer to the topology changes listed for the function, api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Modeler

Parameters:
ed edge to be fixed.
cu new geometry (may be NULL).
correct_dir specifies whether curve direction is correct ( if curve is provided )
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_fix_vertex ( VERTEX vt,
APOINT ap,
logical  set_tolerant,
AcisOptions ao = NULL 
)

Fixes a vertex prior to a tweak.



Role: Places ATTRIB_LOP_VERTEX on vertex containing new geometry for the vertex to be used during the next tweak. NULL new geometry implies that the geometry must not change during the tweak. Data for an vertex from the most recent call referring to it applies.

Topology Changes:

Refer to the topology changes listed for the function, api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Modeler

Parameters:
vt vertex to be fixed.
ap new geometry (may be NULL).
set_tolerant specifies whether to set this vertex as tolerant
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_open_circuits ( int  nEdge,
EDGE edges[],
SURFACE tool_surfaces[],
int  reverse[],
const SPAposition box_low,
const SPAposition box_high,
lop_options lopts,
AcisOptions ao 
)

Tweaks a list of free-edge loops to new surfaces.



Role: Covers each free-edge loop with a new face having the supplied surface as the geometry, taking the supplied reverse flags into consideration. Choose reverse flags carefully, as resulting body is not checked.

The box_low and box_high arguments are used to limit any geometrical intersections, and thus, improve performance. Limiting the intersection improves performance. The box must contain the final faces, and if omitted, defaults to the size box.

Topology Changes:
The topology changes performed by tweak_open_circuits on the tweaked loops and their neighboring faces are:

  • Mergeable edges and vertices on the supplied loops will be merged out.
  • Two-edge vertices on the supplied loops between edges on the same geometrical non-analytic intersection curve, which are not presently mergeable elsewhere, will be merged out by api_tweak_open_circuits if the option lop_merge_vertex is set on (default).
  • Vertices with more than three edges may split into two or more vertices during a local operation. Single inverted faces, needed to fill any gap in the body, will be made (if two or more inverted faces are needed, the operation will fail).
  • Isolated single-edge loops may degenerate exactly to a point or be removed altogether and their faces will be deleted when appropriate.
  • Edges in multi-edge loops may degenerate exactly to a point and will be removed.
  • Where an edge exactly degenerates to a point in a multi-edge loop, the edges on either side will be detected becoming fully or partially coincident, and the loop repaired by splitting it into valid and degenerate loops. Degenerate loops will be deleted, as well as their faces when appropriate.
  • When faces have been deleted, their shells and lumps will be repartitioned and split, if necessary.
  • The option lop_ff_int switches on face-face intersection checking on the result body (option default is off). If the option is switched on and a face-face intersection is found in the body, the operation fails.
  • The self-intersecting bodies repair is controlled by the lop_options class. It is enabled by default.


Geometry Changes:
The geometry changes performed by api_tweak_open_circuits on the tweaked faces and their neighbors are:
pipe_spl_sur spline surfaces will be converted to rb_blend_spl_sur spline surfaces in the supplied faces and their neighbors if the option lop_convert_pipe is on (default).

Errors: Some of the following errors will return a standard_error_info object in the API outcome. In these cases, the type of ENTITY returned, in parentheses, follows the error message below. (When the ENTITY is new and will be lost on rollback, no standard_error_info object is returned).
  • At least one edge (which specifies one free edge loop) must be supplied, or error LOP_TWK_NO_EDGE.
  • Edges must be valid, non-duplicate, belong to different loops and from the same body, or error LOP_TWK_BAD_EDGE_SUPPLIED (EDGE*).
  • Tool surfaces must be valid, or error LOP_TWK_BAD_SURFACE (FACE*).
  • Body must be manifold, or error LOP_TWK_NON_MANIFOLD (COEDGE*).


New surface geometries must intersect consistently, or errors LOP_TWK_NO_EDGE (EDGE*) no solution for an edge.
  LOP_TWK_NO_VERT (VERTEX*) no solution for a vertex.
  • Internal algorithmic problems produce error LOP_TWK_INTERNAL.
  • Unpermitted topology changes, if detected, will produce the error LOP_TWK_TOPOL_CHANGE (FACE*).
  • Box, if supplied, must be valid, or error LOP_BAD_BOX.


Limitations: Body must be manifold and solid.

No other topology changes than those documented above are permitted. api_tweak_open_circuits does extend the geometry of the tool surfaces or their neighbors (like other local operations).

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
nEdge Specifies the number of edges. Each edge specifies one unique loop. Edges cannot be from the same loop.
edges Indicates the edges specifying loops which are being tweaked.
tool_surface Specifies new surfaces.
reverse Specifies the flags to reverse new surfaces; zero = leave as-is, nonzero = reverse.
box_low Specifies the start of the intersection box to be used.
box_high Specifies the end of the intersection box to be used.
pLopts Specifies Local Operations options. NULL argument will set the default values.
ao Specifies ACIS options.

include <lop_api.hxx>

outcome api_tweak_pick_edge_solution ( EDGE edge,
int  soln_no,
CURVE curve = NULL,
AcisOptions ao = NULL 
)

Specifies an edge solution that a subsequent tweak will use.



Role: After a call to api_tweak_faces_init, attributes containing EDGE solution curves are attached to EDGEs involved in the tweak. This function allows the user to specify which of multiple solutions a subsequent tweak will use. It is possible to choose a solution that forces the tweak to fail or make a bad model. It is also possible to specify incompatible solutions. Therefore, the user must take care when using this function, particularly when specifying solutions on more than one EDGE.

If a curve is supplied, this curve will be used as the new edge geometry (if the curve is one of the possible solutions in the edge attribute) and the variable solution_no is ignored. If no curve is supplied, solution_no represents the index of the curve to be used.

To query the possible solutions on an edge, use api_tweak_query_edge_solutions.

To complete the tweak after any number of edge solutions have been specified, use api_tweak_faces.

Topology Changes:

Refer to the topology changes listed for the function, api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Errors: If the edge does not have a LOP_EDGE_ATTRIB attribute, that is, the edge was not involved in the initial stages of a tweak, or the solution number is not valid, LOP_TWK_NO_EDGE.

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Modeler

Parameters:
edge edge being specified.
soln_no the solution curve to use when curve is non-NULL.
curve the new edge geometry.
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_query_edge_solutions ( EDGE edge,
ENTITY_LIST curve_list,
AcisOptions ao = NULL 
)

Returns an ENTITY_LIST of CURVEs that are possible solutions for an EDGE's geometry in a tweak.



Role: After a call to api_tweak_faces_init, attributes containing edge solution curves are attached to edges involved in the tweak. This function allows the user to obtain a list of the possible solutions for an EDGE.

The CURVEs returned in curve_list are created on the heap and it is the caller's responsibility to lose them.

To select a possible solution on the edge, use api_tweak_pick_edge_solution.

To complete the tweak after any number of edge solutions have been specified, use api_tweak_faces.

Topology Changes:

Refer to the topology changes listed for the function, api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Errors: If there is no LOP attribute on the EDGE, LOP_TWK_NO_EDGE.

Effect: Changes model

Journal: Not Available

Product(s): 3D ACIS Modeler

Parameters:
edge edge being queried.
curve_list list of possible solutions.
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_replace_face ( FACE the_face,
ENTITY the_surface,
const SPAposition box_low,
const SPAposition box_high,
lop_options lopts,
AcisOptions ao 
)

Replaces the surface of a face with given tool surface.



Role: Given a face and a tool face (or surface), replaces the face geometry with the tool face (or surface) geometry.

Topology Changes:

Refer to the topology changes listed for the function, api_tweak_faces

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Errors: In addition to the following, refer to the Errors listed for the function, api_tweak_faces

One face must be supplied, or error LOP_TWK_NO_FACE.

Supplied face must be valid or error LOP_TWK_BAD_FACE (FACE*).

Tool surface must be valid or error LOP_TWK_BAD_SURFACE(FACE*).

Tool surface and orginal face geometry must be similar or error LOP_REPLACE_FACE_TOO_DIFFERENT

Box, if supplied must be valid, or error LOP_BAD_BOX.

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
the_face face being replaced.
tool_surface new surface.
box_low start of intersection box to be used.
box_high end of intersection box to be used.
lopts Local Operations options for behavior control.
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_tighten_edge ( EDGE the_edge,
lop_options lopts,
AcisOptions ao 
)

Replaces the geometry of the input tolerant sharp edge with precise non-tolerant geometry

Role: Given a tolerant sharp edge, it is replaced with a non-tolerant edge by intersecting the adjacent surfaces.



Topology Changes:

NO Topology Changes

Geometry Changes:

Refer to the geometry changes listed for the function, api_tweak_faces

Errors: In addition to the following, refer to the Errors listed for the function, api_tweak_faces

One edge must be supplied, or error LOP_TWK_NO_EDGE_SUPPLIED.

Supplied edge must be valid or error LOP_TWK_BAD_EDGE_SUPPLIED (EDGE*).

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
the_edge edge being replaced with precise geometry.
lopts Local Operations options for behavior control.
ao ACIS options.

include <lop_api.hxx>

outcome api_tweak_to_body ( int  nEdge,
EDGE edges[],
BODY targetBody,
int  boolType,
const int  numPoints,
const SPAposition testPoints,
const SPAposition boxLow,
SPAposition boxHigh,
lop_options pLopts,
AcisOptions ao = NULL 
)

Tweaks an open sheet body to a target body.



Role: Extends a sheet body until it intersects the target body and booleans them together. There is no one-to-one correspondence.

The box_low and box_high arguments are used to limit any geometrical intersections, and thus, improve performance. Limiting the intersection improves performance. The box must contain the target body and if omitted, defaults to the size box.

Topology Changes:
The topology changes performed by tweak_to_body on the free-edge loops and their neighbors are:

  • Mergeable edges and vertices on the supplied free-edge loops will be merged out.
  • Two edge vertices on the supplied free-edge loops between edges on the same geometrical non analytic intersection curve, which are not presently mergeable elsewhere, will be merged out by lop:tweak-faces if the option lop_merge_vertex is enabled (default).
  • Vertices with more than three edges may split into two or more vertices during a local operation. Single inverted faces, needed to fill any gap in the body, will be made (if two or more inverted faces are needed, the operation will fail).
  • Isolated single edge loops may degenerate exactly to a point or be removed altogether and their faces will be deleted when appropriate.
  • Edges in multi-edge loops may degenerate exactly to a point and will be removed.
  • Where an edge exactly degenerates to a point in a multi-edge loop, the edges either side will be detected becoming fully or partially coincident, and the loop repaired by splitting it into valid and degenerate loops. Degenerate loops will be deleted, as well as their faces, when appropriate.
  • When faces have been deleted, their shells and lumps will be repartitioned and split, if necessary.
  • The option lop_ff_int switches on face-face intersection checking on the result body (option default is off). If the option is switched on and a face-face intersection is found in the body, the operation fails.
  • The self-intersecting bodies repair is controlled by the lop_options class. It is enabled by default.


Geometry Changes:
The geometry changes performed by tweak_to_body on the free-edge loops and their neighbors are:
pipe_spl_sur spline surfaces will be converted to rb_blend_spl_sur spline surfaces in the supplied faces and their neighbors if the option lop_convert_pipe is set to on (default).

Errors: Some of the following errors will return a standard_error_info object in the API outcome. In these cases, the type of ENTITY returned, in parentheses, follows the error message below. (When the ENTITY is new and will be lost on rollback, no standard_error_info object is returned).
  • At least one edge must be supplied, or error LOP_TWK_NO_EDGE_SUPPLIED.
  • Edges must be valid, non-duplicate, from different free-edge loops, from the same body and should not be from the target body, or error LOP_TWK_BAD_EDGE_SUPPLIED (EDGE*).
  • Supplied target body must be valid, or error LOP_TWK_BAD_SURFACE (FACE*).

New surface geometries must intersect consistently, or errors LOP_TWK_NO_EDGE (EDGE*) no solution for an edge.
  LOP_TWK_NO_VERT (VERTEX*) no solution for a vertex.
  • Internal algorithmic problems produce error LOP_TWK_INTERNAL.
  • Unpermitted topology changes, if detected, will produce the error LOP_TWK_TOPOL_CHANGE (FACE*).
  • Box, if supplied, must be valid, or error LOP_BAD_BOX.


Limitations:
Body must be manifold.
No other topology changes than those documented above are permitted.

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
nEdge Specifies the number of free edges being passed in. Each free-edge corresponds to a different loop.
edges Specifies the edges which are part of the free-edge loops being tweaked.
targetBody Specifies the body to which to tweak.
boolType Specifies the type of boolean you want performed, which can be Add (0) or Subtract (1).
numPoints Specifies the number of test points.
testPoints Specifies the test positions to use to determine which cell of the tweaked body to keep.
box_low Specifies the start of the intersection box to be used.
box_high Specifies the end of the intersection box to be used.
pLopts Specifies the Local Operations options. NULL argument will set the default values.
ao Specifies the ACIS options.

include <lop_api.hxx>

outcome api_tweak_to_body ( int const   nFace,
FACE face[],
BODY targetBody,
int  boolType,
const int  numPoints,
const SPAposition testPoints,
const SPAposition boxLow,
SPAposition boxHigh,
lop_options pLopts,
AcisOptions ao = NULL 
)

Tweaks an array of faces to a body.



Role: Replaces supplied faces with the face or faces of the supplied sheet body. There is no one-to-one correspondence.

The box_low and box_high arguments are used to limit any geometrical intersections, and thus, improve performance. Limiting the intersection improves performance. The box must contain the final faces, and if omitted, defaults to the size box.

Topology Changes:
The topology changes performed by tweak_to_body on the tweaked faces and their neighbors are:

  • Mergeable edges and vertices on the supplied faces will be merged out.
  • Edges and vertices between faces that are tweaked to the same geometry will also be merged out.
  • Two edge vertices on the supplied faces between edges on the same geometrical non-analytic intersection curve, which are not presently mergeable elsewhere, will be merged out by lop:tweak-to-body if the option lop_merge_vertex is enabled (default setting).
  • Vertices with more than three edges may split into two or more vertices during a local operation. Single inverted faces, needed to fill any gap in the body, will be made (if two or more inverted faces are needed, the operation will fail).
  • Isolated single-edge loops may degenerate exactly to a point or be removed altogether, and their faces will be deleted when appropriate.
  • Edges in multi-edge loops may degenerate exactly to a point, and will be removed.
  • Where an edge exactly degenerates to a point in a multi-edge loop, the edges on either side will be detected becoming fully or partially coincident, and the loop repaired by splitting it into valid and degenerate loops. Degenerate loops will be deleted, as well as their faces when appropriate.
  • When faces have been deleted, their shells and lumps will be repartitioned and split, if necessary.
  • The option lop_ff_int switches on face-face intersection checking on the result body (option default is off). If the option is switched on and a face-face intersection is found in the body, the operation fails.
  • The self-intersecting bodies repair is controlled by the lop_options class (default is on).


Geometry Changes:
The geometry changes performed by tweak_to_body on the tweaked faces and their neighbors are:

pipe_spl_sur spline surfaces will be converted to rb_blend_spl_sur spline surfaces in the supplied faces and their neighbors if the option lop_convert_pipe is set on (default).

Errors:
Some of the following errors will return a standard_error_info object in the API outcome. In these cases, the type of ENTITY returned, in parentheses, follows the error message below. (When the ENTITY is new and will be lost on rollback, no standard_error_info object is returned).
  • At least one face must be supplied, or error LOP_TWK_NO_FACE.
  • Faces must be valid, non-duplicate, and from the same body and should not be from target body, or error LOP_TWK_BAD_FACE (FACE*).
  • Supplied target body must be valid, or error LOP_TWK_BAD_SURFACE (FACE*).
  • Body must be manifold, or error LOP_TWK_NON_MANIFOLD (COEDGE*).

New surface geometries must intersect consistently, or errors LOP_TWK_NO_EDGE (EDGE*) no solution for an edge.
  LOP_TWK_NO_VERT (VERTEX*) no solution for a vertex.
  • Internal algorithmic problems produce error LOP_TWK_INTERNAL.
  • Unpermitted topology changes, if detected, will produce the error LOP_TWK_TOPOL_CHANGE (FACE*).
  • Box, if supplied, must be valid, or error LOP_BAD_BOX.


Limitations:
Body must be manifold.
No other topology changes than those documented above are permitted.

Effect: Changes model

Journal: Available

Product(s): 3D ACIS Modeler

Parameters:
nface Specifies the number of faces.
face Specifies the faces to be tweaked.
targetBody Specifies the Body to which to tweak.
boolType Specifies the type of boolean you want performed. Valid values are Add (0) or Subtract (1).
numPoints Specifies the number of test points.
testPoints Specifies the test positions to use to determine which cell of the tweaked body to keep.
box_low Specifies the start of the intersection box to be used.
box_high Specifies the end of the intersection box to be used.
pLopts Specifies local operations options. NULL argument will set the default values.
ao Specifies ACIS options.

include <lop_api.hxx>