open access web page header


OA_BOOL is an plug-in engine designed to provide boolean operations for the Open Access environment. The class and function descriptions are listed below:

acsBoolSettings Class

This class is used to define the boolean's different flags and parameters.

acsBoolSettings Public Functions

Function Description
acsBoolSettings(); This function is the acsBoolSettings' constructor.
It creates an object acsBoolSettings with default values.
~acsBoolSettings This function is the acsBoolSettings' destructor.
It destroys an object of acsBoolSettings.
acsClear This function resets the values of the acsBoolSettings object’s variables to the default values.
void acsClear();

acsBoolSettings Public Variables

Variable Description

The maximum number of vertices per boundary. Positive Integer value > 200


Reversal Mode, if set, performs a final boolean to reverse the output polarity. An integer: 0=no reversal and 1=reversal.


Controls how the corners of polygons (where the angle is less than 90) are dealt with during boolean and sizing operations. 1 = right angle, 2 = use three point smoothing, 3 = use five point smoothing


Controls how the polygons are output. 0 = no convex postprocessor, 1 = break polygons if needed so they are convex in X, 2 = break into convex pieces, 3 = break into trapezoids.


If turned "on" output polygons are sized up or down by the specified value (see acsSizingVal). There are two different sizing algorithms. For small sizings of Manhattan data the standard sizing is fast and correct. For large sizings or if data is non-manhattan incremental sizing will produce "better" results. 0 = no sizing, 1 = standard sizing, 2 = incremental sizing.


defines the amount of sizing. Positive increases the area of the polygon - negative decreases it. This is a double.


Output polygons can be smoothed by removing closely spaced vertices. The SmoothVal defines the smallest distance between vertices. If set to 0, no smoothing is performed. SmoothVal is double.


Slivers are "tiny" pieces of metal left over after a boolean operation, generally due to numerical noise. They can be identified and removed if the SliverVal is defined. SliverVal is a double. 0 = no removal. Positive > 0 values indicate size of sliver to remove.

acsOaLayerPurposePair Class

This class is used to define the boolean's primary (and secondary if appropriate) layer purpose pair operands.

acsOaLayerPurposePair Public Functions

Function Description
acsOaLayerPurposePair l: layer number of the object.
p: purpose number of the object.
acsOaLayerPurposePair(oaLayerNum l, oaPurposeNum p);
~acsOaLayerPurposePair This function is the acsOaLayerPurposePair's destructor. It destroys an object of acsOaLayerPurposePair.

acsOaLayerPurposePair Public Variables

Variable Description

oaLayerNum value (unsigned integer) This variable defines the operands’ layer number.


RoaPurposeNum value (unsigned integer)This variable defines the operand’s purpose number.

acsOaPolygon Class

This class defines the Boolean operation’s secondary polygon operands. One can use such a polygon operand to "clip" out regions from a layer.

acsOaPolygon Public Functions

Function Description
acsOaPolygon This function is the acsOaPolygon's constructor. It creates an object of acsOaPolygon with default values.
~acsOaPolygon This function is the acsOaPolygon's destructor. It destroys an object of acsOaPolygon.

acsOaPolygon Public Variables

Variable Description

an integer pointer. This variable defines the polygon's vertices. Note that the first and last vertex are the same.


Integer value. This variable defines the polygon operand’s number of vertices. Count must reflect the fact that the first/last vertex are the same. So a rectangle has a numVert = 5.

acsOaShapeQuery Class

This class runs a Shape Query from a specified design's region. It can return shapes directly or pass them through a boolean operation if the preprocess flag is set. This class is abstract. The user must derive a subclass that implements the virtual class acsOaQueryShape

acsOaShapeQuery Public Functions

Function Description
acsShapeQuery Constructor that initialises any object belonging to this class.
~acsShapeQuery Destructor responsible for cleanup.
virtual ~acsShapeQuery();
query Calling this function triggers a region query; data is returned to the calling program “through” the Boolean processor.
void query(<arguments>);
queryShape By means of this callback function, the Boolean Processor will get query data from the OA DB based on the various query parameters specified by the user.
void queryShape(oaShape* shape);
acsQueryShape By means of this callback function -- which the user must implement -- the Boolean Processor returns booleanized (or original OA Data) to the user’s program. - The user can terminate data processing by returning a special code when this function is called.
virtual int acsQueryShape
 (oaShape* shape, int ErrorCode, int StatusPercent) = 0;
acsSetPreProcess Allows user to control whether the data is booleanized by the Boolean processor or returned “as is” from the OA database.
void acsSetPreProcess(bool OnOff = true);
acsGetPreProcess Retrieves status indicating whether the Boolean is enabled.
bool acsGetPreProcess();
acsBoolSetPrimary Specifies the primary input layer/layer purpose set on which the Boolean will operate.
void acsBoolSetPrimary
 (acsLayerPurposePair** InputSet, int NumLayers);
acsBoolSetSecondary Specifies the secondary input layer/layer purpose set on which the Boolean will operate.
void acsBoolSetSecondary
 (acsLayerPurposePair** InputSet, int NumLayers);
acsBoolSetSecondary Specifies the secondary set on which the boolean will operate -- a set of polygons to be used instead of a layer/layer purpose pair.
void acsBoolSetSecondary
 ((acsPolygon** PolygonSet, int NumPolygons);
acsBoolSetOperator Specifies the boolean operation: union, intersection, XOR, sizing ....
void acsBoolSetOperator(acsOperator Operation);
acsBoolSetModifiers define settings which flavor the boolean operation. See the acsBoolSettings class for details.
void acsBoolSetModifiers
 (const acsBoolSettings& Settings);
acsBoolGetModifiers retrieve the current boolean settings.
void acsBoolGetModifiers
 (acsBoolSettings& Settings);
acsBoolInit initializes the plugin; needs to be called once before any plugin functionalities may be used. Typically called at the beginning of the user program. License acquisition is handled by this function.
static void acsBoolInit();
acsBoolClose Should be called once after the plugin is not needed anymore. This function returns license token obtained upon initialization.
static void acsBoolClose();
acsBoolClear returns the object of this class to the default state so that it can be used again.
void acsBoolClear();

OA Main Page API Download Revision History Sample Code

417 Ingalls St., Santa Cruz, CA 95060    Tel (831) 426-6163     Fax 426-2824    email: