IPCB_BoardOutline interface
The board outline of a PCB document, the closed polygon that defines the extents or boundary of the board.
public interface IPCB_BoardOutline : IPCB_Polygon
Namespace: PCB · Assembly: Altium.SDK.Interfaces
Inherits: IPCB_Primitive → IPCB_Group → IPCB_Polygon
Remarks
The board outline shape determines the extents of the power planes for plane edge pull-back, and the board edge when design data is exported.
The outline's shape is given by its segments (PointCount, Segments). Its child objects are the pull-back tracks and arcs on the internal plane layers. Assigning most of the inherited pour settings, such as RemoveDead, UseOctagons, Grid, TrackSize, MinTrack, BorderWidth, PolyHatchStyle, Name, PourIndex, IgnoreViolations and the neck and island settings, does nothing on a board outline; ArcApproximation is the exception and applies to the board outline too.
IPCB_BoardOutline inherits from IPCB_Polygon, which in turn inherits from IPCB_Group. Besides the inherited polygon members, it provides members that rebuild the outline's derived data after its shape has changed, return the outline as an IPCB_GeometricPolygon, and manage the bending lines and split lines that divide the board into board regions.
Iterate the child objects with a group iterator (IPCB_Group.GroupIterator_Create).
The board outline of a board is returned by the IPCB_Board.BoardOutline property.
Each new PCB document in Altium Designer is created with a board outline, so if you wish to update a board outline of a PCB document, you modify the vertices of the existing board outline and then update the board outline.
Example
Show the width and height of the board outline of the current board.
using PCB;
IPCB_Board pcbBoard = PCB.GlobalVars.PCBServer?.GetCurrentPCBBoard();
if (pcbBoard == null)
return;
pcbBoard.GetState_BoardOutline().Invalidate();
pcbBoard.GetState_BoardOutline().Rebuild();
pcbBoard.GetState_BoardOutline().Validate();
// The BoundingRectangle method is defined in IPCB_Primitive interface
CoordRect br = pcbBoard.GetState_BoardOutline().BoundingRectangle();
DXP.Utils.ShowMessage(
"Board Outline Width : " + EDP.Utils.CoordUnitToString(br.Right - br.Left, pcbBoard.GetState_DisplayUnit()) + "\r" +
"Board Outline Height : " + EDP.Utils.CoordUnitToString(br.Top - br.Bottom, pcbBoard.GetState_DisplayUnit()));
Properties
| Property | Type | Access | Description |
|---|---|---|---|
| BendingLine | IPCB_BendingLine | get | Returns the bending line at the given index. |
| BendingLinesCount | int | get | The number of bending lines defined on the board outline. |
| HitPrimitive_1 | bool | get | Whether the given primitive touches the board outline or lies inside it. |
| SplitLine | IPCB_SplitBoardRegionLine | get | Returns the split line at the given index. |
| SplitLineCount | int | get | The number of split lines defined on the board outline. |
BendingLine
Returns the bending line at the given index.
IPCB_BendingLine GetState_BendingLine(int argIndex);
Type: IPCB_BendingLine · Access: read-only · Index: argIndex (int): The zero-based index of the bending line, from 0 to BendingLinesCount - 1.
The accessors are extension methods of IPCB_BoardOutlineHelper (using PCB;).
BendingLinesCount
The number of bending lines defined on the board outline.
int GetState_BendingLinesCount();
Type: int · Access: read-only