Working with the Cursor-Snap System
The PCB Editor is a grid-based design environment - design objects are placed on what is referred to as the placement, or snap grid. Multiple snap grids can be defined, and these can be restricted to a specified area if required. Snap grids are prioritized, with the highest priority grid available at the current location, being applied automatically. Snap grids can also be restricted to Components or Non-Components.
As well as the snap 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 different metric and imperial grids - serve to add greater complexity to this objective.
The system brings together different sub-systems to collectively drive the way that the cursor snaps onto given sets of preferred coordinates:
- User-Definable Snap Grids - the basic workspace alignment grid, available in both Cartesian and Polar formats. Learn more.
- Snap Guides - that can be freely placed and provide a handy visual cue for object alignment. Learn more.
- Object Snapping - enabling placed objects to pull the cursor into position, based on cursor proximity to that object's snap points (hotspots).
- Axis Snapping - a feature to pull the cursor, in either the X or Y direction, so that it axially-aligns with an object's hotspot.
These features combine to ensure streamlined placement and alignment of objects in the PCB design space.
Setting the Board Origin
The current cursor location is shown on the Status Bar relative to the Current Origin. Positions of placed objects are also displayed/defined relative to the current origin. The current origin is user-definable and can be located anywhere in the design space. Use the Edit » Origin » Set command from the main menus to define a location in the design space as the new current origin and set its coordinates to (0,0). After selecting the required location, all objects in the design space will have their locations updated relative to this point.
To set the relative origin to the default Absolute Origin at the extreme lower-left of the 100 x 100 inch design space, use the Edit » Origin » Reset command from the main menus.
Accessing the Unified Cursor-Snap System
The Unified Cursor-Snap System is configured in the Properties panel (accessed when there are no design objects currently selected in the design space). The images below show the regions of the panel that are used to configure the unified cursor-snap system.
The following regions of the panel are used.
- Selection Filter - The options in this region determine which PCB objects can be selected in the design space.
- All - On – select so that all types of objects can be selected.
- Object buttons – toggle each object button to enable/disable the ability to select that object type.
- Snap Options - provides options to determine cursor snapping (first image above):
- Grids - used to toggle whether the cursor will snap to the active design space grid. When this option is enabled, the cursor will pull or snap to the nearest snap grid location. The active snap grid is displayed on the Status bar and in the PCB editor Heads Up display (Shift+H to toggle on/off). When this option is disabled, the cursor will only snap to the enabled Objects for snapping, essentially becoming gridless. Learn more about Working with Grids.
- Guides - used to toggle whether the cursor will snap to manually placed linear or point Snap Guides. A Snap Guide will override the Snap Grid. Learn more about Working with Guides.
- Axes - used to toggle whether the cursor will axially-align (in either the X or Y direction) to the enabled Objects for snapping. Note that these are snappable points on user-placed objects, not workspace grid points. The Axis Snap Range defines the distance within which X or Y axial-alignment will occur. A dynamic alignment guideline is displayed when alignment is achieved from the current cursor location to the axially-aligned object snap point.
- Snapping - used to control whether object snapping is Off, if object snapping only occurs for the enabled objects on the Current Layer, or if object snapping occurs for the enabled objects on All Layers.
- Object for snapping - object snap points (hotspots) that will be snapped to during an edit action, such as placement or movement.
- Snap Distance - when the cursor is within this distance from an enabled object snap point (and snapping is enabled for the active layer), the cursor will snap to that point.
- Axis Snap Range - when the cursor is axially-aligned and within this distance from an enabled object snap point (and the Axes feature is enabled), a dynamic guideline will display to indicate that alignment has been achieved.
- Board information - displays the horizontal and vertical board dimensions of the board itself along with information for each listed category such as the total number of the listed item. Click Reports to open the Board Report dialog in which you can specify the content to be included when generating a detailed report for the board.
- Grid Manager - where local customized grids can be defined and managed, as well as the default Snap Grid for the board.
- Guide Manager - where a range of manual Snap Guides and Snap Points for the board can be defined and managed.
- Other
- Units - use to select the default measurement units for the current PCB document. Default units are used to display any distance related information on the screen or in reports. The default units are always used if a unit's suffix (mm or mil) is not entered when specifying any distance related information.
- Polygon Naming Scheme - select a naming system from the dropdown menu.
- Designator Display - use this field to determine how designators are to be displayed.
- Sheet Settings - if you want to add a sheet, use these options to determine the X/Y, width, and height distances that will be utilized. These options are enabled when the Get Size From Sheet Layer option is unchecked.
Understanding the Snap Behavior
The PCB editor design space is a high-precision design environment containing objects that are designed to different scales, sometimes using different units of measurement. The unified cursor-snap system simplifies the process of working in such a complex design space, providing multiple levels of cursor snapping during object placement or movement.
The Snap Points
There are three levels of cursor-snapping available, each level overrides the lower level(s):
- Grid - the active Grid provides the base-level reference plane for snapping. The logical, or editing cursor, snaps from one grid point to the next as you move the mouse cursor across the screen.
- Snap Guides - overlaying this plane of grid points, snap Guides provide a method of defining precise, localized reference lines or points.
- Objects - the third, and often the most useful points of reference for snapping, are the objects that have already been placed in the design space. Using the checkboxes in the Objects for snapping list, specific points on each object-type can be enabled as snap points, which are also referred to as object hotspots.
The Snap Strength
The strength of the snap is defined by the Snap Distance. When the mouse cursor moves within this distance from an enabled Object for snapping, the editing cursor immediately snaps to that object's hotspot. Reduce this value to weaken the snap strength, increase the value to strengthen the snap effect. Keep in mind that a large value for the Snap Distance may prevent you from positioning the cursor at certain grid locations, whenever a nearby object's hotspot is within the Snap Distance.
Interactively Controlling the Snap Behavior
As you can see in the video above, a key feature of working with the snap options is being able to reconfigure them as you work. When using this feature, you may choose which objects you'd like to enable for snapping. Click on an object once to enable it (the object button will turn blue), or click again to disable it (the button will turn gray). The Custom button allows you to freely choose the objects for snapping you wish you enable. If at least one object (but not all of them) is enabled, clicking the Custom button will enable the All - On button, which enables all objects. This feature may be disabled by clicking the All - On button, which enables the All - Off button disabling all objects chosen.
At any time you can press Ctrl+E or click the button in the Active Bar to display a palette of snap options.
Snap Options shortcuts:
- Ctrl+E - display a palette of snap options
- Shift+E - cycle to the next Snapping mode (Off, Current Layer, All Layers)
- Ctrl - hold to inhibit object snapping
Object Snapping
It is often impossible or impractical to define a grid that all design objects fall on. 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 endpoints of track segments.
This is a dual-axis system where the mouse cursor must be within the Snap Distance on both the X and Y axes in order for the object to pull the cursor towards that hotspot. Object hotspot snapping provides an aid to routing electrical objects, especially those that may not fall on the active snap grid. The Snap Distance is configured in the Properties panel when there are no objects selected in the design space.
The Objects for snapping feature has three modes. Use the buttons in the Snapping region of the Properties panel to select the required mode or use the Shift+E keyboard shortcut or the View » Grids » Toggle Object Hotspot Snapping command from the main menus to cycle through the modes as you work.
- 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 in 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 in the Status Bar as (Hotspot Snap (All Layers)).
- Off - hotspot snapping is disabled. The Status Bar displays nothing about Hotspot snap in this mode.
Aligning the Editing Cursor with a Placed Object
A common design task is to align a new object with an existing object. This can be achieved by enabling the Axes feature. When this feature is enabled, a dynamic alignment guide line is displayed from the current cursor location to the X or Y aligned object's hotspot whenever the editing cursor is within the Axis Snap Range. This allows an object hotspot that is close to the mouse cursor on one axis but distant on the other axis to drive the cursor position.