Working with the Cursor-Snap System

Now reading version 16.1. For the latest, read: Working with the Cursor-Snap System for version 24
 

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, Altium Designer 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 dedicated Snap button, located at the bottom-right of the main workspace. Alternatively, interaction with each sub-system can also be made as part of the board-level options, through the Board Options dialog (Design » Board Options).

Access commands and controls for the Unified Cursor-Snap System from the Snap menu and the Board Options dialog.Access commands and controls for the Unified Cursor-Snap System from the Snap menu and the Board Options dialog.

The following is a summary of the various commands available from the Snap menu, with an indication of how they relate to the options available in the Board Options dialog.

Command Description In the Board Options dialog, corresponds to...
Grids opens the Grid Manager dialog, from where local customized grids can be defined and managed, as well as the default snap grid for the board. clicking the Grids button.
Guides opens the Snap Guide Manager dialog, from where a range of manual snap guides and snap points for the board can be defined and managed. clicking the Guides button.
Snap To Linear Guides used to toggle whether the cursor can snap to manually placed linear Snap Guides. The command is checked when this particular sub-system is enabled. the Snap To Linear Guides option.
Snap To Point Guides used to toggle whether the cursor can snap to manually placed point Snap Guides. The command is checked when this particular sub-system is enabled. the Snap To Point Guides option.
Snap To Grids used to toggle whether the cursor can snap to grids defined for the board. The command is checked when this particular sub-system is enabled. the Snap To Grids option.
Snap To Object Axis used to toggle whether the cursor can snap to dynamic alignment guides created through proximity to the hotspot(s) of placed objects. The command is checked when this particular sub-system is enabled. the Snap To Object Axis option.
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. The command is checked when this particular sub-system is enabled. the Snap To Object Hotspots option.
Include Near Aligned Objects toggles the use of near objects when aligning the cursor to the horizontal or vertical axis of an enabled object's hotspot(s). This is single-axis object snap, with the cursor aligned using a system-generated dynamic alignment guide. The command is checked when this particular feature is enabled. the Near Objects option.
Include Far Aligned Objects toggles the use of far objects when aligning the cursor to the horizontal or vertical axis of an enabled object's hotspot(s). This is single-axis object snap, with the cursor aligned using a system-generated dynamic alignment guide. The command is checked when this particular feature is enabled. the Far Objects option.

The Advanced Snap Options command simply gives access to the Board Options dialog, expanded to reveal advanced options to control how different types of objects are used as Snap-Point sources.

User-Definable Grids

Any number of user-defined grids can be defined for the workspace, with all grid management performed from within the Grid Manager dialog. Use this dialog to define custom local grids by which to place design objects - especially components - with greater precision.

Quickly access the Grid Manager dialog from the Snap menu, or by using the Tools » Grid Manager command.

The Grid Manager dialog - command central for defining and organizing the grids for use with your board.The Grid Manager dialog - command central for defining and organizing the grids for use with your board.

The cursor will only snap to a defined grid provided the option Snap To Grids is enabled, in the Snap Options region of the Board Options dialog.

Grid Types

The Grid Manager dialog 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 Grid Manager dialog's main menu or right-click menu) or by pressing the R key. 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 use the Properties command accessible through the dialog's menus. 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.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 Grid Manager dialog's main menu or right-click menu) or by pressing the P key. 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 use the Properties command accessible through the dialog's menus. 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.Example Polar grid definition, using the Polar Grid Editor dialog, and resulting appearance in the workspace.

Quickly access the relevant editor for a defined grid in the workspace, by hovering the cursor over that grid and using the Ctrl+G keyboard shortcut.

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.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.

Quickly shift focus to the default snap grid, within the list of defined grids, using the 0 (zero) key.

Duplicating an Existing Defined Grid

To aid you in quickly building a set of local grids, the Grid Manager dialog supports the ability to duplicate grids. Simply select one or more custom grids in the existing grids list, and use the Duplicate Selected Grids command from the dialog's menus. Exact copies of those grids are created and added to the list, distinguished by the suffix (Copied) in their name.

The default snap grid (Global Board Snap Grid) cannot be used as a source of duplication.

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 Non Comp and Comp options, associated with that grid's entry in the Grid Manager dialog.

Use the Non Comp and Comp options to determine local grid application.Use the Non Comp and Comp options to determine local grid application.

The default snap grid is always enabled for use with components and non-components (both options enabled).
When specifying a component-only grid (Non Comp option disabled, Comp option enabled), the grid will only display when performing a component-based action, such as moving a component.

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.

Individual grid display coloring is defined when editing a grid in the relevant grid editor (Cartesian Grid Editor dialog, or Polar Grid Editor dialog). Alternatively, a single nominated color can quickly be assigned for the fine- or coarse-level display grids - on a global level to all defined grids, including the default grid - from within the Grid Manager dialog. To do this, simply use the Set Fine Color for All or Set Coarse Color for All commands from the dialog's menus, then choose the required color from the subsequent Choose Color dialog.
Fine and Coarse display grid colors can be reset to defaults by clicking the Reset to Default link in a grid editor, or by using the Reset All To System Grid Colors command in the Grid Manager dialog. Default coloring is defined in the System Colors region, on the Board Layers And Colors tab of the View Configurations dialog. Specifically, the default fine-level display grid color is specified using the Default Grid Color - Small option, and the default coarse-level display grid color is specified using the Default Grid Color - Large option.

Nesting and Grid Priority

The local grids you define in the Grid Manager dialog 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.

The Global Board Snap Grid is an exception. As it is the default grid that is used in all areas of the board that are not 'covered' by defined custom grids, it is given the priority setting of Default. It has the lowest 'snapping priority' of all defined grids.

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.

Change the priority for a grid by selecting it in the list and using the Increment Priority and Decrement Priority commands (available from the Grid Manager dialog's menus) as required.

If multiple grids are selected in the list, commands to change the priority will have no affect. Ensure that only a single grid is selected.

A number of keyboard shortcuts are also available for setting the priority:

  • U or Ctrl+Up Arrow - increase the priority of the selected grid.
  • D or Ctrl+Down Arrow - decrease the priority of the selected grid.
  • H or B - make the currently selected grid the highest priority (i.e. 1).
The priority of the Global Board Snap Grid cannot be changed - it is fixed to always have the lowest priority.
The number keys 1-9 can be used to quickly focus the grid with the corresponding numeric priority.

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 Non Comp and Comp attributes in the Grid Manager dialog.

The Non Comp attribute can be quickly toggled for the focused grid using the Spacebar. In addition, commands available from the dialog's menus allow you to quickly Enable All Custom Grids, or Disable All Custom Grids, respectively.

The Enable All Custom Grids and Disable All Custom Grids commands act on the Non Comp attribute only. If a grid is set for use as a component grid also (Comp attribute enabled), this setting will remain unchanged by use of these commands. Manually disable this attribute to fully disable ('hide') a grid.

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!

The default Global Board Snap Grid is permanently enabled, as this is the default grid that is used when no local grid has been defined for an area of the board. However it, and all defined grids, can be hidden from the Board Layers And Colors tab of the View Configurations dialog, by disabling the Show option for the Default Grid Color - Small and Default Grid Color - Large entries.

Exporting and Importing Grids

The Grid Manager dialog provides controls for exporting and importing defined grids - custom local grids, as well as the default Global Board Snap Grid - so that preferred grids can always be accessed and used across different designs. Grid information is stored in a PCB Grid file (*.PCBGrid).

To export specific grids, select the grids and use the Export Selected command from the dialog's menus. To export all grids, use the Export All command. Use the subsequent Save PCBGrid dialog to determine where, and under what name, the file is to be saved.

Example PCB Grid file, containing definitions for exported grids.Example PCB Grid file, containing definitions for exported grids.

To import grids, simply use the Import Grids command from the Grid Manager dialog's menus. Use the subsequent Load Custom Grid dialog that appears to browse to, and open, the required PCB Grid file. The grids will be added to the list of existing grids.

Importing grids with the same name as any existing grids will not overwrite those existing grids. The imported grids will simply be added to the list. The exception is the default Global Board Snap Grid. The existing Default grid will be overwritten with the definition for it, in an imported PCB Grid file.
The ability to export and import grid definitions plays a valuable role in the PCB Library Editor domain, since grids defined in the Editor only apply to the current component. Simply define grids once, for a single component, then export them and import them to all other components as required.

Deleting a Grid

Custom grids can be deleted simply by selecting their corresponding entry in the Grid Manager dialog and using the Delete command from the dialog's menus. Remember that the default Global Board Snap Grid cannot be deleted.

Snap Guides

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 commands for placement available from the Place » Work Guides sub-menu.

Examples of the various Snap Guides available to assist object placement.Examples of the various Snap Guides available to assist object placement.

All snap guide management is performed from within the Snap Guide Manager dialog. And while controls are available for adding new snap guides from within this dialog, it is far easier to visually add them directly in the workspace, then use the dialog to fine-tune them as required.

Quickly access the Snap Guide Manager dialog from the Snap menu, or by using the Tools » Guide Manager command.
Once a Snap Guide has been created, it can be managed only through the Snap Guide Manager dialog.

The Snap Guide Manager dialog - command central for managing visual placement guides for use in the workspace.The Snap Guide Manager dialog - command central for managing visual placement guides for use in the workspace.

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.

Visually, Point Guides are particularly beneficial when the grid marker type is set to Dots.
The cursor will only snap to a placed Linear Guide provided the option Snap To Linear Guides is enabled, in the Snap Options region of the Board Options dialog. The cursor will only snap to a placed Point Guide provided the option Snap To Point Guides is enabled.

Duplicating an Existing Defined Guide

To aid you in quickly building a set of snap guides, the Snap Guide Manager dialog supports the ability to duplicate guides. Simply select one or more snap guides in the existing guides list, and use the Duplicate Selected command from the dialog's menus. Exact copies of those guides are created and added to the list.

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 Snap Guide Manager dialog.

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
them!

Exporting and Importing Guides

The Snap Guide Manager dialog provides controls for exporting and importing defined guides so that preferred guides can always be accessed and used across different designs. Guide information is stored in a PCB Guide file (*.PCBGuide).

To export specific guides, select the guides and use the Export Selected command from the dialog's menus. To export all guides, use the Export All command. Use the subsequent Save PCBGuides dialog to determine where, and under what name, the file is to be saved.

Example PCB Guide file, containing definitions for exported snap guides.Example PCB Guide file, containing definitions for exported snap guides.

To import guides, simply use the Import command from the Snap Guide Manager dialog's menus. Use the subsequent Load Guides dialog that appears to browse to, and open, the required PCB Guide file. The guides will be added to the list of existing guides.

The ability to export and import guide definitions plays a valuable role in the PCB Library Editor domain, since guides defined in the Editor only apply to the current component. Simply define guides once, for a single component, then export them and import them to all other components as required.

Deleting a Guide

To delete a snap guide, simply select its entry in the Snap Guide Manager dialog and use the Delete Selected command from the dialog's menus. To delete all existing snap guides, use the Delete All command.

Object Snap-Points

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 Axis.

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. Altium Designer 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.

This is essentially the same legacy Electrical Grid system found in all previous releases of Altium Designer.

Off-grid objects can be snapped to, using the object hotspot snapping feature.Off-grid objects can be snapped to, using the object hotspot snapping feature.

The Status bar reflects the current state of object Hotspot Snapping. Use the Shift+E keyboard shortcut to toggle through the supported modes:

  • ON - 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).
  • ON (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.

The Status bar always displays the current hotspot snapping mode.The Status bar always displays the current hotspot snapping mode.

Hotspot snapping is only available when the Snap To Object Hotspots option is enabled, in the Snap Options region of the Board Options dialog. The extent of attraction (Range) can also be specified here - the distance from an object's hotspot, within which the cursor will be snapped to that hotspot.
Hold the Ctrl shortcut key to temporarily disable object hotspot snapping during interactive routing.

Snap to Object Axis

As well as snapping the cursor to an object's hotspot, Altium Designer 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 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 Axis 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.

The Snap to Object Axis feature is only available provided the Snap To Object Axis option is enabled, in the Snap Options region of the Board Options dialog.

Use options available in the Advanced Options - Snap to Object Axis region of the Board Options dialog - accessed by clicking on the Advanced link - to control how different types of objects are used as Snap-Point sources.

The Board Options dialog provides advanced options for controlling single-axis object snap.The Board Options dialog provides advanced options for controlling single-axis object snap.

  • Near Objects - enable those design objects to be used as snap point sources as the cursor is moved near to them. Use the associated Near Range field to specify the distance the cursor can be from an enabled object, inside which that object's hotspot will cause the cursor to snap to a system-generated dynamic alignment guide.
  • Far Objects - enable those design objects to be used as snap point sources when the cursor is further away from an object, beyond the specified Near Range. An enabled object's hotspot will continue to cause the cursor to snap to a system-generated dynamic alignment guide, at this greater distance.
By default, all objects (Pads, Vias, Tracks, Arcs, Fills, Regions, Texts) are enabled as Near Objects and only Pads and Vias enabled as Far Objects. The Near Range is set to 1000mil.

 

Note

The features available depend on your level of Altium Designer Software Subscription.

Content