Navigation:  C/C++ Scripting Engine >

Fab3000 Header File

Previous pageReturn to chapter overviewNext page

The Fab3000 header file defines all the API Classes, Database Functions, UI Functions, Variables, Constants, and Other Functions used to talk directly with Fab3000.

 

documentNote: The Fab3000.h header file always contains the newest API calls, and should always be referenced in every Fab3000 script.

 

documentNote: The Fab3000.h header file is located in the Fab3000 installation folder .../scripts/include.

 

documentNote: The Fab3000.h header file is the most import file for the C/C scripting engine, and should never be modified in any way.  If you need to define functions no you may create your own unique classes and header files, or contact technical support and we'll consider adding your requested feature.

 

bar_dot

 

 

//----------------------------------------------------------------------//

//Constant Types

//----------------------------------------------------------------------//

 

enum dbTypeEnum {

 dbcUnknownType              = 0,

 dbcCellViewType             = 1,

 dbcLPPHeaderType            = 2,

 dbcLayerHeaderType          = 3,

 dbcArcType                  = 4,

 dbcDonutType                = 5,

 dbcFlashType                = 6,

 dbcEllipseType              = 7,

 dbcLineType                 = 8,

 dbcPathType                 = 9,

 dbcPolygonType              = 10,

 dbcRectType                 = 11,

 dbcTextType                 = 12,

 dbcEvalTextType             = 13,

 dbcPropDisplayType          = 14,

 dbcAttrDisplayType          = 15,

 dbcTextOverrideType         = 16,

 dbcInstPropDisplayType      = 17,

 dbcInstAttrDisplayType      = 18,

 dbcInstHeaderType           = 19,

 dbcArrayInstType            = 20,

 dbcScalarInstType           = 21,

 dbcVectorInstType           = 22,

 dbcVectorInstDefType        = 23,

 dbcBundleNetType            = 24,

 dbcBusNetType               = 25,

 dbcBusNetBitType            = 26,

 dbcScalarNetType            = 27,

 dbcRepeatNetType            = 28,

 dbcBusNetDefType            = 29,

 dbcBundleTermType           = 30,

 dbcBusTermType              = 31,

 dbcBusTermBitType           = 32,

 dbcScalarTermType           = 33,

 dbcRepeatTermType           = 34,

 dbcBusTermDefType           = 35,

 dbcInstTermType             = 36,

 dbcInstPinType              = 37,

 dbcNetConnectDefType        = 38,

 dbcTermConnectDefType       = 39,

 dbcAssignValueType          = 40,

 dbcAssignAssignmentType     = 41,

 dbcRouteType                = 42,

 dbcMarkerType               = 43,

 dbcMarkerMemType            = 44,

 dbcTrackPatternType         = 45,

 dbcRowType                  = 46,

 dbcRowHeaderType            = 47,

 dbcPinType                  = 48,

 dbcClusterType              = 49,

 dbcCellViewBoundaryType     = 50,

 dbcPRBoundaryType           = 51,

 dbcSnapBoundaryType         = 52,

 dbcClusterBoundaryType      = 53,

 dbcBlockageType             = 54,

 dbcSteinerType              = 55,

 dbcSteinerPinType           = 56,

 dbcScanChainType            = 57,

 dbcScanChainInstType        = 58,

 dbcScanChainSetType         = 59,

 dbcStdViaHeaderType         = 60,

 dbcCustomViaHeaderType      = 61,

 dbcGCellPatternType         = 62,

 dbcCMapType                 = 63,

 dbcStrongPinGroupType       = 64,

 dbcWeakPinGroupType         = 65,

 dbcAnalysisPointType        = 66,

 dbcAnalysisOpPointType      = 67,

 dbcOpPointHeaderType        = 68,

 dbcReducedDriverType        = 69,

 dbcParasiticNetworkType     = 70,

 dbcSubNetworkType           = 71,

 dbcSubNetworkMemType        = 72,

 dbcResistorType             = 73,

 dbcCouplingCapType          = 74,

 dbcInductorType             = 75,

 dbcDiodeType                = 76,

 dbcSeriesRLType             = 77,

 dbcMutualInductorType       = 78,

 dbcExternalDeviceType       = 79,

 dbcNodeType                 = 80,

 dbcGroundedNodeType         = 81,

 dbcRouteSpecHeaderType      = 82,

 dbcGuideType                = 83,

 dbcLumpedElmoreType         = 84,

 dbcPiElmoreType             = 85,

 dbcPiPoleResidueType        = 86,

 dbcElmoreType               = 87,

 dbcPoleResidueType          = 88,

 dbcIntPropType              = 89,

 dbcIntRangePropType         = 90,

 dbcFloatPropType            = 91,

 dbcFloatRangePropType       = 92,

 dbcStringPropType           = 93,

 dbcAppPropType              = 94,

 dbcDoublePropType           = 95,

 dbcDoubleRangePropType      = 96,

 dbcBooleanPropType          = 97,

 dbcHierPropType             = 98,

 dbcTimePropType             = 99,

 dbcTimeRangePropType        = 100,

 dbcEnumPropType             = 101,  

 dbcGroupType                = 102,

 dbcGroupMemberType          = 103,

 dbcTechType                 = 104,

 dbcPhysicalLayerType        = 105,

 dbcDerivedLayerType         = 106,

 dbcPurposeType              = 107,

 dbcSiteDefType              = 108,

 dbcViaSpecType              = 109,

 dbcStdViaDefType            = 110,

 dbcCustomViaDefType         = 111,

 dbcOpPointType              = 112,

 dbcAnalysisLibType          = 113,

 dbcRouteSpecType            = 114,

 dbcDDLibType                = 115,

 dbcDDCellType               = 116,

 dbcDDViewType               = 117,

 dbcDDLibFileType            = 118,

 dbcDDCellFileType           = 119,

 dbcDDViewFileType           = 120,

 dbcDDObjectDBType           = 121,

 dbcAppObjectType            = 122,

 dbcBoolRuleType             = 123,

 dbcIntRuleType                                = 124,

 dbcFloatRuleType            = 125,

 dbcIntParamRuleType         = 126,

 dbcFloatParamRuleType       = 127,

 dbcInt1DTblRuleType         = 128,

 dbcFloat1DTblRuleType       = 129,

 dbcInt2DTblRuleType         = 130,

 dbcFloat2DTblRuleType       = 131,

 dbcCurDensTblRuleType       = 132,

 dbcIntFltTblRuleType        = 133,

 dbcFltIntTblRuleType        = 134,

 dbcAntennaRuleType          = 135

};

 

//----------------------------------------------------------------------//

 

enum dbOrientEnum

{

 dbcR0                = 0,

 dbcR90                = 1,

 dbcR180                = 2,

 dbcR270                = 3,

 dbcMY                = 4,

 dbcMYR90        = 5,

 dbcMX                = 6,

 dbcMXR90        = 7,

};

 

//----------------------------------------------------------------------//

 

enum dbPolarityEnum

{

 dbcPolarityDark                = 0,

 dbcPolarityClear        = 1,

};

 

//----------------------------------------------------------------------//

 

enum dbAlignmentEnum

{

 dbcUpperLeft                = 0,

 dbcCenterLeft                = 1,

 dbcLowerLeft                = 2,

 dbcUpperCenter                = 3,

 dbcCenterCenter                = 4,

 dbcLowerCenter                = 5,

 dbcUpperRight                = 6,

 dbcCenterRight                = 7,

 dbcLowerRight                = 8,

};

 

//----------------------------------------------------------------------//

 

enum dbPathStyleEnum

{

 dbcTruncatePathStyle        = 0,

 dbcExtendPathStyle                = 1,

 dbcRoundPathStyle                = 2,

};

 

//----------------------------------------------------------------------//

 

enum dbUnitsEnum

{

 dbcMicron                        = 0,

 dbcMillimeter                = 1,

 dbcCentimeter                = 2,

 dbcMeter                        = 3,

 dbcMil                                = 4,

 dbcInch                                = 5,

 dbcNanometer                = 6,

};

 

//----------------------------------------------------------------------//

 

enum dbSymmetryEnum

{

 dbcSymmetryNone                = 0,

 dbcSymmetryX                = 1,

 dbcSymmetryY                = 2,

 dbcSymmetryXY                = 3,

 dbcSymmetryAny                = 4,

};

 

//----------------------------------------------------------------------//

 

enum dbAnchorEnum

{

 dbcAnchorLowerLeft        = 0,

 dbcAnchorCenter                = 1,

 dbcAnchorOrigin                = 2,

};

 

//----------------------------------------------------------------------//

 

enum dbTeardropEnum

{

 dbcTeardrop                = 0,

 dbcSnowman                = 1,

};

 

//----------------------------------------------------------------------//

 

enum dbHomebaseEnum

{

 dbcHomebaseInward                = 0,

 dbcHomebaseOutward                = 1,

};

 

//----------------------------------------------------------------------//

 

enum dbCPadEnum

{

 dbcCPadFlatInward                = 0,

 dbcCPadFlatOutward                = 1,

 dbcCPadPointedInward        = 2,

 dbcCPadPointedOutward        = 3,

};

 

//----------------------------------------------------------------------//

 

enum dbDrillTypeEnum

{

 dbcDrillTypePlated                = 0,

 dbcDrillTypeUnplated        = 1,

};

 

//----------------------------------------------------------------------//

 

enum dbLayerType

{

 dbcLayerTypeNone = 0,

 dbcLayerTypeTop = 1,

 dbcLayerTypeBottom = 2,

 dbcLayerTypeInternal = 3,

 dbcLayerTypeNegPlane = 4,

 dbcLayerTypePosPlane = 5,

 dbcLayerTypeNcPrimary = 6,

 dbcLayerTypeNcSecondary = 7,

 dbcLayerTypeSilkTop = 8,

 dbcLayerTypeSilkBot = 9,

 dbcLayerTypeMaskTop = 10,

 dbcLayerTypeMaskBot = 11,

 dbcLayerTypePasteTop = 12,

 dbcLayerTypePasteBot = 13,

 dbcLayerTypeRoutMill = 14,

 dbcLayerTypeInsulator = 15,

 dbcLayerTypeComponentsTop = 16,

 dbcLayerTypeComponentsBot = 17,

 dbcLayerTypeTemporary = 18,

 dbcLayerTypeFab = 19,

 dbcLayerTypeBorder = 20,

 dbcLayerTypeScore = 21,

 dbcLayerTypeGraphic = 22,

};

 

//----------------------------------------------------------------------//

 

enum dbApertureType

{

 dbApertureTypeNone = 0,

 dbApertureTypeCircle = 1,

 dbApertureTypeDiamond = 2,

 dbApertureTypeDonut = 3,

 dbApertureTypeDonutSquare = 4,

 dbApertureTypeOblong = 5,

 dbApertureTypeRect = 6,

 dbApertureTypeRectRounded = 7,

 dbApertureTypeRectChamfered = 8,

 dbApertureTypeTarget = 9,

 dbApertureTypeThermal = 10,

 dbApertureTypeThermalSquare = 11,

 dbApertureTypeThermalSquareRound = 12,

 dbApertureTypeThermalRectangle = 13,

 dbApertureTypeTrapezoid = 14,

 dbApertureTypeTriangle = 15,

 dbApertureTypeButterfly = 16,

 dbApertureTypeSquareButterfly = 17,

 dbApertureTypeHexagon = 18,

 dbApertureTypeHexagonHorizontal = 19,

 dbApertureTypeHexagonVertical = 20,

 dbApertureTypeOctagon = 21,

 dbApertureTypeBullet = 22,

 dbApertureTypeMoire = 23,

 dbApertureTypeEllipse = 24,

 dbApertureTypeCustom = 25,

 dbApertureTypePoex = 26,

 dbApertureTypePoin = 27,

 dbApertureTypeDonutSquareRound = 28,

 dbApertureTypeDonutRoundedSquare = 29,

 dbApertureTypeDonutRectangle = 30,

 dbApertureTypeDonutRoundedRectangle = 31,

 dbApertureTypeDonutOval = 32,

 dbApertureTypeThermalRoundedSquare = 33,

 dbApertureTypeThermalRoundedRectangle = 34,

 dbApertureTypeThermalOval = 35,

};

 

enum dbFileType

{

 dbcFileTypeGerber = 0,

 dbcFileTypeDrill = 1,

 dbcFileTypeMill = 2,

 dbcFileTypeDxf = 3,

 dbcFileTypeOdb = 4,

 dbcFileTypeIges = 5,

 dbcFileTypeImage = 6,

 dbcFileTypePostscript = 7,

 dbcFileTypeHpgl = 8,

 dbcFileTypeNetlist = 9,

 dbcFileTypeCentroid = 10,

 dbcFileTypeBom = 11,

 dbcFileTypeCustomLib = 12,

 dbcFileTypeText = 13,

 dbcFileTypeTable = 14,

 dbcFileTypeFolder = 15,

 dbcFileTypeSimpleLib = 16,

 dbcFileTypeLargeBitmap = 17,

};

 

//----------------------------------------------------------------------//

 

enum dbSuppressionEnum

{

 dbcSuppressLeading = 0,

 dbcSuppressTrailing        = 1,

 dbcSuppressNone = 2,

};

 

//----------------------------------------------------------------------//

 

enum dbDataType

{

 dbcDataTypeNormal = 0,

 dbcDataTypeIncremental        = 1,

};

 

//----------------------------------------------------------------------//

 

enum dbClockwiseType

{

 dbcClockwise = 0,

 dbcCounterClockwise        = 1,

};

 

//----------------------------------------------------------------------//

 

enum dbMessageBoxType

{

 dbcMessageBoxError = 0,

 dbcMessageBoxWarning        = 1,

 dbcMessageBoxQuestion        = 2,

 dbcMessageBoxInformation        = 3,

};

 

//----------------------------------------------------------------------//

 

enum dbOutputPolygonType

{

 dbcOutputTriangles = 0,

 dbcOutputWithCutlines        = 1,

 dbcOutputWithoutCutlines        = 2,

};

 

//----------------------------------------------------------------------//

 

enum dbPropertyDlgType

{

 dbcPropertyDlgNone = 0,

 dbcPropertyDlgEdit = 1,

 dbcPropertyDlgCombo = 2,

 dbcPropertyDlgCheck = 3,

 dbcPropertyDlgColor = 4,

 dbcPropertyDlgFile = 5,

 dbcPropertyDlgDirectory = 6,

 dbcPropertyDlgEditPoint = 7,

 dbcPropertyDlgEditPathWidth = 8,

 dbcPropertyDlgEditAngle = 9,

 dbcPropertyDlgEditScale = 10,

 dbcPropertyDlgEditColCnt = 11,

 dbcPropertyDlgEditRowCnt = 12,

 dbcPropertyDlgEditColSpace = 13,

 dbcPropertyDlgEditRowSpace = 14,

 dbcPropertyDlgEditTextHeight = 15,

 dbcPropertyDlgEditTextXScale = 16,

 dbcPropertyDlgEditTextString = 17,

 dbcPropertyDlgEditBoxHeight = 18,

 dbcPropertyDlgEditBoxWidth = 19,

 dbcPropertyDlgComboLayer = 20,

 dbcPropertyDlgComboLayerMarkup = 21,

 dbcPropertyDlgComboLayerBoolean = 22,

 dbcPropertyDlgComboLayerType = 23,

 dbcPropertyDlgComboComposite = 24,

 dbcPropertyDlgComboNotComposite = 25,

 dbcPropertyDlgComboUnits = 26,

 dbcPropertyDlgComboPoints = 27,

 dbcPropertyDlgComboPathType = 28,

 dbcPropertyDlgComboShape = 29,

 dbcPropertyDlgComboInsert = 30,

 dbcPropertyDlgComboTextStyle = 31,

 dbcPropertyDlgComboTextJustify = 32,

 dbcPropertyDlgComboTextExternal = 33,

 dbcPropertyDlgComboTextFonts = 34,

 dbcPropertyDlgComboRouteElements = 35,

 dbcPropertyDlgComboOrient = 36,

 dbcPropertyDlgComboCellviewType = 37,

 dbcPropertyDlgComboLibs = 38,

 dbcPropertyDlgComboCells = 39,

 dbcPropertyDlgComboJobs = 40,

 dbcPropertyDlgComboViews = 41,

 dbcPropertyDlgComboTechs = 42,

 dbcPropertyDlgComboMaterial = 43,

 dbcPropertyDlgComboRouteDir = 44,

 dbcPropertyDlgComboLayerOP = 45,

 dbcPropertyDlgComboFindType = 46,

 dbcPropertyDlgComboPrinters = 47,

 dbcPropertyDlgComboApertures = 48,

 dbcPropertyDlgComboAperturesCustom = 49,

 dbcPropertyDlgComboCompLevel = 50,

 dbcPropertyDlgComboComponents = 51,

 dbcPropertyDlgComboFootprints = 52,

 dbcPropertyDlgComboTools = 53,

 dbcPropertyDlgComboToolCompensation = 54,

 dbcPropertyDlgComboClockwise = 55,

 dbcPropertyDlgComboWizardName = 56,

 dbcPropertyDlgComboNets = 57,

 dbcPropertyDlgPopupLayerSelection = 58,

 dbcPropertyDlgPopupLayerSelectionAdvanced = 59,

 dbcPropertyDlgPopupPointSelection = 60,

 dbcPropertyDlgPopupComboLibs = 61,

 dbcPropertyDlgPopupComboCells = 62,

 dbcPropertyDlgPopupPoints = 63,

};

 

 

//----------------------------------------------------------------------//

// Class Declarations

//----------------------------------------------------------------------//

 

class dbIntArray;

class dbFloatArray;

class dbObjectArray;

class dbStringArray;

class dbPointArray;

class dbSelectionSet;

class dbDlgProperty;

class dbPoint;

class dbBox;

class dbAperture;

class dbNCTool;

class dbLayer;

class dbImportDxf;

class dbImportImage;

class dbImportGerber;

class dbImportDrill;

class dbImportOdb;

class dbExportDxf;

class dbExportIges;

class dbExportGerber;

class dbExportDrill;

class dbExportOdb;

class dbDrcSettings;

 

 

//----------------------------------------------------------------------//

// Typedefs

//----------------------------------------------------------------------//

 

typedef void* dbObject;

 

//----------------------------------------------------------------------//

// Classes

//----------------------------------------------------------------------//

 

class dbIntArray

{

#ifndef _CH_

 private:

         void        *pArray;

#endif

 public:

 dbIntArray();

 ~dbIntArray();

 

 void                append( int value );

 void                prepend( int value );

 void                clear();

 int                        no();

 int                        find( int value );

 int                        rfind( int value );

 void                insert( int pos, int value );

 void                remove( int pos );

 int                        index( int pos );

 void*                data();

 

};

 

//----------------------------------------------------------------------//

 

class dbFloatArray

{

#ifndef _CH_

 private:

         void        *pArray;

#endif

 public:

 dbFloatArray();

 ~dbFloatArray();

 

 void                append( float value );

 void                prepend( float value );

 void                clear();

 int                        no();

 int                        find( float value );

 int                        rfind( float value );

 void                insert( int pos, float value );

 void                remove( int pos );

 float                index( int pos );

 void*                data();

 

};

 

//----------------------------------------------------------------------//

 

class dbStringArray

{

#ifndef _CH_

 private:

         void        *pArray;

#endif

 public:

 dbStringArray();

 ~dbStringArray();

 

 void                append( char* value );

 void                prepend( char* value );

 void                clear();

 int                        no();

 int                        find( char* value );

 int                        rfind( char* value );

 void                insert( int pos, char* value );

 void                remove( int pos );

 char*                index( int pos );

 void*                data();

 

};

 

//----------------------------------------------------------------------//

 

class dbObjectArray

{

#ifndef _CH_

 private:

         void        *pArray;

#endif

 public:

 dbObjectArray();

 ~dbObjectArray();

 

 void                append( dbObject value );

 void                prepend( dbObject value );

 void                clear();

 int                        no();

 int                        find( dbObject value );

 int                        rfind( dbObject value );

 void                insert( int pos, dbObject value );

 void                remove( int pos );

 dbObject        index( int pos );

 void*                data();

 

};

 

//----------------------------------------------------------------------//

 

class dbPointArray

{

#ifndef _CH_

 private:

         void        *pArray;

#endif

 public:

 dbPointArray();

 ~dbPointArray();

 

 void                append( dbPoint *pt );

 void                appendPt( float x, float y );

 int                        no();

 void                clear();

 

 int                        isSelfIntersecting( int isClosed );

 int                        isOrthogonal( int isClosed );

 int                        isRectangle();

 int                        onEdge( dbPoint point, int isClosed );

 int                        contains( dbPoint point, int includeEdges );

 int                        overlaps( dbBox box );

 float                distanceFrom2( dbPoint point );

 float                getArea();

 int                        hasExtraPoints( int isClosed );

 void                compress( int isClosed );

 void                transform( float scale, float angle );

 void                getBBox( dbBox &box );

 void                index( int pos, dbPoint *pt );

 

 void*                getPointArray();

};

 

//----------------------------------------------------------------------//

 

class dbSelectionSet

{

#ifndef _CH_

 private:

         void                        *pArray;

         dbIntArray                layerFilter;

         dbIntArray                typeFilter;

         dbIntArray                dcodeFilter;

         dbStringArray        netFilter;

#endif

 public:

 dbSelectionSet();

 ~dbSelectionSet();

 

 //Figure Functions

 void                append( dbObject entity );

 void                prepend( dbObject entity );

 void                clear();

 int                        no();

 int                        find( dbObject entity );

 int                        rfind( dbObject entity );

 void                insert( int pos, dbObject entity );

 void                remove( int pos );

 dbObject        index( int pos );

 

 //Selection Set Functions

 int                                selectionCallback        ();

 int                                selectAll                        ();

 int                                selectSelected                ();

 int                                selectPoint                        ( float x, float y );

 int                                selectWindow                ( dbPoint pt1, dbPoint pt2 );

 int                                selectCrossing                ( dbPoint pt1, dbPoint pt2 );

 int                                selectFence                        ( dbPointArray* pts );

 int                                selectWindowPolygon        ( dbPointArray* pts );

 int                                selectCrossingPolygon( dbPointArray* pts );

 

 void                        setLayerFilter                ( dbIntArray* pFilter );

 void                        setTypeFilter                ( dbIntArray* pFilter );

 void                        setDcodeFilter                ( dbIntArray* pFilter );

 void                        setNetFilter                ( dbStringArray* pFilter );

 

 //Get Functions

 void*                        getFigureData                ();

 dbIntArray*                getLayerFilter                ();

 dbIntArray*                getTypeFilter                ();

 dbIntArray*                getDcodeFilter                ();

 dbStringArray*        getNetFilter                ();

};

 

//----------------------------------------------------------------------//

 

class dbPoint

{

#ifndef _CH_

 private:

         float                x;

         float                y;

 

 public:

         dbPoint();

         dbPoint( float xVal, float yVal );

#else

 //Multiple Construction Definition

 public:

         dbPoint(...);

#endif

 public:

         ~dbPoint();

 

         float                getX                        ();

         float                getY                        ();

         void                setX                        ( float xVal );

         void                setY                        ( float yVal );

         void                set                                ( float xVal, float yVal );

 

};

 

//----------------------------------------------------------------------//

 

class dbBox

{

#ifndef _CH_

 private:

         float                left;

         float                top;

         float                right;

         float                bottom;

 

 public:

         dbBox();

         dbBox( dbPoint p1, dbPoint p2 );

         dbBox( float _left, float _top, float _right, float _bottom );

         ~dbBox();

#else

 public:

         dbBox(...);

         ~dbBox();

#endif

 

 float                getLeft();

 float                getTop();

 float                getBottom();

 float                getRight();

 float                getWidth();

 float                getHeight();

 void                setLeft( float val );

 void                setTop( float val );

 void                setBottom( float val );

 void                setRight( float val );

 void                setEmpty();

 void                normalize();

 void                setCenterWidthHeight( dbPoint cen, float width, float height );

 void                getCenter( dbPoint* cen );

 int                        isEqual( dbBox& src );

 int                        isRectEmpty();

};

 

//----------------------------------------------------------------------//

 

class dbAperture

{

#ifndef _CH_

 private:

         int                        shape_type;

         float                width;

         float                height;

         float                od;

         float                id;

         float                base;

         float                top;

         float                delta;

         char                *sCustom;

         float                rotate;

         float                scaleX;

         float                scaleY;

         float                compensation;

         int                        mirror;

         int                        crosshairCount;

         float                crosshairThick;

         float                crosshairLength;

 

         //Rectangle Shape

         float                rectRadius;

         int                        rectCorner_ur;

         int                        rectCorner_ul;

         int                        rectCorner_ll;

         int                        rectCorner_lr;

 

         //Thermal

         float                spokeAngle;

         int                        thermalOpenEnds;

         float                thermalAirGap;

 

         //Moire

         float                moireRingWidth;

         float                moireRingGap;

         int                        moireRingCount;

         float                moireLineWidth;

         float                moireLineLength;

#endif

 

 public:

         dbAperture();

         ~dbAperture();

 

         int                        getType();

         float                getWidth();

         float                getHeight();

         float                getOD();

         float                getID();

         float                getBase();

         float                getTop();

         float                getDelta();

         char*                getCustomName();

         float                getRotation();

         float                getScaleX();

         float                getScaleY();

         float                getCompensation();

         int                        isMirror();

         int                        getCrosshairCount();

         float                getCrosshairThick();

         float                getCrosshairLength();

         float                getRectRadius();

         int                        getRectCorner_ur();

         int                        getRectCorner_ul();

         int                        getRectCorner_ll();

         int                        getRectCorner_lr();

         float                getSpokeAngle();

         int                        getThermalOpenEnds();

         float                getThermalAirGap();

         float                getMoireRingWidth();

         float                getMoireRingGap();

         int                        getMoireRingCount();

         float                getMoireLineWidth();

         float                getMoireLineLength();

 

         void                setType( int val );

         void                setWidth( float val );

         void                setHeight( float val );

         void                setOD( float val );

         void                setID( float val );

         void                setBase( float val );

         void                setTop( float val );

         void                setDelta( float val );

         void                setCustomName( char* val );

         void                setRotation( float val );

         void                setScaleX( float val );

         void                setScaleY( float val );

         void                setCompensation( float val );

         void                setMirror( int val );

         void                setCrosshairCount( int val );

         void                setCrosshairThick( float val );

         void                setCrosshairLength( float val );

         void                setRectRadius( float val );

         void                setRectCorner_ur( int val );

         void                setRectCorner_ul( int val );

         void                setRectCorner_ll( int val );

         void                setRectCorner_lr( int val );

         void                setSpokeAngle( float val );

         void                setThermalOpenEnds( int val );

         void                setThermalAirGap( float val );

         void                setMoireRingWidth( float val );

         void                setMoireRingGap( float val );

         void                setMoireRingCount( int val );

         void                setMoireLineWidth( float val );

         void                setMoireLineLength( float val );

};

 

//----------------------------------------------------------------------//

 

class dbNCTool

{

#ifndef _CH_

 private:

         int                        index;

         int                        plated;

         float                od;

         float                size;

         float                comp;

         float                feed;

         float                speed;

         float                zaxis;

         float                tab;

         char*                sComments;

#endif

 

 public:

         dbNCTool();

         ~dbNCTool();

 

         int                        getIndex();

         int                        isPlated();

         float                getOD();

         float                getSize();

         float                getComp();

         float                getFeed();

         float                getSpeed();

         float                getZAxis();

         float                getTab();

         char*                getComments();

 

         void                setIndex( int val );

         void                setPlated( int val );

         void                setOD( float val );

         void                setSize( float val );

         void                setComp( float val );

         void                setFeed( float val );

         void                setSpeed( float val );

         void                setZAxis( float val );

         void                setTab( float val );

         void                setComments( char* val );

};

 

 

//----------------------------------------------------------------------//

 

class dbLayer

{

#ifndef _CH_

 private:

         int                        nVisible;

         int                        nLock;

         int                        nMarkup;

         int                        nNegative;

         int                        nMirror;

         int                        nColor;

         int                        nFlashColor;

         int                        nType;

         int                        nPriority;

         char*                sName;

#endif

 

 public:

         dbLayer();

         ~dbLayer();

 

         int                        isVisible();

         int                        isLocked();

         int                        isMarkup();

         int                        isNegative();

         int                        isMirror();

         int                        getDrawColor();

         int                        getFlashColor();

         int                        getType();

         int                        getPriority();

         char*                getName();

 

         void                setVisible( int val );

         void                setLocked( int val );

         void                setMarkup( int val );

         void                setNegative( int val );

         void                setMirror( int val );

         void                setDrawColor( int val );

         void                setFlashColor( int val );

         void                setType( int val );

         void                setPriority( int val );

         void                setName( char* val );

};

 

//----------------------------------------------------------------------//

//----------------------------------------------------------------------//

//----------------------------------------------------------------------//

 

class dbImportDxf

{

#ifndef _CH_

 private:

         char                *filename;

         int                        nUnits;

         float                fScale;

         int                        nTraceMode;

         int                        nFillMode;

         int                        nIgnoreHatch;

         int                        nDeEmbedMode;

         int                        nByBlock;

         int                        nIgnoreDimension;        

         int                        nJoin;        

         float                fLineWidth;

         float                fTextWidth;

         float                fTextRatio;

         float                fArcDeviation;

 

         int                        nScan;        

 

#endif

 public:

         dbImportDxf();

         ~dbImportDxf();

 

         char*                getFileName();

         int                        getUnits();

         float                getScale();

         int                        getTraceMode();

         int                        getFillMode();

         int                        getIgnoreHatch();

         int                        getDeEmbedMode();

         int                        getByBlock();

         int                        getIgnoreDimension();        

         int                        getJoin();        

         int                        getScan();        

         float                getLineWidth();

         float                getTextWidth();

         float                getTextRatio();

         float                getArcDeviation();

 

         void                setFileName( char *value );

         void                setUnits( int value );

         void                setScale( float value );

         void                setTraceMode( int value );

         void                setFillMode(int         value );

         void                setIgnoreHatch(int        value );

         void                setDeEmbedMode(int        value );

         void                setByBlock(int        value );

         void                setIgnoreDimension(int        value );        

         void                setJoin(int        value );        

         void                setScan(int        value );        

         void                setLineWidth(float        value );

         void                setTextWidth(float        value );

         void                setTextRatio(float        value );

         void                setArcDeviation(float        value );

 

};

 

//----------------------------------------------------------------------//

 

class dbImportOdb

{

#ifndef _CH_

 private:

         char                *filename;

         char                *foldername;

         int                        nUnits;

         int                        nScan;        

         int                        nLoadFolder;        

 

#endif

 public:

         dbImportOdb();

         ~dbImportOdb();

 

         char*                getFileName();

         char*                getFolderName();

         int                        getUnits();

         int                        isScan();

         int                        isLoadFolder();

         void                setFileName( char *value );

         void                setFolderName( char *value );

         void                setUnits( int value );

         void                setScan( int value );

         void                setLoadFolder( int value );

 

};

 

//----------------------------------------------------------------------//

 

class dbImportImage

{

#ifndef _CH_

 private:

         char                *filename;

         char                *cellname;

         int                nUnits;

         char                *color;

         float                pixelsize;

         int                        nFactor;

#endif

 public:

         dbImportImage();

         ~dbImportImage();

 

         char*                getFileName();

         char*                getCellName();

         int                        getUnits();

         char*                getColor();

         float                getPixelSize();

         int                        getBackgroundRecognitionFactor();

 

         void                setFileName( char *value );

         void                setCellName( char *value );

         void                setUnits( int value );

         void                setColor( char *value );

         void                setPixelSize( float value );

         void                setBackgroundRecognitionFactor( int value );

 

};

 

//----------------------------------------------------------------------//

 

class dbImportGerber

{

#ifndef _CH_

 public:

         char                *sJobname;

         int                        nArc360;

         int                        nMirrorInput;

         int                        nEndAtNewline;

         int                        nMaxBlockSize;

         int                        nUnits;

         int                        nInteger;

         int                        nDecimal;

         int                        nType;

         int                        nSuppression;

 

         dbStringArray        arFileNames;

         dbIntArray                fileTypes;

 

#endif

 public:

         dbImportGerber();

         ~dbImportGerber();

 

         void                setJobName( char *value );

         void                set360Arc( int value );

         void                setMirrorInput( int value );

         void                setEndAtNewline( int value );

         void                setMaxBlockSize( int value );

         void                setUnits( int value );

         void                setInteger( int value );

         void                setDecimal( int value );

         void                setType( int value );

         void                setSuppression( int value );

 

         void                addFileName( char *file_name, int file_type );

         void                clearAll();

 

         //Internal Use Only

         char*                getJobName();

         int                        get360Arc();

         int                        getMirrorInput();

         int                        getEndAtNewline();

         int                        getMaxBlockSize();

         int                        getUnits();

         int                        getInteger();

         int                        getDecimal();

         int                        getType();

         int                        getSuppression();

};

 

//----------------------------------------------------------------------//

 

class dbImportDrill

{

#ifndef _CH_

 public:

         char                *sJobname;

         int                        nUnits;

         int                        nInteger;

         int                        nDecimal;

         int                        nType;

         int                        nSuppression;

 

         dbStringArray        arFileNames;

 

#endif

 public:

         dbImportDrill();

         ~dbImportDrill();

 

         void                setJobName( char *value );

         void                setUnits( int value );

         void                setInteger( int value );

         void                setDecimal( int value );

         void                setType( int value );

         void                setSuppression( int value );

 

         void                addFileName( char *file_name );

         void                clearAll();

 

         //Internal Use Only

         char*                getJobName();

         int                        getUnits();

         int                        getInteger();

         int                        getDecimal();

         int                        getType();

         int                        getSuppression();

};

 

//----------------------------------------------------------------------//

//----------------------------------------------------------------------//

//----------------------------------------------------------------------//

 

class dbExportDxf

{

#ifndef _CH_

 private:

         char                *filename;

         char                *topcell;

         int                        nCreateOutlinesForPaths;

         int                        nFlattenHierarchy;

         int                        nFlattenCompositeLayers;

 

#endif

 public:

         dbExportDxf();

         ~dbExportDxf();

 

         char*                getFileName();

         char*                getTopCellName();

         int                        getCreateOutlinesForPaths();

         int                        getFlattenHierarchy();

         int                        getFlattenCompositeLayers();

 

         void                setFileName( char *value );

         void                setTopJobName( char *value );

         void                setCreateOutlinesForPaths( int value );

         void                setFlattenHierarchy(int         value );

         void                setFlattenCompositeLayers(int         value );

 

};

 

//----------------------------------------------------------------------//

 

class dbExportIges

{

#ifndef _CH_

 public:

         char                *filename;

         char                *topcell;

         char                *version;

         int                        nUnits;

         int                        nTextMode;

         int                        nPathMode;

 

#endif

 public:

         dbExportIges();

         ~dbExportIges();

 

         void                setFileName( char *value );

         void                setTopJobName( char *value );

         void                setVersion( char *value );

         void                setUnits( int value );

         void                setTextMode( int value );

         void                setPathMode(int         value );

 

};

 

//----------------------------------------------------------------------//

 

class dbExportGerber

{

#ifndef _CH_

 public:

         char                *sExportfolder;

         char                *sJobname;

         int                        nUnits;

         int                        nInteger;

         int                        nDecimal;

         int                        nType;

         int                        nSuppression;

         int                        nGbrFormat;

         int                        ArcG75;

         int                        StepRepeat;

         char                *Extension;

 

         dbStringArray        arFileNames;

         dbIntArray                arFileNegative;

         dbIntArray                arFileMirror;

 

#endif

 public:

         dbExportGerber();

         ~dbExportGerber();

 

         void                setExportFolder( char *value );

         void                setJobName( char *value );

         void                setUnits( int value );

         void                setInteger( int value );

         void                setDecimal( int value );

         void                setType( int value );

         void                setSuppression( int value );

         void                setFormat( int value );

         void                setArcG75( int value );

         void                setStepRepeat( int value );

         void                setExtension( char *value );

 

         void                addExportLayer( char *layer, int mirror, int negative );

         void                clearAll();

};

 

//----------------------------------------------------------------------//

 

class dbExportDrill

{

#ifndef _CH_

 public:

         char                *sExportfolder;

         char                *sJobname;

         int                        nUnits;

         int                        nInteger;

         int                        nDecimal;

         int                        nType;

         int                        nSuppression;

         int                        StepRepeat;

         char                *Extension;

 

         dbStringArray        arFileNames;

#endif

 

 public:

         dbExportDrill();

         ~dbExportDrill();

 

         void                setExportFolder( char *value );

         void                setJobName( char *value );

         void                setUnits( int value );

         void                setInteger( int value );

         void                setDecimal( int value );

         void                setType( int value );

         void                setSuppression( int value );

         void                setStepRepeat( int value );

         void                setExtension( char *value );

 

         void                addExportLayer( char *layer );

         void                clearAll();

};

 

//----------------------------------------------------------------------//

 

class dbExportOdb

{

#ifndef _CH_

 public:

         char                *sExportfolder;

         char                *sExportfile;

         char                *sJobname;

         int                        nUnits;

         int                        nOutputProfile;

         int                        nSymbolsAsBoundaries;

 

         dbStringArray        arLayerNames;

#endif

 

 public:

         dbExportOdb();

         ~dbExportOdb();

 

         void                setExportFolder( char *value );

         void                setExportFile( char *value );

         void                setJobName( char *value );

         void                setUnits( int value );

         void                setOutputProfile( int value );

         void                setSymbolsAsBoundaries( int value );

 

         void                addExportLayer( char *layer );

         void                clearAll();

};

 

//----------------------------------------------------------------------//

//----------------------------------------------------------------------//

//----------------------------------------------------------------------//

 

class dbDrcSettings

{

#ifndef _CH_

 private:

         dbBox                boxSearchArea;

         int                        nMissingLayerCheck;

         char                *sDcodeFilter;

         char                *sTextErrorFile;

 

         dbFloatArray        arSignalValues;

         dbFloatArray        arPlaneValues;

         dbFloatArray        arSilkValues;

         dbFloatArray        arDrillValues;

         dbFloatArray        arMaskValues;

 

         dbIntArray                arSignalCheck;

         dbIntArray                arPlaneCheck;

         dbIntArray                arSilkCheck;

         dbIntArray                arDrillCheck;

         dbIntArray                arMaskCheck;

 

         dbIntArray                arSignalFix;

         dbIntArray                arPlaneFix;

         dbIntArray                arSilkFix;

         dbIntArray                arDrillFix;

         dbIntArray                arMaskFix;

 

#endif

 public:

 dbDrcSettings();

 ~dbDrcSettings();

 

 void                setSearchArea( dbBox box );

 void                setMissingLayerCheck( int nLayerCheck );

 void                setDcodeFilter( char* sFilter );

 void                setTextErrorFile( char* sErrorFile );

 

 void                setCheckMinimumPadSize( int value );

 void                setMinimumPadSize( float value );

 void                setFixMinimumPadSize( int value );

 

 void                setCheckMinimumSMTPadWidth( int value );

 void                setMinimumSMTPadWidth( float value );

 void                setFixMinimumSMTPadWidth( int value );

 

 void                setCheckMinimumTraceWidth( int value );

 void                setMinimumTraceWidth( float value );

 void                setFixMinimumTraceWidth( int value );

 

 void                setCheckMinimumSpacingOuterLayers( int value );

 void                setMinimumSpacingOuterLayers( float value );

 void                setFixMinimumSpacingOuterLayers( int value );

 

 void                setCheckMinimumSpacingInnerLayers( int value );

 void                setMinimumSpacingInnerLayers( float value );

 void                setFixMinimumSpacingInnerLayers( int value );

 

 void                setCheckMinimumAnnularRing( int value );

 void                setMinimumAnnularRing( float value );

 void                setFixMinimumAnnularRing( int value );

 

 void                setCheckClearancefromBoardEdge( int value );

 void                setClearancefromBoardEdge( float value );

 void                setFixClearancefromBoardEdge( int value );

 

 void                setCheckFindAcidTraps( int value );

 void                setFindAcidTraps( float value );

 void                setFixFindAcidTraps( int value );

 

 void                setCheckFindNonFunctionalPadsInnerLayers( int value );

 void                setFixFindNonFunctionalPadsInnerLayers( int value );

 

 void                setCheckMinimumDrillSize( int value );

 void                setMinimumDrillSize( float value );

 void                setFixMinimumDrillSize( int value );

 

 void                setCheckFindDoubleHits( int value );

 void                setFixFindDoubleHits( int value );

 

 void                setCheckFindMissingHits( int value );

 void                setFixFindMissingHits( int value );

 

 void                setCheckFindMissingPadsforPlatedDrillHits( int value );

 void                setFixFindMissingPadsforPlatedDrillHits( int value );

 

 void                setCheckFindTouchingHoles( int value );

 void                setFixFindTouchingHoles( int value );

 

 void                setCheckMinimumSilkscreenLineWidth( int value );

 void                setMinimumSilkscreenLineWidth( float value );

 void                setFixMinimumSilkscreenLineWidth( int value );

 

 void                setCheckFindSilkscreenoverSoldermask( int value );

 void                setFindSilkscreenoverSoldermask( float value );

 void                setFixFindSilkscreenoverSoldermask( int value );

 

 void                setCheckSilkClearancefromBoardEdge( int value );

 void                setSilkClearancefromBoardEdge( float value );

 void                setFixSilkClearancefromBoardEdge( int value );

 

 void                setCheckLocateUndersizedMaskClearances( int value );

 void                setLocateUndersizedMaskClearances( float value );

 void                setFixLocateUndersizedMaskClearances( int value );

 

 void                setCheckLocateMissingMaskClearances( int value );

 void                setFixLocateMissingMaskClearances( int value );

 

 void                setCheckFindMaskSlivers( int value );

 void                setFixFindMaskSlivers( int value );

 

 void                setCheckFindSolderBridges( int value );

 void                setFindSolderBridges( float value );

 void                setFixFindSolderBridges( int value );

 

 void                setCheckInnerClearanceDrilltofeature( int value );

 void                setInnerClearanceDrilltofeature( float value );

 void                setFixInnerClearanceDrilltofeature( int value );

 

 void                setCheckPowerGroundMinimumAnnularRing( int value );

 void                setPowerGroundMinimumAnnularRing( float value );

 void                setFixPowerGroundMinimumAnnularRing( int value );

 

 void                setCheckFindStarvedThermals( int value );

 void                setFindStarvedThermals( float value );

 void                setFixFindStarvedThermals( int value );

 

 void                setCheckPowerGroundShort( int value );

 void                setFixPowerGroundShort( int value );

 

 void                setCheckNegPlaneThermalConflicts( int value );

 void                setFixNegPlaneThermalConflicts( int value );

 

 void                setCheckFindIsolatedConnections( int value );

 void                setFixFindIsolatedConnections( int value );

 

 /////////////////////////////////////////////////////////

 

 void                getSearchArea( dbBox* box );

 void                getMissingLayerCheck( int* nLayerCheck );

 void                getDcodeFilter( char* sFilter );

 void                getTextErrorFile( char* sErrorFile );

 

 void                getCheckMinimumPadSize( int* value );

 void                getMinimumPadSize( float* value );

 void                getFixMinimumPadSize( int* value );

 

 void                getCheckMinimumSMTPadWidth( int* value );

 void                getMinimumSMTPadWidth( float* value );

 void                getFixMinimumSMTPadWidth( int* value );

 

 void                getCheckMinimumTraceWidth( int* value );

 void                getMinimumTraceWidth( float* value );

 void                getFixMinimumTraceWidth( int* value );

 

 void                getCheckMinimumSpacingOuterLayers( int* value );

 void                getMinimumSpacingOuterLayers( float* value );

 void                getFixMinimumSpacingOuterLayers( int* value );

 

 void                getCheckMinimumSpacingInnerLayers( int* value );

 void                getMinimumSpacingInnerLayers( float* value );

 void                getFixMinimumSpacingInnerLayers( int* value );

 

 void                getCheckMinimumAnnularRing( int* value );

 void                getMinimumAnnularRing( float* value );

 void                getFixMinimumAnnularRing( int* value );

 

 void                getCheckClearancefromBoardEdge( int* value );

 void                getClearancefromBoardEdge( float* value );

 void                getFixClearancefromBoardEdge( int* value );

 

 void                getCheckFindAcidTraps( int* value );

 void                getFindAcidTraps( float* value );

 void                getFixFindAcidTraps( int* value );

 

 void                getCheckFindNonFunctionalPadsInnerLayers( int* value );

 void                getFixFindNonFunctionalPadsInnerLayers( int* value );

 

 void                getCheckMinimumDrillSize( int* value );

 void                getMinimumDrillSize( float* value );

 void                getFixMinimumDrillSize( int* value );

 

 void                getCheckFindDoubleHits( int* value );

 void                getFixFindDoubleHits( int* value );

 

 void                getCheckFindMissingHits( int* value );

 void                getFixFindMissingHits( int* value );

 

 void                getCheckFindMissingPadsforPlatedDrillHits( int* value );

 void                getFixFindMissingPadsforPlatedDrillHits( int* value );

 

 void                getCheckFindTouchingHoles( int* value );

 void                getFixFindTouchingHoles( int* value );

 

 void                getCheckMinimumSilkscreenLineWidth( int* value );

 void                getMinimumSilkscreenLineWidth( float* value );

 void                getFixMinimumSilkscreenLineWidth( int* value );

 

 void                getCheckFindSilkscreenoverSoldermask( int* value );

 void                getFindSilkscreenoverSoldermask( float* value );

 void                getFixFindSilkscreenoverSoldermask( int* value );

 

 void                getCheckSilkClearancefromBoardEdge( int* value );

 void                getSilkClearancefromBoardEdge( float* value );

 void                getFixSilkClearancefromBoardEdge( int* value );

 

 void                getCheckLocateUndersizedMaskClearances( int* value );

 void                getLocateUndersizedMaskClearances( float* value );

 void                getFixLocateUndersizedMaskClearances( int* value );

 

 void                getCheckLocateMissingMaskClearances( int* value );

 void                getFixLocateMissingMaskClearances( int* value );

 

 void                getCheckFindMaskSlivers( int* value );

 void                getFixFindMaskSlivers( int* value );

 

 void                getCheckFindSolderBridges( int* value );

 void                getFindSolderBridges( float* value );

 void                getFixFindSolderBridges( int* value );

 

 void                getCheckInnerClearanceDrilltofeature( int* value );

 void                getInnerClearanceDrilltofeature( float* value );

 void                getFixInnerClearanceDrilltofeature( int* value );

 

 void                getCheckPowerGroundMinimumAnnularRing( int* value );

 void                getPowerGroundMinimumAnnularRing( float* value );

 void                getFixPowerGroundMinimumAnnularRing( int* value );

 

 void                getCheckFindStarvedThermals( int* value );

 void                getFindStarvedThermals( float* value );

 void                getFixFindStarvedThermals( int* value );

 

 void                getCheckPowerGroundShort( int* value );

 void                getFixPowerGroundShort( int* value );

 

 void                getCheckNegPlaneThermalConflicts( int* value );

 void                getFixNegPlaneThermalConflicts( int* value );

 

 void                getCheckFindIsolatedConnections( int* value );

 void                getFixFindIsolatedConnections( int* value );

 

};

 

//----------------------------------------------------------------------//

//----------------------------------------------------------------------//

//----------------------------------------------------------------------//

 

class dbDlgProperty

{

#ifndef _CH_

 private:

         void        *pDlgTable;

 

 

#endif

 public:

 dbDlgProperty();

 ~dbDlgProperty();

 

 void                setWidth( int val );

 void                setHeight( int val );

 void                setTitle( char* sCaption );

 void                setColumnWidth( int val );

 void                addPropertyRow( int nItemType, char* sCaption, char* sDefault, dbStringArray* pComboItems );

 void                getItemText( int nRow, char* sValue );

 int                        getItemCheck( int nRow );

 int                        execute();

 

};

 

 

//----------------------------------------------------------------------//

//----------------------------------------------------------------------//

//----------------------------------------------------------------------//

 

 

//----------------------------------------------------------------------//

// Global Function Definitions

//----------------------------------------------------------------------//

 

 void princ( char* sMessage );

 void beginWaitCursor();

 void endWaitCursor();

 int ColortoInt( int R, int G, int B );

 int inputDialog( char* sCaption, char* sLabel, char* sResult );

 int fileDialog( char* sCaption, char* sPatternList, char* sFile );

 int directoryDialog( char* sCaption, char* sPath );

 int messageBox( char* sCaption, char* sLabel, int mode );

 

 

//----------------------------------------------------------------------//

// Database Definitions

//----------------------------------------------------------------------//

 

 int                        dbGetType                        ( dbObject obj );

 int                        dbIsValid                        ( dbObject obj );

 int                        dbIsInstance                ( dbObject obj );

 int                dbHasPin                        ( dbObject obj );

 dbObject        dbGetPin                        ( dbObject obj );

 dbObject        dbGetJob                        ( char* jobname, char mode );

 dbObject        dbGetActiveJob                ();

 int                        dbGetBBox                        ( dbObject obj, dbBox *box );

 int                        dbGetOutline                ( dbObject obj, dbPointArray *pts );

 void                dbSetActiveLayer        ( int layer );

 void                dbSetActiveDcode        ( int dcode );

 void                dbSetActiveTool                ( int tool );

 void                dbSetActiveEip                ( int eip );

 void                dbSetActiveMarkupLayer        ( int markuplayer );

 void                dbSetActiveComponent        ( int component );

 void                dbSetActivePanelize        ( int panelize );

 int                        dbGetActiveLayer        ();

 int                        dbGetActiveDcode        ();

 int                        dbGetActiveTool                ();

 int                        dbGetActiveEip                ();

 int                        dbGetActiveMarkupLayer        ();

 int                        dbGetActiveComponent        ();

 int                        dbGetActivePanelize        ();

 void                dbGetHomeDirectory                ( char* sDirectory );

 void                dbGetTempDirectory                ( char* sDirectory );

 void                dbGetCurrentDirectory        ( char* sDirectory );

 void                dbGetExportDirectory        ( char* sDirectory );

 void                dbSetExportDirectory        ( char* sDirectory );

 

 //Transform

 void                dbDestroy                        ( dbObject obj );

 void                dbTransform                        ( dbObject obj, float scale, float angle );

 void                dbMove                                ( dbObject obj, float xOffset, float yOffset, int orient );

 void                dbCopy                                ( dbObject obj, float xOffset, float yOffset, int orient );

 void                dbMoveToJob                        ( dbObject obj, float xOffset, float yOffset, int orient, dbObject job );

 void                dbCopyToJob                        ( dbObject obj, float xOffset, float yOffset, int orient, dbObject job );

 

 //Units

 float                dbGetDBUPerUU                ();

 int                dbGetUserUnits                ();

 void                dbSetDBUPerUU                ( float dbu );

 void                dbSetUserUnits                ( int units );

 

 //Layers

 void                dbSetLayerAllOn                ();

 void                dbSetLayerAllOff        ();

 void                dbGetLayer                        ( int layer_num, dbLayer *layer );

 void                dbGetLayerByName        ( char* layer_name, dbLayer *layer );

 void                dbSetLayer                        ( int layer_num, dbLayer *layer );

 void                dbSetLayerByName        ( char* layer_name, dbLayer *layer );

 int                        dbFindLayer                        ( dbLayer *layer );

 int                        dbAddLayer                        ( dbLayer *layer );

 int                        dbIsLayerEmpty                ( int layer_num );

 void                dbGetAllLayerNames        ( dbStringArray* layers );

 void                dbGetAllLayerNumbers( dbIntArray* layers );

 int                        dbGetLayerNum                ( dbObject obj );

 int                        dbSetLayerNum                ( dbObject obj, int layer );

 

 //Jobs/Pages

 void                dbGetJobs                        ( dbStringArray* jobs );

 void                dbGetOpenJobs                ( dbStringArray* jobs );

 void                dbGetPanels                        ( dbStringArray* panels );

 void                dbGetOpenPanels                ( dbStringArray* panels );

 

 //PDF Reports

 void                dbGeneratePdfDfmViolations        ( char* filename, char* description, int units );

 void                dbGeneratePdfNetErrors                ( char* filename, char* description, int units );

 void                dbGeneratePdfJoinErrors                ( char* filename, char* description, int units );

 

 //Dcodes/Apertures

 void                dbGetAperture                ( int dcode_num, dbAperture *aperture );

 void                dbSetAperture                ( int dcode_num, dbAperture *aperture );

 int                        dbFindDcode                        ( dbAperture *aperture );

 int                        dbIsDcodeEmpty                ( int dcode_num );

 

 //NC Tool

 void                dbGetNCTool                        ( int tool_num, dbNCTool *tool );

 void                dbSetNCTool                        ( int tool_num, dbNCTool *tool );

 int                        dbFindNCTool                ( dbNCTool *tool );

 int                        dbIsNCToolEmpty                ( int tool_num );

 

 //Composites

 int                        dbGetCompositeNum        ( dbObject obj );

 int                        dbSetCompositeNum        ( dbObject obj, int composite );

 

 

 //Nets

 int                        dbHasNet                        ( dbObject obj );

 dbObject        dbGetNet                        ( dbObject obj );

 void                dbAddToNet                        ( dbObject obj, dbObject net );

 

 

 

 //Database Functions

 int                        dbOpenJob                        ( char* job );

 int                        dbCopyJob                        ( char* src_job, char* dst_job );

 int                        dbScanDxf                        ( dbImportDxf* options, dbStringArray* layers, dbStringArray* cells, dbStringArray* styles );

 int                        dbScanOdb                        ( dbImportOdb* options, dbStringArray* layers, dbStringArray* steps );

 

 

//----------------------------------------------------------------------//

//        User Interface Definitions

//----------------------------------------------------------------------//

 

 int                uiFileNewJob                        ( char* job );

 int                uiFileNewPanel                        ( char* panel, int units, float width, float height );

 int                uiFileOpenWorkspace                ( char* filename );

 int                uiFileCloseWorkspace        ();

 int                uiFileSaveWorkspace                ();

 int                uiFileSaveWorkspaceAs        ( char* filename );

 int                uiFileSave                                ();

 

 int                uiFileImportDXF                        ( dbImportDxf* options );

 int                uiFileImportOdb                        ( dbImportOdb* options );

 int                uiFileImportImage                ( dbImportImage* options );

 int                uiFileImportPostscript        ( char* filename, float fScale );

 int                uiFileImportZip                        ( char* filename, int nFileType );

 int                uiFileImportGerber                ( dbImportGerber* options );

 int                uiFileImportDrill                ( dbImportDrill* options );

 

 int                uiFileExportDXF                        ( dbExportDxf* options );

 int                uiFileExportIGES                ( dbExportIges* options );

 int                uiFileExportImage                ( char* filename, char* units, float fScale );

 int                uiFileExportPostscript        ( char* foldername, float fScale );

 int                uiFileExportGerber                ( dbExportGerber* options );

 int                uiFileExportDrill                ( dbExportDrill* options );

 int                uiFileExportOdb                        ( dbExportOdb* options );

 

 int                uiEditDelete                        ( dbSelectionSet* sset );

 int                uiEditMove                                ( dbSelectionSet* sset, dbPoint* offset );

 int                uiEditCopy                                ( dbSelectionSet* sset, dbPoint* offset );

 int                uiEditCopyToLayers                ( dbSelectionSet* sset, dbIntArray* layers );

 int                uiEditMirrorHorizontal        ( dbSelectionSet* sset, dbPoint* refPt );

 int                uiEditMirrorVertical        ( dbSelectionSet* sset, dbPoint* refPt );

 int                uiEditRotate                        ( dbSelectionSet* sset, float angle, dbPoint* cenPt );

 int                uiEditArray                                ( dbSelectionSet* sset, int nCols, int nRows, float fColDistance, float fRowDistance );

 int                uiEditScale                                ( dbSelectionSet* sset, float scale, dbPoint* cenPt );

 int                uiEditDeEmbed                        ( dbSelectionSet* sset );

 int                uiEditBoolAdd                        ( dbSelectionSet* sset );

 int                uiEditBoolSubtract                ( dbSelectionSet* sset );

 int                uiEditBoolIntersect                ( dbSelectionSet* sset );

 int                uiEditBoolDifference        ( dbSelectionSet* sset );

 int                uiEditExplodeAll                ( dbSelectionSet* sset );

 int                uiEditAddLayer                        ( char* lname, int nLayer );

 int                uiEditDeleteLayer                ( int nLayer );

 int                uiEditDeleteLayerName        ( char* lname );

 int                uiEditScaleLayerXY                ( int nLayer, float scaleX, float scaleY );

 

 int                uiViewRedraw();

 int                uiViewZoomAll();

 int                uiViewZoomIn();

 int                uiViewZoomOut();

 int                uiViewZoomWindow( dbPoint* pt1, dbPoint* pt2 );

 int                uiViewZoomPrevious();

 int                uiViewZoomToCoordinates( dbPoint* cenPt );

 int                uiViewZoomToSelection();

 int                uiViewPanLeft();

 int                uiViewPanRight();

 int                uiViewPanUp();

 int                uiViewPanDown();

 int                uiViewPanToPoint( dbPoint* cenPt );

 int                uiViewShowBackgroundImage( int nValue );

 int                uiViewExternalNetsSize( float fValue );

 int                uiViewExternalNetsViewTop( int nValue );

 int                uiViewExternalNetsViewBottom( int nValue );

 int                uiViewFill( int nValue );

 int                uiViewTranslucent( int nValue );

 int                uiViewHighlightDcode( int nValue );

 int                uiViewOriginIcon( int nValue );

 int                uiViewFilmBox( int nValue );

 int                uiViewInsert( int nValue );

 int                uiViewJobProfile( int nValue );

 int                uiViewMarkup( int nValue );

 int                uiViewFullScreen( int nValue );

 int                uiViewCommandConsole( int nValue );

 int                uiViewGrid( int nValue );

 int                uiViewSetGrid( int units, float xSize, float ySize );

 int                uiViewFilterFlashes( int nValue );

 int                uiViewFilterTraces( int nValue );

 int                uiViewFilterPolygons( int nValue );

 int                uiViewFilterText( int nValue );

 int                uiViewSnap( int nSnapMode );

 int                uiViewOrtho( int nOrthoMode );

 int                uiViewSetBackgroundImage( char* imagefilepath, int DPI, dbPoint* pt );

 int                uiViewExternalNetsOffset( dbPoint* pt );

 int                uiViewExternalNetsScale( float fValue );

 

 int                uiAddFlash( int nLayer, int nCompositeLevel, dbPoint* pt );

 int                uiAddTrace( int nLayer, int nCompositeLevel, dbPointArray* pts );

 int                uiAddPolygon( int nLayer, int nCompositeLevel, dbPointArray* pts );

 int                uiAddWidePath( int nLayer, int nCompositeLevel, dbPointArray* pts, float width, int nPathStyle );

 int                uiAddRectangle( int nLayer, int nCompositeLevel, dbPoint* cen, float width, float height );

 int                uiAddRectanglePts( int nLayer, int nCompositeLevel, dbPoint* pt1, dbPoint* pt2 );

 int                uiAddCircle( int nLayer, int nCompositeLevel, dbPoint* cen, float radius );

 int                uiAddArc( int nLayer, int nCompositeLevel, dbPoint* cen, float radius, float start, float end );

 int                uiAddDonut( int nLayer, int nCompositeLevel, dbPoint* cen, float od, float id );

 int                uiAddEllipse( int nLayer, int nCompositeLevel, dbPoint* cen, float width, float height );

 int                uiAddText( int nLayer, int nCompositeLevel, char *text, char *fontStyle, dbPoint* origin, float height, int orient, int alignment );

 int                uiAddMText( int nLayer, int nCompositeLevel, char *text, char *fontStyle, dbBox* box, float height, int orient, int alignment, int usePolygon );

 

 int                uiJobInsert( char* job, dbPoint* pt, int orient );

 int                uiJobInsertArray( char* job, dbPoint* pt, int orient, int nCols, int nRows, float fColDistance, float fRowDistance );

 int                uiJobDelete( char* job );

 int                uiJobFlatten( int nLevel );

 

 int                uiToolsBareBoardAnalysis( dbDrcSettings* drcSettings );

 int                uiToolsMinimumGap( dbSelectionSet* sset, float fGap, int searchLevel );

 int                uiToolsMinimumWidth( dbSelectionSet* sset, float fWidth, int searchLevel );

 int                uiToolsDeEmbed( dbSelectionSet* sset );

 int                uiToolsSilkScreenOptimizer( int nSilkLayer, int nSolderLayer, float fClearance, float fMinStubLength );

 int                uiToolsCopperBalancing( int nOutputLayer, dbPointArray* pts, float fClearance, float fMinSize );

 int                uiToolsEtchCompensation( dbSelectionSet* sset, float fSizePerSide );

 int                uiToolsPinHoleElimination( float fMaxSize );

 int                uiToolsTearDropCreation( dbSelectionSet* sset, int nTeardropType, float fOffsetMultiple );

 int                uiToolsRemovePads( dbSelectionSet* sset, int nIsolated, int nStacked );

 int                uiToolsRemoveCoveredData( dbSelectionSet* sset );

 int                uiToolsGeneratePasteLayer( int nCreateTopPaste, int nCreateBottomPaste, float fMaskClearance );

 int                uiToolsCreatePcbbBoarderLayer( dbSelectionSet* sset );

 int                uiToolsNetlistExtraction( int nAllowSinglePointNets, int nAllowNetsWithoutPads );

 int                uiToolsCompareNets();

 int                uiToolsFindNetShorts();

 int                uiToolsApplyExternalNetlist();

 int                uiToolsGerberLayerToDrill( int nGerberLayer, int nDrillLayer, int nDrillType, float fAnnularRing );

 int                uiToolsDrillLayerToGerber( int nDrillLayer, int nGerberLayer );

 int                uiToolsCreateDrillLayer( int nTopLayer, int nBottomLayer, float fTolerance, float fAnnularRing  );

 int                uiToolsHomebasePadConversion( dbSelectionSet* sset, int nDirection, int nEdgeFactorWidth, int nEdgeFactorHeight, int nOutputLayer, int nApplyToAll, float fTolerance );

 int                uiToolsCPadConversion( dbSelectionSet* sset, int nPattern, int nAdjust, int nDepthValue, int nWidthValue, int nOutputLayer, int nApplyToAll, float fTolerance );

 int                uiToolsSplitPads( dbSelectionSet* sset, int nSplitPattern, float fGapWidth, int nOutputLayer, int nApplyToAll );

 int                uiToolsScalePads( dbSelectionSet* sset, int nScaleAdjust, float fPercentageX, float fPercentageY, int nOutputLayer );

 int                uiToolsPadPitchAdjustment( dbSelectionSet* sset, int nPadAdjust, float fMaxPitch, float fPadSizeToPitchPercentage, int nOutputLayer );

 int                uiToolsHeelToeEdits( dbSelectionSet* sset, int nAdjust, float fHeelPercentage, float fToePercentage, int nOutputLayer, int nApplyToAll, float fTolerance );

 int                uiToolsAddEpoxyBars( dbSelectionSet* sset, int nGapFactorWidth, int nGapFactorHeight, int nOutputLayer, int nDeleteOldObjects, int nApplyToAll, float fTolerance );

 int                uiToolsAddComponents( dbSelectionSet* sset, dbSelectionSet* ssetPin1, char* sFootprintName, int nType, int nSide, int nRotation, int nApplyToAll );

 int                uiToolsInsertComponent( char* sFootprintName, int nSide, int nRotation );

 int                uiToolsDrawToFlashAutomatic( dbSelectionSet* sset, int nShape, int nOutputLayer, float fTolerance );

 int                uiToolsDrawToFlashInteractive( dbSelectionSet* sset, int nShape, int nOutputLayer, int nApplyToAll, float fTolerance );

 int                uiToolsDrawToFlashInteractiveUseDcode( dbSelectionSet* sset, int nDcode, int nOutputLayer, int nApplyToAll, float fTolerance );

 int                uiToolsConvertToCustomAperture( dbSelectionSet* sset, char* sCustomName, int nDcode, int nReplaceExistingData );

 int                uiToolsConvertToNewJob( dbSelectionSet* sset, char* sJobName, int nAnchorPoint, int nReplaceExistingData );

 int                uiToolsMergeOverlappingObjects( dbSelectionSet* sset );

 int                uiToolsJoinWizard( dbSelectionSet* sset, float fJoinTolerance, int nConvertClosedToPolygons );

 int                uiToolsRemoveTinySegments( dbSelectionSet* sset, float fMinSegmentLength );

 int                uiToolsChopPolygons( int nMaxPolygonVertices );

 int                uiToolsFixInvalidPolygons();

 int                uiToolsDeEmbedLayer( int nLayer, int nOutputLayer );

 int                uiToolsBuildCompositeLayers( char* sNewLayer, int nPolarity, dbIntArray* layers, dbIntArray* polarities );

 int                uiToolsFlattenComposite( int nLayer );

 int                uiToolsSeparateComposite( int nLayer );

 int                uiToolsOpenComposite( int nLayer );

 int                uiToolsCloseComposite();

 float        uiToolsCopperAreaCalculation( int nLayer, int nUnits );