Schematic API Constants

Now reading version 17.0. For the latest, read: Schematic API Constants for version 22

Parent page: Technical Reference - Schematic API

Please note that this documentation was last updated for an older version of Altium Designer. While many of the principles and approaches will remain the same, be aware that interfaces, objects, methods, properties, and the like will have changed since then, and will not reflect the entirety of those found in later versions of the software.

Schematic API: Constants Reference

The Schematic API Constants reference includes the following content:

Internal Unit constants
MM to Internal Units Values
Other Constants
Power Object constants
Parameter Set constants
Title Block constants
Differential Pair constants

 

Internal Unit constants

cUnits : Array [TUnit] Of TDynamicString   = ('mil', 'mm', 'in', 'cm', '', 'm', 'AutoImperial', 'AutoMetric');
cUnitSystems : Array[TUnitSystem] Of TUnitSet = ([eMil, eIN, eDXP, eAutoImperial], [eMM,  eCM, eM, eAutoMetric]);
cAutoUnits = [eAutoImperial, eAutoMetric];
cDefaultUnit             : Array[TUnitSystem] Of TUnit = (eDXP, eMM);
cDefaultGridSettingsUnit : Array[TUnitSystem] Of TUnit = (eMil, eMM);
 
//1 DXP 2004 SP1 Internal Unit =
// 100000 DXP 2004 SP2 Internal Unit (= 10 mils)
cBaseUnit           = 100000;
 
//1 mil = 10000 DXP 2004 SP2 internal units
cInternalPrecision  = 10000;
 
//Size of workspace in DXP 2004 SP1 base logical unit
cMaxWorkspace       = 6500;
 
//Size of workspace in DXP 2004 SP1 base logical unit
cMinWorkspace       = 10;
 
//Size of workspace in the new logical unit - max
cMaxWorkspaceSize   = cMaxWorkspace*cBaseUnit;
 
//Size of workspace in the new logical unit - min
cMinWorkspaceSize   = cMinWorkspace*cBaseUnit;
CMaxTextParamLength = 32000;
 
cSchInternalTolerance_Metric = 2*cInternalPrecision;
 
//0 for imperial and 0.004318mm for metric
cSchInternalTolerance : Array[TUnitSystem] Of TCoord = (0, cSchInternalTolerance_Metric);
 
cSymbolLineWidthArray : Array [TSize] of  Integer  = (0,1*cBaseUnit,3*cBaseUnit,5*cBaseUnit);
 
cDefaultCustomSizeX_Sheet    : Array[TUnitSystem] Of Integer = (1500*cBaseUnit,   30*c10_0MM);
cDefaultCustomSizeY_Sheet    : Array[TUnitSystem] Of Integer = (950 *cBaseUnit,   20*c10_0MM);
cDefaultCustomSizeX_Library  : Array[TUnitSystem] Of Integer = (2000*cBaseUnit,   40*c10_0MM);
cDefaultCustomSizeY_Library  : Array[TUnitSystem] Of Integer = (2000*cBaseUnit,   40*c10_0MM);
cDefaultCustomMarginWidth    : Array[TUnitSystem] Of Integer = (20  *cBaseUnit,      c5_0MM );
 
cPolylineCutterBoxHeight      =  3 *cBaseUnit;
cDefaultSheetFileNamePosition       : Array[TUnitSystem] Of Integer = (10 *cBaseUnit, c2_5MM);
cBusEntryLength                     : Array[TUnitSystem] Of Integer = (10 *cBaseUnit, c2_0MM);
cDefaultPortWidth                   : Array[TUnitSystem] Of Integer = (50 *cBaseUnit, c10_0MM);
cDefaultSheetSymbolXSize            : Array[TUnitSystem] Of Integer = (80 *cBaseUnit, 5*c7_5MM);
cDefaultSheetSymbolYSize            : Array[TUnitSystem] Of Integer = (50 *cBaseUnit, 5*c5_0MM);
cDefaultSheetEntryGridSize          : Array[TUnitSystem] Of Integer = (10 *cBaseUnit, c2_5MM);
cDefaultPolylineCutterFixedLength   : Array[TUnitSystem] Of Integer = (10 *cBaseUnit, c2_5MM);
cDefaultAutoPanJumpDistance         : Array[TUnitSystem] Of Integer = (30 *cBaseUnit, c7_5MM);
cDefaultAutoPanShiftJumpDistance    : Array[TUnitSystem] Of Integer = (100*cBaseUnit, c25_0MM);
cDefaultPinLength                   : Array[TUnitSystem] Of Integer = (30 *cBaseUnit, c0_50MM);
cDefaultCircleRadius                : Array[TUnitSystem] Of Integer = (100*cBaseUnit, c7_5MM);
cDefaultArcRadius                   : Array[TUnitSystem] Of Integer = (10 *cBaseUnit, c5_0MM);
cDefaultStartAngle                  = 30;
cDefaultEndAngle                    = 330;
cDefaultEllipseRadius               : Array[TUnitSystem] Of Integer = (20 * cBaseUnit, c5_0MM);
cDefaultEllipseSecondaryRadius      : Array[TUnitSystem] Of Integer = (10 * cBaseUnit, c2_5MM);
cDefaultEllipticalArcSecondaryRadius: Array[TUnitSystem] Of Integer = (10 * cBaseUnit, c2_5MM);
cDefaultRectangleCornerX            : Array[TUnitSystem] Of Integer = (50 * cBaseUnit, c5_0MM);
cDefaultRectangleCornerY            : Array[TUnitSystem] Of Integer = (50 * cBaseUnit, c5_0MM);
cDefaultIEESymbolScale              : Array[TUnitSystem] Of Integer = (10 * cBaseUnit, c2_5MM);
cDefaultRoundRectCornerXRadius      : Array[TUnitSystem] Of Integer = (20 * cBaseUnit, c0_50MM);
cDefaultRoundRectCornerYRadius      : Array[TUnitSystem] Of Integer = (20 * cBaseUnit, c0_50MM);
cDefaultLabelXSize                  : Array[TUnitSystem] Of Integer = (40 * cBaseUnit, c0_25MM);
cDefaultLabelYSize                  : Array[TUnitSystem] Of Integer = (10 * cBaseUnit, c0_50MM);
cIEESymbolScale_Min                 = 1   * cBaseUnit;
cIEESymbolScale_Max                 = 200 * cBaseUnit;
cIEESymbolScale_Step                = 1  * cBaseUnit;
 
cDuplicateOffsetX                   : Array[TUnitSystem] Of Integer = ( 20 * cBaseUnit,  c5_0MM);
cDuplicateOffsetY                   : Array[TUnitSystem] Of Integer = (-20 * cBaseUnit, -c5_0MM);
 
cJumpLocationZoomRectWidth          = 200 * cBaseUnit;
cJumpLocationZoomRectHeight         = 200 * cBaseUnit;
cSheetSymbolBoundingRectInflate     = 20  * cBaseUnit;
cPinFullBoundingRectInflate         = 5   * cBaseUnit;
cPolylineBoundingRectInflate        = 10  * cBaseUnit;
cFindReplaceRectInflate             = 50  * cBaseUnit;
cPinIEEESymbolRectInflateBy         = 6   * cBaseUnit;
cPortWidthInflate                   = 10  * cBaseUnit;
cMinPortWidth                       = 30  * cBaseUnit;
cMinSheetSymbolBorderGap            : Array[TUnitSystem] Of Integer = (10 * cBaseUnit, c2_5MM);
 

MM to Internal Units Values

Each Millimetre constant value is expressed in internal units (rounded to nearest integer value).
c0_25MM = 98425;
c0_50MM = 196850;
c0_75MM = 295275;
c1_00MM = 393701;
c1_5MM  = 590551;
c2_0MM  = 787402;
c2_5MM  = 984252;
c3_0MM  = 1181102;
c3_5MM  = 1377953;
c4_0MM  = 1574803;
c4_5MM  = 1771654;
c5_0MM  = 1968504;
c5_5MM  = 2165354;
c6_0MM  = 2362205;
c6_5MM  = 2559055;
c7_0MM  = 2755906;
c7_5MM  = 2952756;
c8_0MM  = 3149606;
c8_5MM  = 3346457;
c9_0MM  = 3543307;
c9_5MM  = 3740157;
c10_0MM = 3937008;
c15_0MM = 5905512;
c20_0MM = 7874016;
c25_0MM = 9842520;
c30_0MM = 11811024;
c35_0MM = 13779528;
c40_0MM = 15748031;
c45_0MM = 17716535;
c50_0MM = 19685039;
c55_0MM = 21653543;
c60_0MM = 23622047;
c65_0MM = 25590551;
c70_0MM = 27559055;
c75_0MM = 29527559;
c80_0MM = 31496063;
c85_0MM = 33464567;
c90_0MM = 35433071;
c95_0MM = 37401575;
c100_0MM  = 39370078;
c1000_0MM = 393700787;

Other Constants

cMaxShortStringLength

cMaxShortStringLength = 254;

cOldSheetEntryGrid

cOldSheetEntryGrid = 10;

cOldMaxPolygonVertices

cOldMaxPolygonVertices = 50;
cCharacterApproximativeWidth  = 8  * cBaseUnit;
cCharacterApproximativeHeight = 10 * cBaseUnit;
cCharacterWidthTolerance      = 4  * cBaseUnit;
cConnectionDrawingThreshold   = 3;
 
cPinBoundingRectInflate = 2  *cBaseUnit;
cMinWireUnderlineWidth  = 5  *cBaseUnit;
cMinBusUnderlineWidth   = 7  *cBaseUnit;
cCompilationMaskedPopupString = 'Removed by Compilation Mask';

LibPrimitiveSet

LibPrimitiveSet:  TObjectSet = [eRectangle,
                                eLine,
                                eArc,
                                eBus,
                                eBusEntry,
                                eEllipticalArc,
                                eRoundRectangle,
                                eImage,
                                ePie,
                                eEllipse,
                                ePolygon,
                                ePolyline,
                                ePort,
                                eBezier,
                                eLabel,
                                eNetlabel,
                                eTextFrame,
                                eSymbol,
                                ePin,
                                eParameterSet
                                eWire];
 
cObjectInspectorViewname    = 'SchObjectInspector';
cLibObjectInspectorViewname = 'SchLibObjectInspector';
 
cGroundTypeSet = [ePowerGndPower, ePowerGndSignal, ePowerGndEarth];
 
CLineShapeArrowRatio = 2;
CLineShapeSizeCoefs : Array[TSize] Of Integer = (1, 2, 3, 4);
 
cNoUnionIndex = 0;
 
cStringIncrementStyleStrings : Array[TStringIncrementStyle] Of String = ('None','Horizontal First', 'Vertical First');

cBooleanEditorAttributes

cBooleanEditorAttributes =
    [eObjectAttribute_IsHidden,
     eObjectAttribute_Locked,
     eObjectAttribute_Accessible,
     eObjectAttribute_Solid,
     eObjectAttribute_ShowName,
     eObjectAttribute_IsMirrored,
     eObjectAttribute_DesignatorLocked,
     eObjectAttribute_PartIdLocked,
     eObjectAttribute_PinsMoveable,
     eObjectAttribute_ImageKeepAspect,
     eObjectAttribute_ImageEmbed,
     eObjectAttribute_ParameterAllowLibrarySynchronize,
     eObjectAttribute_ParameterAllowDatabaseSynchronize,
     eObjectAttribute_TextAutoPosition,
     eObjectAttribute_PinShowDesignator,
     eObjectAttribute_ShowHiddenFields,
     eObjectAttribute_ShowHiddenPins,
     eObjectAttribute_ShowDesignator,
     eObjectAttribute_TextFrameWordWrap,
     eObjectAttribute_TextFrameShowBorder,
     eObjectAttribute_TextFrameClipToRect,
     eObjectAttribute_PowerObjectShowNetName];

cStringEditorAttributes

cStringEditorAttributes =
    [eObjectAttribute_LocationX,
     eObjectAttribute_LocationY,
     eObjectAttribute_CornerLocationX,
     eObjectAttribute_CornerLocationY,
     eObjectAttribute_Width,
     eObjectAttribute_Radius,
     eObjectAttribute_StartAngle,
     eObjectAttribute_EndAngle,
     eObjectAttribute_SecondaryRadius,
     eObjectAttribute_StringText,
     eObjectAttribute_Name,
     eObjectAttribute_Description,
     eObjectAttribute_ParameterValue,
     eObjectAttribute_ParameterName,
     eObjectAttribute_PinWidth,
     eObjectAttribute_PinDefaultValue,
     eObjectAttribute_PinDesignator,
     eObjectAttribute_PinHiddenNetName,
     eObjectAttribute_PinLength,
     eObjectAttribute_RoundRectangleCornerRadiusX,
     eObjectAttribute_RoundRectangleCornerRadiusY,
     eObjectAttribute_SchComponentLibReference,
     eObjectAttribute_SchComponentDesignator,
     eObjectAttribute_SheetEntryDistanceFromTop,
     eObjectAttribute_SymbolScaleFactor,
     eObjectAttribute_TaskHolderInstanceName,
     eObjectAttribute_SheetName,
     eObjectAttribute_OwnerName,
     eObjectAttribute_SchComponentComment,
     eObjectAttribute_SchComponentLibraryName,
     eObjectAttribute_SchComponentFootprint,
     eObjectAttribute_SelectedVertex_X,
     eObjectAttribute_SelectedVertex_Y,
     eObjectAttribute_SelectedVertex2_X,
     eObjectAttribute_SelectedVertex2_Y];

cComboBoxEditorAttributes

cComboBoxEditorAttributes =
    [eObjectAttribute_OwnerPartId,
     eObjectAttribute_OwnerPartDisplayMode,
     eObjectAttribute_LineStyle,
     eObjectAttribute_StartLineShape,
     eObjectAttribute_EndLineShape,
     eObjectAttribute_LineShapeSize,
     eObjectAttribute_Orientation,
     eObjectAttribute_Alignment,
     eObjectAttribute_BorderWidth,
     eObjectAttribute_LineWidth,
     eObjectAttribute_JunctionSize,
     eObjectAttribute_ParameterType,
     eObjectAttribute_ParameterReadOnlyState,
     eObjectAttribute_PinSwapId_Pin,
     eObjectAttribute_PinSwapId_Part,
     eObjectAttribute_PinSwapId_PartPin,
     eObjectAttribute_PinFormalType,
     eObjectAttribute_PinElectrical,
     eObjectAttribute_PinIeeeSymbolInner,
     eObjectAttribute_PinIeeeSymbolOuter,
     eObjectAttribute_PinIeeeSymbolInnerEdge,
     eObjectAttribute_PinIeeeSymbolOuterEdge,
     eObjectAttribute_SheetEntrySide,
     eObjectAttribute_PortArrowStyle,
     eObjectAttribute_PortIOType,
     eObjectAttribute_PowerObjectStyle,
     eObjectAttribute_CrossSheetConnectorStyle,
     eObjectAttribute_SchComponentDisplayMode,
     eObjectAttribute_SchComponentPartId,
     eObjectAttribute_SchComponentKind,
     eObjectAttribute_IeeeSymbol];

cColorEditorAttributes

cColorEditorAttributes =
    [eObjectAttribute_Color,
     eObjectAttribute_TextColor,
     eObjectAttribute_AreaColor];

cContextHelpStringsByObjectId

cContextHelpStringsByObjectId : Array[TObjectId] Of TDynamicString =
( 'FirstObjectID',
'ClipBoardContainer',
'Note',
'Probe',
'Rectangle',
'Line',
'ConnectionLine',
'BusEntry',
'Arc',
'EllipticalArc',
'RoundRectangle',
'Image',
'Pie',
'TextFrame',
'Ellipse',
'Junction',
'Polygon',
'Polyline',
'Wire',
'Bus',
'Bezier',
'Label',
'NetLabel',
'Designator',
'SchComponent',
'Parameter',
'ParameterSet',
'ParameterList',
'SheetName',
'SheetFileName',
'Sheet',
'SchLib',
'Symbol',
'NoERC',
'ErrorMarker',
'Pin',
'Port',
'PowerObject',
'SheetEntry',
'SheetSymbol',
'Template',
'TaskHolder',
'MapDefiner',
'ImplementationMap',
'Implementation',
'ImplementationsList',
'CrossSheetConnector',
'CompileMask',
'OpenBusComponent',
'OpenBusLink',
'OpenBusDesignator',
'HarnessConnector',
'HarnessEntry',
'HarnessConnectorType',
'SignalHarness',
'OpenBusPort',
'LastObjectId'
);

Power Object constants

cPowerObjectLineWidth  = 1 * cBaseUnit;
cPowerGndPowerXOffset1 = 0 * cBaseUnit;
cPowerGndPowerXOffset2 = 3 * cBaseUnit;
cPowerGndPowerXOffset3 = 6 * cBaseUnit;
cPowerGndPowerXOffset4 = 9 * cBaseUnit;
cPowerGndPowerYOffset1 = 10 * cBaseUnit;
cPowerGndPowerYOffset2 = 7  * cBaseUnit;
cPowerGndPowerYOffset3 = 4  * cBaseUnit;
cPowerGndPowerYOffset4 = 1  * cBaseUnit;
cPowerNameXOffset1     = 2  * cBaseUnit;

Parameter Set constants

cParameterSetLineWidth          = 1   *cBaseUnit;
cParameterSetLineLength         = 6   *cBaseUnit;
cParameterSetCircleRadius       = 6   *cBaseUnit;
cParameterSetCircleCenterOffset = 12  *cBaseUnit;
cParameterSetIOffsetX           = 12  *cBaseUnit;
cParameterSetIOffsetY           = 5   *cBaseUnit;
cParameterSetTextOffetX         = 20  *cBaseUnit;
cParameterSetParamDefaultLength = 5   *cBaseUnit;
cParameterSetParam000XOffset    = 32  *cBaseUnit;
cParameterSetParam090XOffset    = 4   *cBaseUnit;
cParameterSetParam090YOffset    = 24  *cBaseUnit;
cParameterSetParam180XOffset    = 12   *cBaseUnit
cParameterSetParam270XOffset    = 10   *cBaseUnit
cParameterSetParam270YOffset    = 22  *cBaseUnit;
cParameterSetParamYOffset       = 2   *cBaseUnit;
cParameterSetParamDeltaYOffset1 = 12  *cBaseUnit;
 

Title Block constants

cTitleBlockWidth               = 350 *cBaseUnit;
cTitleBlockWidth1              = 100 *cBaseUnit;
cTitleBlockWidth2              = 150 *cBaseUnit;
cTitleBlockWidth3              = 300 *cBaseUnit;
cTitleBlockHeight              = 80  *cBaseUnit;
cTitleBlockHeight1             = 50  *cBaseUnit;
cTitleBlockHeight2             = 20  *cBaseUnit;
cTitleBlockHeight3             = 10  *cBaseUnit;
cTitleBlockTextXPos_Title      = 345 *cBaseUnit;
cTitleBlockTextXPos_Number     = 295 *cBaseUnit;
cTitleBlockTextXPos_Revision   = 95  *cBaseUnit;
cTitleBlockTextXPos_Size       = 345 *cBaseUnit;
cTitleBlockTextXPos_SheetStyle = 340 *cBaseUnit;
cTitleBlockTextYPos_SheetStyle = 35  *cBaseUnit;
cTitleBlockTextXPos_Date1      = 345 *cBaseUnit;
cTitleBlockTextXPos_Date2      = 300 *cBaseUnit;
cTitleBlockTextXPos_SheetNbr   = 145 *cBaseUnit;
cTitleBlockTextXPos_File1      = 345 *cBaseUnit;
cTitleBlockTextXPos_File2      = 300 *cBaseUnit;
cTitleBlockTextXPos_DrawnBy    = 145 *cBaseUnit;
cTitleBlockTextYPos_TextLine1  = 20  *cBaseUnit;
cTitleBlockTextYPos_TextLine2  = 10  *cBaseUnit;
cAnsiTitleBlock1               = 175 *cBaseUnit;
cAnsiTitleBlock2               = 625 *cBaseUnit;
cAnsiTitleBlock3               = 425 *cBaseUnit;
cAnsiTitleBlock4               = 125 *cBaseUnit;
cAnsiTitleBlock5               = 63  *cBaseUnit;
cAnsiTitleBlock6               = 25  *cBaseUnit;
cAnsiTitleBlock7               = 387 *cBaseUnit;
cAnsiTitleBlock8               = 325 *cBaseUnit;
cAnsiTitleBlock9               = 276 *cBaseUnit;
cAnsiTitleBlock10              = 36  *cBaseUnit;
cAnsiTitleBlock11              = 420 *cBaseUnit;
cAnsiTitleBlock12              = 170 *cBaseUnit;
cAnsiTitleBlock13              = 420 *cBaseUnit;
cAnsiTitleBlock14              = 382 *cBaseUnit;
cAnsiTitleBlock15              = 271 *cBaseUnit;
cAnsiTitleBlock16              = 31  *cBaseUnit;

Differential Pair constants

cDifferentialPairWidth          = 21 * cBaseUnit + cParameterSetLineWidth Div 2;
cDifferentialPairHeight         =  9 * cBaseUnit + cParameterSetLineWidth;
cDifferentialPairShadowSize     = cParameterSetLineWidth;
cDiffPairPosNetNaming           = '_P';
cDiffPairNegNetNaming           = '_N';
cDefaultDiffPairName  : TDynamicString = 'DIFFPAIR';
cDiffPairParam        : TDynamicString = 'DifferentialPair';
cDefaultDiffPair      : TDynamicString = 'DefaultDiffPair'

If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Note

The features available depend on your Altium product access level. Compare features included in the various levels of Altium Designer Software Subscription and functionality delivered through applications provided by the Altium 365 platform.

If you don’t see a discussed feature in your software, contact Altium Sales to find out more.