The PCB Editor is a grid-based design environment - design objects are placed on what is referred to as the placement, or snap grid. As well as the placement grid, the software includes a number of additional snap features, designed to help you accurately position and align design objects. Together, these features are referred to as the Unified Cursor-Snap System. 'Cursor-snap' is the process whereby the physical mouse cursor's pixel position on the screen drives the position of a 'logical cursor' in the coordinate space of a design document such as a PCB. The objective is for the system to be able to place the logical cursor onto sensible and useful coordinates without the user needing to specify these in a high resolution way. Variable geometry boards - where component pins are often placed on quite different metric and imperial grids - serve to add greater complexity to this objective.
The system brings together three different sub-systems to collectively drive the way that the cursor snaps onto given sets of preferred coordinates:
- User-Definable Grids - available in both Cartesian and Polar flavors.
- Snap Guides - that can be freely placed and provide a handy visual cue for object alignment.
- Enhanced object Snap-Points - enabling placed objects to pull the cursor into position based on cursor proximity to an object's hotspot(s).
Use a combination of these features to ensure streamlined placement and alignment of objects in the PCB workspace.
Accessing the Unified Cursor-Snap System
Access to the Unified Cursor-Snap System as a whole, in terms of all of its constituent sub-systems and controls, is made from the Properties panel (accessed when there are no design objects currently selected in the design workspace).
Access controls for the Unified Cursor-Snap System from the Properties panel.
The following three sections of the panel are associated with the grids system:
- Snap Options - providing options to determine cursor snapping:
- Snap To Grids - used to toggle whether the cursor can snap to grids defined for the board.
- Snap To Guides - used to toggle whether the cursor can snap to manually placed linear or point Snap Guides.
- Snap To Object Axes - used to toggle whether the cursor can snap to dynamic alignment guides created through proximity to the hotspot(s) of placed objects.
- Snap to Object Hotspots - essentially the legacy Electrical Grid, and used to toggle whether the cursor can snap to the hotspot(s) of placed objects when it is simultaneously close (on both the x and y axis) to such a hotspot.
- Grid Manager - from where local customized grids can be defined and managed, as well as the default snap grid for the board.
- Guide Manager - from where a range of manual snap guides and snap points for the board can be defined and managed.
Any number of user-defined grids can be defined for the workspace, with all grid management performed from within the Grid Manager section of the Properties panel (accessed when there are no design objects currently selected in the design workspace). Use the controls available to define custom local grids by which to place design objects - especially components - with greater precision.
The Grid Manager section of the Properties panel - command central for defining and organizing the
grids for use with your board.
The software supports the creation of the following two custom grid types:
- Cartesian Grid - create a new grid of this type using the Add Cartesian Grid command (available from the button). A new grid entry will appear in the list, initially with the default name New Cartesian Grid. To edit the grid, simply double-click on its entry, or select its entry and click the button. The Cartesian Grid Editor dialog will appear presenting options with which to define the grid.
Example Cartesian grid definition, using the Cartesian Grid Editor dialog, and resulting appearance in the workspace.
- Polar Grid - create a new grid of this type using the Add Polar Grid command (available from the button). A new grid entry will appear in the list, initially with the default name New Polar Grid. To edit the grid, simply double-click on its entry, or select its entry and click the button. The Polar Grid Editor dialog will appear presenting options with which to define the grid.
Example Polar grid definition, using the Polar Grid Editor dialog, and resulting appearance in the workspace.
Default Snap Grid
A default snap grid is defined for the board, named
Global Board Snap Grid. This is the grid that is used for object placement and movement in any area of the board not covered by a dedicated local grid.
Global Board Snap Grid - used in any area of the board where a custom local grid has not been defined.
The default grid is a Cartesian-type grid. The step size and/or display for the grid can be modified, but the grid cannot be renamed, disabled, or deleted.
Within the workspace, using the G keyboard shortcut gives you access to a menu of commands for quickly setting the X (horizontal) and/or Y (vertical) step values for the default Global Board Snap Grid. These commands only affect the default snap grid for the board, and not any custom grids (cartesian and polar) that you may have defined. Commands are available to quickly switch to another predefined step sizing, or to access the Snap Grid (1..1000) dialog, with which to define a specific, custom sizing. Application of the predefined/custom value depends on whether you are setting both X and Y step values simultaneously, or X or Y step values individually:
- Setting X and Y step values simultaneously - if the Step X and Step Y properties of the Global Board Snap Grid were previously unlinked, this command will link the two, with both set to the same predefined/custom value.
- Setting X or Y step values individually - if the Step X and Step Y properties of the Global Board Snap Grid were previously linked, this type of command will unlink the two, with only the chosen (X or Y) step value set to the predefined/custom value. The other step value will remain at its previous setting.
The current snap grid setting - for the grid (default or custom local) currently under the cursor - is always displayed on the Status Bar, along with the cursor location, relative to the Current Origin. The current origin is user-definable and can be located anywhere in the workspace, the Absolute Origin is the bottom-left of the 100 x 100 inch workspace.
The Status Bar always displays the current snap grid and the cursor location
relative to the Current Origin.
The Status Bar also reflects the current state of object Hotspot Snapping. Often referred to as an Electrical Grid, object hotspot snapping provides an aid to routing electrical objects, especially those which may not fall on the default Global Board Snap Grid, or a defined custom grid. What it does is give you a distance, or tolerance, in which the cursor can be away from an object but still snap to the object's hot-spot (eg. the center of a pad). Object hotspot snapping overrides a snap grid, allowing you to easily connect to an off-grid object. Use the Shift+E keyboard shortcut to toggle through the supported modes. For more information, see Snap to Object Hotspots.
Defining the Purpose of a Grid
A defined local grid can be used in a variety of situations:
- In the placement of non-component objects only.
- In the placement of components only.
- In the placement of both non-component objects and components.
Definition of how a grid can be used - its purpose or application - is performed using the Comp and Non Comp options, associated with that grid's entry in the Grid Manager section of the Properties panel.
Use the Comp and Non Comp options to determine local grid application.
The following animation illustrates an example of using a local Polar Grid for component placement in the PCB Editor. The grid has been defined for use with components only, and so only appears when a component starts to be moved. This example also illustrates a great feature of polar grids - automatic placement rotation. As you move a component over a defined grid of this type, it will automatically rotate to the origin of the grid, as you move it around the grid. Use this feature, in combination with standard object rotation - Spacebar (anti-clockwise), Shift+Spacebar (clockwise) - to align your components exactly as you need them.
An example of component placement on a component-only local Polar Grid.
Defining Grid Display
For any custom grid you define, as well as the
Global Board Snap Grid, options are provided to control how the grid is presented visually in the workspace. Two levels can be defined:
- Fine - the fine-level display grid is for when you are more zoomed-in. The grid markers for this level of grid display follow directly the defined step sizes for the grid.
- Coarse - the optional coarse-level display grid comes into play as you zoom out. The grid markers for this level of grid display are based on a specified multiple of the defined step sizes.
Example Cartesian grid with fine- and coarse-level display grids presented in the workspace. Left: Fine-level displayed using dots, coarse-level using Lines. Right: Both fine- and
coarse-level grids displayed using Lines.
Nesting and Grid Priority
The local grids you define in the Grid Manager section of the Properties panel can be freely stacked within the board area. By specifying origin coordinates accordingly, grids can be overlapped, creating a nested hierarchy of grids, with which to fine tune placement of design objects as you layout your board.
Grid contention - which grid in an overlapping stackup of grids should a design object snap to - is resolved using a priority system. Each local placement grid you create and define is given a numbered priority. By default, each new grid is given the highest priority of
1, with all existing grids moved down in priority accordingly.
In the workspace, priority is distinguished by drawing order. The highest priority grid (priority
1) will be drawn in front of all other grids, then the grid with priority level
2, and so on, down to the default
Global Board Snap Grid, which is drawn behind all other custom grids.
An example of three nested Polar grids. The Yellow Polar Grid has the highest priority and appears on top. The Red Polar Grid is next priority, appearing behind the yellow grid,
but in front of the aqua grid. The default grid appears behind all of these grids, as all custom grids take precedence over it in the priority stakes.
Disabling a Grid
There may be occasion where a grid isn't needed while placing or moving a particular design object. Rather than deleting the grid - it may be needed again later, in the same or different area of the board - it can simply be 'hidden' from the workspace. This can be achieved by disabling the grid's associated Comp and Non Comp attributes, in the Grid Manager section of the Properties panel.
Disable a local grid to effectively hide it, therefore preventing objects snapping to it. Using the nested grids example, the Red Polar grid has been disabled. As the grid has not
been deleted, you can re-enable and use again when needed, without having to redefine it!
Deleting a Grid
Custom grids can be deleted simply by selecting their corresponding entry in the Grid Manager section of the Properties panel, and clicking the button. You will be asked to confirm the deletion - click Yes to do so.
Snap Guides are special objects that are manually placed specifically for the purpose of driving the cursor-snap on a certain axis or point - assisting in object/component placement. They can also serve as a visual indicator for general layout or alignment purposes. The following types of snap guide are supported:
- Linear Guide - a line-style guide that can be horizontal, vertical or +/- 45 Degrees.
- Point Guide - a point-style guide offering finer control over object placement. It is simply a hotspot that is manually marked within the confines of a defined grid.
Any number of snap guides can be defined for the workspace, with controls for placement and management available from the Guide Manager section of the Properties panel (accessed when there are no design objects currently selected in the design workspace). And while controls are available for adding new snap guides from within this section (from the button), it is far easier to visually add them (from the button) directly in the workspace, then fine-tune them as required.
The Guide Manager section of the Properties panel - command central for managing visual placement guides for use in the workspace.
Shown here are examples of the various Snap Guides available to assist object placement.
During an interactive process such as placing or moving, the cursor will snap to a placed Linear Guide, at the point where that guide intersects a defined grid. Using a Linear Guide, objects can quickly be aligned simply by dragging them until they 'snap' against the guideline. For a Point Guide, the hotspot for the object being moved will 'snap' to the guide when it passes into close proximity with it.
Disabling a Guide
There may be occasion where a snap guide isn't needed while placing or moving a particular design object. Rather than deleting the guide - it may be needed again later, in the same or different area of the board - it can simply be 'hidden' from the workspace. This can be achieved by disabling the guide's associated Enabled attribute in the Guide Manager section of the Properties panel.
Disable a snap guide to effectively hide it, therefore preventing objects snapping to it. In this image, the +45 and -45 guides have
been disabled. As the guides have not been deleted, you can re-enable and use them again when needed, without having to redefine
Deleting a Guide
To delete a snap guide, simply select its entry in the Guide Manager section of the Properties panel, and click the button. You will be asked to confirm the deletion - click Yes to do so.
Every object in the PCB design space is considered to have a number of important points, such as the center of a pad, ends of tracks, etc. These hotspots are considered as Snap-Points and are different for different types and sizes of object. Every object generates a series of these Snap-Points, with different Snap-Points having different attractive forces for the cursor. For example, the endpoints and mid-points of tracks should have a higher 'pull' than other points along the track.
In terms of cursor-snap, there are two distinct uses for these object Snap-Points - Snap to Object Hotspots and Snap to Object Axes.
Snap to Object Hotspots
It is often impossible or impractical to define a grid that all design objects fall on to. In that situation you might need to position a new design object at an off-grid location. The software supports this through a feature called Object Snap, which is essentially a range of attraction around that object's hotspot. Hotspots only exist at meaningful locations, such as the center of a pad or via, and the end points of track segments.
This is a dual-axis system, where the mouse cursor must be simultaneously close (on both the x and y axis) to an object's Snap-Point, in order for the object to pull the cursor towards that Snap-Point. Often referred to as an Electrical Grid, object hotspot snapping provides an aid to routing electrical objects, especially those which may not fall on the default Global Board Snap Grid, or a defined custom grid. What it does is give you a distance, or tolerance, in which the cursor can be away from an object but still snap to the object's hotspot. Object hotspot snapping overrides a snap grid, allowing you to easily connect to an off-grid object.
Off-grid objects can be snapped to, using the object hotspot snapping feature.
Hotspot snapping can be enabled in the Snap Options section of the Properties panel. The extent of attraction (Snap Distance) can also be specified here - the distance from an object's hotspot, within which the cursor will be snapped to that hotspot.
The Status Bar reflects the current state of object Hotspot Snapping. Use the Shift+E keyboard shortcut to quickly toggle through the supported modes:
- Current Layer - hotspot snap is enabled for the current layer. That is, the cursor will snap to object hotspots on the current layer only. This mode is reflected on the Status Bar as (Hotspot Snap).
- All Layers - hotspot snap is enabled for all visible layers. That is, the cursor will snap to object hotspots on any layer, not just the current layer. This mode is reflected on the Status Bar as (Hotspot Snap (All Layers)) .
- Off - hotspot snap is diabled. On the Status Bar, this mode is reflected by not displaying anything.
Snap to Object Axes
As well as snapping the cursor to an object's hotspot, the software also supports snapping to an object's axis. This supports aligning the moving object to existing off-grid objects. As an object is moved in the workspace, guides are automatically generated by the system (dynamic alignment guides), based on the Snap-Points of existing placed objects, within the vicinity of the cursor. The cursor can be pulled into alignment with either the horizontal or vertical position of an object's Snap-Point. This allows an object Snap-Point that is close to the mouse cursor on one axis, but distant on the other axis, to drive the cursor position.
With the Snap to Object Axes feature, dynamic alignment guides appear in the workspace, generated
through vertical or horizontal proximity of the cursor in relation to Snap-Points of existing placed objects.