PCB Placement & Editing Techniques in Altium Designer
A variety of objects are available for use in designing a PCB. Most objects placed in a PCB document will define copper areas or voids. This applies to both electrical objects, such as tracks and pads, and non-electrical objects, such as text and dimensioning. It is therefore important to keep in mind the width of the lines used to define each object and the layer on which the object is placed.
There are two types of objects in the PCB editor – primitive objects and group objects. Primitive objects are the most basic elements and include: tracks, pads, vias, fills, arcs, and strings. Anything that is made up of primitives and identified as a design object is a group object. Examples of group objects include: components, dimensions, coordinates, and polygon pours.
Object Placement and Editing Commonality
In Altium Designer, the process of placing an object is roughly the same regardless of the object being placed. At its simplest level, the process is as follows:
- Select the object to be placed from one of the toolbars or the Place menu.
- Use the mouse to define the location of the placed object in the PCB workspace and its size (where applicable).
- Right-click (or press Esc) to terminate the command and exit placement mode.
Editing Prior to Placement
The default properties for an object can be changed at any time on the PCB Editor – Defaults page of the Preferences dialog. These properties will be applied when placing subsequent objects.
Editing During Placement
A number of attributes are available for editing at the time an object is first placed. To access these attributes, press the Tab key while in placement mode to open the associated Properties panel. Pressing the Tab key pauses placement in order for you to make any required edits for the object.
After edits have been made, click the workspace pause button overlay ( ) to resume placement.
Dynamic Placement Options
Smart component placement allows for dynamic alignment of components when dragging. Green indicator lines appear when the component is aligned either with adjacent components or with the pads of adjacent components.
By using hotkeys during placement, you can access the following alignment options.
Placement Modes
You can cycle through component placement modes by pressing the R key during placement.
- Ignore Obstacles - regular placement behavior, as seen in previous versions of Altium Designer. In this mode, the same component clearance checking routines seen in previous version of Altium Designer are used. These routines use the 3D body, if there is one, or the copper and silk primitives to identify an object's clearance.
- Push Obstacles - the component to be placed will push other components away to provide compliance with clearances between components. Components in unions can be pushed and the location of components in the union may change, but the union will not break. Locked components cannot be pushed. In this mode, components are identified by their selection boundary, which is the smallest possible rectangle that encloses all of the primitives in the component.
- Avoid Obstacles - the component to be placed will be forced to avoid violation clearances between other components during placement. In this mode, components are identified by their selection boundary, which is the smallest possible rectangle that encloses all of the primitives in the component.
The status bar at the bottom of the workspace indicates the current placement mode.
Swap Components
You can select a pair of components and easily swap their positions. After selecting the components you want to swap, right-click then select Component Actions » Swap Components.
Editing After Placement
Once an object has been placed, there are a number of ways in which it can be edited. These are described below.
The Associated Properties Panel
The associated Properties panel for an object can be accessed after placement in one of the following ways:
- By double-clicking on the object.
- By right-clicking over the object then choosing the Properties command from the context menu.
Graphical Editing
This method of editing allows you to select a placed object directly in the workspace and change its size, shape, or location graphically. Modification of shape and/or size (where applicable) is performed through the use of editing 'handles' that appear once the object is selected.
Click anywhere on an object away from editing handles (where they exist) to drag the object to reposition it. Depending on the type of object, it may be rotated and/or flipped while dragging.
- Press Spacebar to rotate the object counterclockwise or Shift+Spacebar for clockwise rotation. Rotation is in accordance with the value for the Rotation Step defined on the PCB Editor – General page of the Preferences dialog.
- Press the X or Y keys to flip the object along the X-axis or Y-axis where applicable.
Objects can also be moved by changing their alignment. To align objects with other objects, select the objects you want to move, right-click then select Align. The alignment sub-menu contains a number of options for distributing selected objects.
For more information on the individual alignment options, see the AlignComponents command page.
Via the PCB List Panel
Panel Page: PCB List
The PCB List panel allows you to display design objects in tabular format, enabling quickly inspection and modification of object attributes. When used in conjunction with the PCB Filter panel, it enables you to display just those objects falling under the scope of the active filter – allowing the targeting and editing of multiple design objects with greater accuracy and efficiency.
Re-Entrant Editing
The PCB Editor includes a powerful feature called re-entrant editing. This allows a second operation to be executed using keyboard shortcuts without the current operation being terminated. Re-entrant editing allows you to work more flexibly and intuitively. For example, consider starting to place a track and then realizing that another track segment must be deleted. There is no need to drop out of Interactive Routing mode. Press the E, D shortcut keys, delete the required track segment then press the Esc key to return to interactively routing the design.
Setting the PCB Cursor Appearance
By default, the PCB cursor is set as a small 90 degree cross. This can be configured using the Cursor Type setting, on the PCB Editor – General page of the Preferences dialog. For example, a large 90 degree cross that extends to the edges of the design window (Large 90 option) can be useful when placing and aligning design objects. Alternatively, a cross at 45 degrees (Small 45 option) might be useful if the 90 degree options are hard to see against grid lines.
True Type Font Support
The PCB Editor offers the ability to use Stroke-based or TrueType fonts for text-related objects in a design (string, coordinate, and dimension text). Choice of font is made from within the associated Properties panel. Three Stroke-based font options are available - Stroke, Sans Serif, and Serif. The Default style is a simple vector font that supports pen plotting and vector photoplotting. The Sans Serif and Serif fonts are more complex and will slow down vector output generation, such as Gerber. The Stroke-based fonts are built into the software and cannot be changed. All three fonts have the full IBM extended ASCII character set that supports English and other European languages. When using TrueType fonts, TrueType and OpenType (a superset of TrueType) fonts fount in the \Windows\Fonts
folder is available for use. The feature also offers full Unicode support.
The PCB Editor – TrueType Fonts page of the Preferences dialog provides options for embedding TrueType fonts when saving a design and for applying font substitution when loading a design.
Primitive Objects
Primitive objects in the PCB Editor are fundamental elements of design. They are called 'primitive' due to their raw or most basic nature. Certain primitive objects are used as building blocks to create more advanced design objects, such as arcs, fills, and tracks, to create PCB 2D component models.
Primitive objects are available for placement in the PCB Editor, with many object types also supported for placement in the PCB Library Editor. Commands for placement can be found in the main Place menu, as well as the Active bar, the Utilities toolbar, and various drop-downs of the Wiring toolbar. Depending on the object, placement may require several mouse clicks to define the object's appearance.
Track
Object Page: Track
A track is a straight solid-filled line with a defined width. Tracks are generally placed on a signal layer using the Interactive Routing tool to form the electrical interconnection between component pads on a PCB.
Line
On non-electrical layers, tracks are used as general-purpose line drawing elements to create board outlines, component outlines, polygon planes, keepout boundaries, etc. A line is the same track object that is placed during interactive routing, the difference being that lines are not "net-aware." Lines do not adopt a net name when clicking on a pad or existing routing when commencing placement of a line and their placement is not regulated by design rules.
Pad
Object Page: Pad
Pads are typically incorporated as part of a component footprint to create the interconnection points from component pins to the routing on the board. They can also be used as individual objects, such as testpoints and mounting holes.
Pads can be multi-layer (appearing on all signal and plane layers) or single layer and can also be connected to a net. Multi-layer pads can have a different shape defined on each layer and require a drill hole to connect the various layers. Single layer pads do not include a drill hole.
Pad Designators
Pads can be labeled with a designator (usually representing a component pin number) of up to 20 alphanumeric characters in length. Pad designators will auto-increment by one during placement if the initial pad has a designator ending with a numeric character. Change the designator of the first pad, prior to placement, from the Properties panel.
Jumper Connections
Jumper connections define electrical connections between component pads that are not physically routed with primitives on the PCB. These are especially useful on single layer boards where a wire is used to jump over tracks on the one physical layer.
Pads within a component can be labeled with a Jumper value from within the Properties panel. Pads that share the same Jumper and electrical net tell the system that there is a legitimate, although physically unconnected, connection between them.
Jumper connections are shown as curved connection lines in the PCB Editor. The Design Rules Checker will not report jumper connections as unrouted nets.
Testpoints
Related Documentation: Adding Testpoints to the Board
The software provides full support for testpoints, allowing pads (thru-hole or SMD) to be specified for use as testpoint locations in fabrication and/or assembly testing. A pad is nominated for use as a testpoint by setting its relevant testpoint properties – should it be a fabrication or assembly testpoint, and on which side of the board should it be used as a testpoint. These properties can be found in the Testpoint region of the Properties panel.
To streamline the process and alleviate the need for setting the testpoint properties of pads manually, the software provides a method to automatically assign testpoints based on defined design rules and using the Testpoint Manager (Tools » Testpoint Manager). This automated assignment sets the relevant testpoint properties for the pad in each case.
Solder and Paste Mask Expansions
Solder and paste mask expansion values for a pad can either come directly from applicable design rules or can be entered in the Properties panel. In the latter case, the values specified will override those defined for the rule.
Via
Object Page: Via
A via is used to form an electrical connection between two signal layers of a PCB. Vias are like round pads that are drilled and usually through-plated when the board is fabricated.
Vias can be one of the following types:
- Multi-Layer (Thru-Hole) – this type of via passes from the Top layer to the Bottom layer and allows connections to all internal signal layers.
- Blind – this type of via connects from the surface of the board to an internal signal layer.
- Buried – this type of via connects from one internal signal layer to another internal signal layer.
Vias are typically placed automatically during the interactive or automatic routing processes, but can be placed manually if required. Manually placed vias are referred to as 'free' vias.
Vias and Routing
While interactively routing a connection, change routing (signal) layer using the * key (on the numeric keypad). A via will automatically be inserted to preserve the electrical conductivity. The via is placed in accordance with the applicable Routing Via Style design rule and drill pair definitions.
If the net being routed is to connect to an internal power plane, press the / key (on the numeric keypad) to place a via connecting to the appropriate power plane. This will work in all track placement modes except 'Any Angle' mode.
Blind and Buried Vias
Before using blind or buried vias, it is important to establish the level of support provided by the manufacturer. Most manufacturers support blind and buried vias between what are termed 'layer pairs'. Using this technology, a multi-layer board is fabricated as a set of thin double-sided boards that are then 'sandwiched' together. This allows blind and buried vias to connect between the surfaces of these boards, which become the layer pairs.
The layer pairs are defined by the layer stack configured in the Layer Stack Manager dialog (Design » Layer Stack Manager).
With the correct stack-up style established, define the valid drill pairs. Drill pairs are set up in the Drill-Pair Manager dialog, accessed by clicking on the Configure Drill Pairs button in the Layer Stack Manager dialog.
If a drill pair is defined for each layer pair in the design, the PCB Editor will automatically insert the correct via type (thru-hole, blind, or buried) as the routing layer is changed while interactively routing.
Testpoints
The software provides full support for testpoints, allowing vias to be specified for use as testpoint locations in fabrication and/or assembly testing. A via is nominated for use as a testpoint by setting its relevant testpoint properties: should it be a fabrication or assembly testpoint, and on which side of the board should it be used as a testpoint. These properties can be found in the Testpoint region of the Properties panel.
As with pads, via testpoints can automatically be assigned based on defined design rules and using the Testpoint Manager (Tools » Testpoint Manager).
Solder Mask Expansion
Solder mask expansion values for a via can either come directly from applicable design rules or can be entered in the Properties panel. In the latter case, the values specified will override those defined for the rule.
Partial and complete tenting of vias can be achieved by defining an appropriate value for Solder Mask Expansion and enabling the Tented option in the Properties panel.
- To partially tent a via – covering the land area only – set the expansion to a negative value that will close the mask right up to the via hole.
- To completely tent a via – covering the land and hole – set the expansion to a negative value equal to, or greater than, the radius of the via.
Arc
Object Page: Arc
An arc is essentially a circular track segment that can be placed on any layer. Arcs can have a variety of uses in PCB layout. For example, they can be used when defining component outlines on the overlay layers or on a mechanical layer to indicate the board outline, cut outs, etc. They can also be used to produce curved paths while interactively routing. Arcs can be open or closed to create a circle (often referred to as a full circle arc).
Four different methods of arc placement are supported:
- Place arc by center – this method enables placement using the arc center as the starting point.
- Place arc by edge – this method enables placement using the edge of the arc as the starting point. The arc angle is fixed at 90°.
- Place arc by edge (any angle) – this method enables placement using the edge of the arc as the starting point. The angle of the arc can be any value.
- Place full circle arc – this method enables placement of a 360° (full circle) arc.
Arcs can be placed as layer-specific keepout objects to act, for example, as routing barriers. Objects defined as keepouts are ignored by output operations, such as photo plotting and printing. Place a Keepout Arc from the Place » Keepout sub-menu.
String
Object Page: String
A string places text on the selected layer in a variety of display styles and formats, including popular barcoding standards. As well as user-defined text, "special strings" can be used to place board or system information on the PCB.
Barcode Text
Barcodes are commonly used to tag and identify PCBs. Barcode symbols can be placed directly onto a PCB on any layer, allowing barcodes to be easily imprinted on a PCB as part of the manufacturing process.
In the Text mode of the Properties panel, enter the text required in the Text region, enable BarCode as the Font Type then set the related options as required.
BarCode ISO Code 39 (US Dept of Defense standard) and Code 128 (global trade identification standard) are supported.
Special String
To assist in producing manufacturing documentation, special strings are provided. These include strings, such as .Arc_Count
and .Component_Count
, that display the number of objects in the PCB file when the PCB document is printed or plotted. Other special strings relate to layer names, file names and printing options. The .Comment
and .Designator
strings are used when creating component footprints. The .Legend
string shows a drill symbol legend when the string is placed on the Drill Drawing layer.
To use a special string on a PCB, place a string object then use the button to access a drop-down list of all special strings (both system-based and those sourced from defined project-level parameters) then select the desired name. Special string names begin with the period or full stop character ".".
The values of some special strings can only be viewed when the relevant output is generated, including the .Legend
, .Plot_File_Name
, and .Printout_Name
. Most special strings can be viewed on screen.
Fill
Object Page: Fill
A fill is a rectangular object that can be placed on any layer. When placed on a signal layer, a fill becomes an area of solid copper that can be used to provide shielding or to carry large currents. Fills of varying size can be combined to cover irregularly shaped areas and can also be combined with track or arc segments and be connected to a net.
Fills can also be placed on non-electrical layers. For example, place a Fill on the Keep-Out layer to designate a 'no-go' area for both autorouting and autoplacement. Place a fill on a Power Plane, Solder Mask, or Paste Mask layer to create a void on that layer. In the PCB Library Editor, fills can be used to define component footprints.
Region
Object Page: Region
A region is a polygon-type object that can be placed on any layer. It can be configured to be positive (placed as a copper region) or negative (placed as a polygon pour cutout) or be multi-layer (placed as a board cutout).
When using it as a positive region, it is similar in nature to its rectangular-based fill counterpart. When placed on a signal layer, a positive region becomes an area of solid copper that can be used to provide shielding or to carry large currents. Positive regions can be combined with track or arc segments and be connected to a net. Positive regions can also be placed on non-electrical layers. For example, place a region on the Keep-Out layer to designate a 'no-go' area for both autorouting and autoplacement. Place a region on a Power Plane, Solder Mask, or Paste Mask layer, to create a void on that layer.
In the PCB Library Editor, positive regions can be used to create polygonal-shaped fills for use in defining component footprints.
When used as a negative copper region (polygon pour cutout) it provides a polygonal void area for use within solid polygon pours. Such a region/cutout will not be filled with copper when the pour is flooded. When used as a board cutout, it defines areas that are actual holes through the PCB and are independent of board layers. Board cutout regions are transferred to Gerber and ODB++ files for manufacturing purposes. Regardless of which layer is current when creating a board cutout, it will remain multi-layer.
3D Body
Object Page: 3D body
A 3D body is a polygon-type design object that can be placed into a library component footprint or PCB document on any enabled mechanical layer. It can be used to specifically define the physical size and shape of a component – both in the horizontal and vertical planes – enabling more precise and controlled component clearance checking by the Design Rule Checker. 3D bodies are used when viewing the PCB in 3D to render a three-dimensional shape for the component or object.
When creating 3D bodies, multiple individual 3D bodies may be used to define relatively complex shapes. This can prove especially useful in the vertical plane, as it allows the height of a component to be varied in different regions of that component.
Drill Table
Object Page: Drill Table
A standard element required for manufacture of a Printed Circuit Board is a drill drawing table, also known as a drill table or a drill drawing legend. The drill table lists the size and number of holes for each drill used on the board. Each drill size can be represented by a symbol, a letter, or the actual hole size. When a drill drawing is generated for the board, each actual drill site is marked by a symbol. The drill table updates in real time as hole-containing objects such as pads and vias are placed or removed from the PCB design, the table updates.
Embedded Board Array
Object Page: Embedded Board Away
An embedded board array is a primitive design object. It allows you to create a PCB panel (representing the physical board that the PCB is to be manufactured from) as part of your PCB design project. This is also known as panelization. You can use this panel to hold an array of PCBs on using the embedded board array command. This command links the panel to the original PCB design files, stepping it out the specified number of times. You cannot edit the PCBs directly from the board array, only through their original files.
Multiple embedded board arrays can be placed and each can reference a different PCB file. By spacing out the boards in each array and then overlaying, rotating, and flipping the different embedded arrays, any panelization arrangement can be created. This can be used to reduce manufacturing costs by maximizing the number of PCBs per panel of PCB material.
Group Objects
A group object is any set of primitives that has been defined to behave as an object. These may be user-defined, such as components and polygon pours, or system-defined, such as coordinates and dimensions. A group object can be manipulated as a single object within the workspace. For example, it can be placed, selected, copied, changed, moved, and deleted.
Group objects are available for placement in the PCB Editor with the coordinate object also supported for placement in the PCB Library Editor. Commands for placement can be found in the main Place menu, as well as the Wiring toolbar, and various drop-downs of the Utilities toolbar. Depending on the object, placement may require several mouse clicks to define the object's appearance.
Objects are placed on the current layer. Ensure the correct layer has been made the current layer before effecting placement. An object can be changed with respect to the layer on which it resides after placement.
Component
Object Page: Component
A PCB 2D/3D component model represents the physical component in the PCB domain. The component consists of a 2D footprint and any additional 3D body information. The 2D footprint may include such items as pads for connecting to the pins of a device, a physical outline of the package and device mounting features.
Depending on the component management methodology in use, placement of PCB 2D/3D component models can be performed in different ways. For a PCB 2D/3D component stored in a PcbLib, IntLib, DbLib, or SVNDbLib, the component can be placed from a library panel or by using the menu/toolbar command. When using server-based components, a PCB Component Item (the child PCB 2D/3D domain model used by a parent Component Item) cannot be placed directly on the PCB document. In this case, placement of the required Component Items is made – from the Explorer panel – onto the relevant schematic document(s), then the design brought across to the PCB domain using the design Synchronizer.
Component Designators
PCB 2D/3D component designators will auto-increment by one during placement if the initial component has a designator ending with a numeric character. Change the designator of the first component prior to placement from the Properties panel.
To achieve alpha or numeric designator increments other than 1, use the Paste Array feature. Controls for this feature are provided in the Setup Paste Array dialog, accessed by pressing the Paste Array button in the Paste Special dialog (Edit » Paste Special).
A component can be converted to its constituent primitive objects using the Tools » Convert » Explode Component to Free Primitives command.
Dimension
Dimension objects are used to add valuable dimensioning information to a board design. Such objects can be placed on any layer, but are typically placed on a particular mechanical layer.
A variety of dimension objects are supported to cater for different design requirements. Dimension objects are comprised of one or more string and track segments. A dimension can be converted to its constituent primitive objects using the Tools » Convert » Explode Dimension to Free Primitives command.
A dimension's value (where applicable) automatically updates as its start or end points are moved. Likewise, if the position of an object that a reference point of the dimension is anchored to is changed, the dimension will update and expand/contract to reflect this. For a radius/diameter-based dimension, the value automatically updates as the diameter of the reference arc or circle changes.
Angular Dimension
Object Page: Angular Dimension
An angular dimension allows for the dimensioning of angular distances.
Ordinate Dimension
Object Page: Ordinate Dimension
A datum dimension allows for the dimensioning of a linear distance of a collection of objects relative to a single reference object. The first object chosen is the 'base'. All subsequent objects are relative to this first object. The dimension value in each case is, therefore, the distance between each reference object and the 'base' measured in the default units. The references may be tracks, arcs, pads, vias, text, fills, polygons, or components.
Leader Dimension
Object Page: Leader Dimension
A leader dimension allows for the labeling of an object, point or area. There are three types of leader available: Automatic, Round and Square, which reflect the label text either being encapsulated in a circle or square or not at all. The pointer can be an arrow or a dot.
Linear Dimension
Object Page: Linear Dimension
A linear dimension places dimensioning information on the current PCB layer, with respect to a linear distance. The dimension value is the distance between the start and end markers (reference points selected by the user) measured in the default units. The references may be objects (tracks, arcs, pads, vias, text, fills, polygons, or components) or points in free space.
Radial Dimension
Object Page: Radial Dimension
A radial dimension allows for the dimensioning of a radius with respect to an arc or circle. The dimension can be placed either internally or externally.
Standard Dimension
Object Page: Dimension
A standard dimension places dimensioning information on the current PCB layer. The dimension value is the distance between the start and end markers measured in the default units.
Polygon Pour
Object Page: Polygon Pour
A polygon pour creates a solid, hatch-filled (lattice) or outline-only area on the selected PCB layer. Also referred to as copper pours, they are similar to area fills except that they can fill irregularly shaped areas of a board and can connect to a specified net as they are poured.
On a signal layer, a solid polygon pour might be placed to define an area for carrying large power supply currents or as a ground-connected area for providing electro-magnetic shielding. Hatched polygon pours are commonly used for ground purposes in analog designs.
On a non-signal layer, solid or outline-only polygon pours might be used to distinguish between specific functional areas of a board.