Schematic Placement & Editing Techniques
Electronic design is the process of capturing a logical design in the schematic, then representing that design as a set of objects in the PCB workspace. Even for a small circuit, the schematic can include many components, each with numerous models and parameters, and the PCB workspace can also contain a large number of design objects that make up the board. During the course of the design process, the placement and properties of these objects need to change as the designer works to balance out the various design requirements.
Fundamentals of Object Placement
Grids and Cursors
Before placing objects in the Schematic Editor, set the grids to enable easier placement. Altium offers three grid types: visible grids for navigation; snap grids for placement and electrical grids for aiding the creation of connections. Grids are document options, meaning that they are saved with the individual design, so grid settings may differ between one design document and the next. Set your grids initially in the Document Options dialog (Design » Document Options).
Visible grids appear whenever the zoom level will allow them to be sufficiently spaced, displayed as either lines or dots. The Snap grid is the grid that the cursor is locked to when placing or moving schematic design objects. Overriding Snap grids are Electrical grids, which allow connections to be made to off-grid parts. When moving an electrical object in the workspace and it falls within the electrical grid range of another electrical object that you could connect to, it will snap to the fixed object and a hotspot (red cross) will appear. The Electrical grid should be set slightly lower than the current Snap grid or else it becomes difficult to position electrical objects one snap grid apart.
Grids can be quickly modified or toggled between enabled and disabled, through keyboard or mouse shortcuts, for example, press G to cycle through the Snap grid settings of 1, 5 and 10. You can also use the View » Grids sub menu or the Grids right-click menu. Use the Grids tab under the Schematic folder in the Preferences dialog (Tools » Schematic Preferences or shortcut T, P) to set Imperial and Metric grid presets.
You can also change the Cursor type to suit your needs in the Cursor section of the Schematic - Graphical Editing page of the Preferences dialog. For example, a large 90 degree cross that extends to the edges of the design window (Large Cursor 90 option) can be handy when placing and aligning design objects.
Placing Design Objects
The basic steps for placing schematic design objects are outlined below.
- Select the object type that you want to place. You can do this by selecting an object type from the Place menu (e.g. Place » Wire) or by clicking on one of icons on the placement toolbars. Shortcut keys for placement are also available (e.g. P, W to place a wire). To place components (parts), you can also click the Place button in the Library panel, or select the component name from an available library in the Library panel and drag it into the document.
- When an object is selected for placement the cursor will change to a crosshair, indicating that you are in editing mode, and, if relevant, the object will appear "floating" under the cursor.
- Press the Tab key to edit the properties of the object before placing it. This will open the Properties dialog for the particular object, allowing you to change various options. Once you have finished setting the properties, click OK to return to placement mode. The advantage of editing during placement is that objects that have a numeric identifier, such as a designator, will auto-increment.
- Position the cursor and left-click, or press Enter, to place the object. For complex objects, such as wires or polygons, you must continue the position-and-click procedure to place all vertices of the object.
- After placing an object you will remain in placement mode (indicated by the crosshair cursor), allowing you to place another object of the same type immediately. To end placement mode, right-click or press the Esc key. In some cases such as placing a polygon, you may need to do this twice; once to finish placing the object and once to exit placement mode. When you exit placement mode, the cursor will return to its default shape.
Re-Entrant Editing
The Schematic Editor includes a powerful feature called re-entrant editing which allows you to perform a second operation using the keyboard shortcuts without having to quit from the operation you are currently carrying out. For example, pressing the Spacebar when placing a part will rotate the object but will not disrupt the placement process. Once you place the part, another part will appear ready upon your cursor, already rotated.
Another example of when re-entrant editing is very useful is if you start placing a wire that it needs to be connected to a port which you have not placed yet. There is no need to exit Place Wire mode; just press the Place Port shortcut keys (P, R), place the port, press Esc to exit Place Port mode and then connect the wire to the port.
Measuring the Distance on a Schematic Document
The Schematic Editor has a distance tool located in the Reports menu (Reports » Measure Distance as well as the Ctrl+M shortcut keys). You can use this tool to measure the distance between two points on a schematic document.
After launching the command, you are prompted to click on two points on the schematic document. Once you have chosen two points, an Information dialog appears with an overall Distance value, with the X Distance and Y Distance values displayed accurate to two decimal places.
The measurement units are determined by the System Units chosen for the schematic document (Design » Document Options). If the dialog does not include measurement units, it means that the document is currently set to use DXP default units, where 1 unit is 10 mils. You can switch to Imperial or Metric units by toggling the System units (View » Toggle Units).
Graphically Editing Placed Objects
It is generally easier to edit the look of an object in the workspace graphically. To do this, you must first select the object(s).
When an object is selected, you can move the object or edit its graphical characteristics. Click on an object to select it and its 'handles' or vertices are displayed. To graphically change a selected object, click and hold on an editing handle. That point of the object will then become attached to the cursor, so simply move the mouse to a new location and release to resize. Click anywhere on a selected object to move it, or press the Delete key to delete it.
Using Copy and Paste
In the Schematic Editor, you can copy and paste objects within or between Schematic Documents, e.g. component(s) from a schematic can be copied into another Schematic Document. You can copy objects to the Windows clipboard and paste them into other documents. Text can be copied from the Windows clipboard into a schematic text frame. You can also directly copy/paste a table-type selection from another application such as Microsoft Excel, or from any grid style control within Altium Designer.
More advanced copy/paste actions can be performed using the Smart Paste feature.
Select the object(s) you want to copy, select Edit » Copy (Ctrl+C) and click to set a copy reference point on the object which will be used to accurately position the object during pasting. You will only be prompted to click to set a reference point if the Clipboard Reference option is enabled in the Schematic - Graphical Editing page of the Preferences dialog.
Selecting Multiple Objects
There are actually a number of ways of selecting objects, for example the Windows standard mouse click shortcuts can be used. This approach is ideal when the number of objects to be selected is small, or perhaps when there are different kinds of objects to be edited simultaneously.
To select many objects, including over a number of schematic sheets, you can use the Find Similar Objects dialog. To open this dialog, right-click on one of the objects to be edited, and select Find Similar Objects from the context menu.
Let's walk through the process using an example. Let's say we need to change the name of a power net in the schematic from VCC to 3V3. The name of the power net is defined by the Net attribute of the Power Port object. To change the name, all of the VCC power ports on all of the schematic sheets need to have their Net attribute changed. The first step is to find a VCC power port on the schematic, right click on it, and select Find Similar Objects from the context menu.
The image above shows the Find Similar Objects dialog after right-clicking on a schematic Power Port. It is important to note that the dialog lists the properties of the object you clicked on, so the contents of this dialog will be different if you clicked on something else. You can see that the dialog has two columns: the first column on the left shows the current properties of the object you clicked on – down the bottom you can see that the net name Text is currently VCCO
.
The second column on the right is where you configure how to match other objects. For each property of the object, you instruct it to match target objects when this property value is the Same
, match when the target has a Different
value, or set it to Any
when you are not interested in matching by this property.
Note that in in the image below, the matching will occur when the Object Kind is the Same
, and when the net name Text is the Same
. Or to say that another way, match when the other object is a Power Object with a net name of VCCO.
The next step is to set the scope of the find action, should it be on the Current Document
only, or all Open Documents
. For the example we will set the scope to Open Documents
. For this editing action to apply to all the sheets in the project, all sheets in the project must be opened first.
The final step is to define what should happen after all the Power Objects that have net name Text of VCCO, in all Open Documents have been found. The image below shows the settings that need to be set for this edit operation.
The key options to be set are:
- Select Matching (to select all the Power Objects with net name Text of VCC ), and
- Run Inspector, which will open the Inspector panel with the selected objects loaded into it.
Click the OK button to select the matching Power Ports. Alternatively, you can use the Apply button, this will select the matching power ports and open the Inspector, but the Find Similar Objects dialog will remain open too – use this approach if you are not sure you have the correct matching criteria.
Inspecting the Objects
Both the schematic and PCB editors include the Inspector panel. The basic behavior of the Inspector is that it lists the properties of all currently selected objects. The set of selected objects can be the same kind of object - for example the image above shows the properties of ten power ports - or they can be different types of objects.
Properties that are identical for all the selected objects have their value displayed, for example all ten power ports currently have the same Color, the same Orientation, the same Style and the same Text (net name).
For each power port property that has a different value, you will see <...>
instead, for example the X1 location. This means that not all these ten objects have the same X1 value, which makes sense since they each have a different location.
Note in the image above that the SCH Inspector includes two options at the top. It is important that you set the second of these, which sets the display of where the found objects are from – from the current document
, open documents
, or open documents of the same project
. To have all of the selected power ports loaded into the SCH Inspector you must set this to open documents
or open documents of the same project
.
Editing the Objects
So far you have selected the Power Objects you want to edit and inspected their properties in the Inspector. Now you are ready to edit them.
Click to edit the net name text simply type in the new value. The browse button appears at the end of the Text field, click this when you want to perform a partial string substitution. For this edit, we will be replacing all the text, so we simply replace the entire contents of the cell with the new text, 3V3
.
The change you make to the text value is applied to all the selected objects as soon as you press Enter on the keyboard or click another cell in the SCH Inspector.
If you change your mind during the edit, press the Esc key on the keyboard to abort the edit. To Undo an edit that has been applied, select Edit » Undo from the menus. If the edit has been applied to multiple schematic sheets, you will need to perform an Undo action in each sheet.
The image below shows the SCH Inspector panel after changing the text and pressing Enter next to one of the edited power ports.
You can use this approach to apply an edit globally to any type of object in the Schematic or PCB Editors.
After performing the edit, you will probably find that all the other objects on the schematic are faded out, or masked. While something is masked it cannot be edited. To remove the mask click the Clear button at the bottom right of the workspace shortcut: Shift+C).
Editing Group Objects
The edit that we just performed was on a primitive object, that is, one of the basic objects used in the Schematic Editor. More complex objects, such as components, are called group objects; these are essentially a collection of primitive objects. For example, a component on a schematic is a collection of drawing objects, strings, parameters, pins, and references to models. The primitive objects that belong to a group object are sometimes referred to as the child objects, and the group object is their parent object.
Let's look at a typical group object edit that you might want to perform. Your design includes several 100uF 16V capacitors, using the footprint CAPPR2-5X6.8. Currently the voltage is specified as part of the components' comment string. You need to change this and specify the voltage as a component parameter instead, and make this parameter visible on the schematic.
The steps we need to perform are:
- Select capacitors with a value of 100uF 16V , and CAPPR2-5X6.8 footprint.
- Change their comment to be 100uF (remove the 16V text).
- Add a new parameter to these components, with a name of Voltage, and a value of 16V.
- Change the visibility of this parameter so it's displayed on the schematic.
While this might seem a complex set of edits to perform in one go, it is actually quite straightforward.
Step 1. Selecting the Capacitors
To select all the 100uF 16V capacitors, right-click on the component symbol of one of them and select Find Similar Objects from the context menu.
We will use the approach covered in the previous example, except this time you want to match on components that have the same Part Comment and the same Current Footprint, as shown in the image above.
Note that we can also match on components that have a designator starting with the letter C. This is done by changing the component designator value in the Find Similar Objects dialog from what it opened as, to C*
(above). Click OK to select the matching capacitors.
Step 2. Changing the Comment String
After running the Find Similar Objects dialog, the SCH Inspector panel opens (if the Run Inspector option in the Find Similar Objects dialog was enabled). Behind it will be the schematic sheet displaying the matching objects selected on that sheet. If the Zoom Matching and Mask Matching options were enabled in the Find Similar Objects dialog, then the view would be zoomed and all the objects that did not match are faded, or masked out.
The image above shows the results. There are three capacitors found on this current schematic sheet.
You can check the status line at the bottom of the SCH Inspector panel to see if the same capacitors exist on other sheets, note that it states 3 object(s) are displayed in 1 document(s). In this example, there are not any of the same capacitors on other sheets, since the SCH Inspector was configured to Include all types of objects from open documents at the top of the panel.
To change the comment string, simply delete the 16V
from the string, as shown in the image below, and press Enter on the keyboard to apply the change. Leave the objects selected and the SCH Inspector open, ready to perform the next edit.
Step 3. Adding a New Parameter to the Component
The next change that we need to make is to add a new parameter to these four components, called Voltage, and set the value to 16V
. To do this, we use the Add User Parameter feature at the bottom of the SCH Inspector panel (below). Note that you enter the value first, then the parameter name.
- First, type in the value of the new parameter,
16V
, into the Add User Parameter field in the Inspector. - Press Enter to apply the change. When you do, the Add new parameter to objects dialog will appear.
- Type in the new parameter name and click the OK button.
The SCH Inspector panel now includes the new Voltage parameter in the list at the bottom, with a value of 16V
, as shown in the image below. You can add as many parameters as you wish using this approach.
Step 4. Setting the Voltage Parameter to be Visible
The last step is to make the new Voltage parameter visible on these four capacitors. The visibility of a parameter is a property of the parameter itself, not the component, so we cannot change this in the SCH Inspector panel yet because it is currently displaying the properties of the parent components.
To access the properties of the child parameters, click on the hyperlinked Parameter name, Voltage , in the Parameters list at the bottom of the SCH Inspector panel. When you do this, the Voltage parameter properties for the selected components will be loaded into the SCH Inspector panel, ready to edit. You can confirm this by checking the Object Kind at the top of the panel – it should display the value Parameter
.
Now we can make the Voltage parameter visible on the schematic. To do this, clear the Hide checkbox, as shown in the image above.
If you wanted to return to the parent components, perhaps to edit some other property, you would do this by clicking the Owner hyperlink, as shown in the image below.
We have now updated the comment string for all 100uF capacitors, using a CAPPR2-5X6.8 footprint. We have also added a new parameter called Voltage, set its value to 16V
, and made this parameter visible.
Locking Design Objects
Design objects can be locked from being moved or being edited on the schematic document by enabling their Locked attributes. For instance, if the position or size of specific objects are critical, lock them. This Locked attribute is available in the design objects' properties dialogs, or the Locked attributes can be toggled collectively in the SCH List panel.
Locking Design Objects on Schematic Sheets
- To lock a group of schematic objects, you can use the SCH List panel to toggle the Locked options as shown in the image on the right below.
- To lock an individual object, double-click the object and when its properties dialog opens, enable the Locked option, as shown in the image on the left below.
If you attempt to move or rotate a design object that has its Locked property enabled, a dialog appears asking for confirmation to proceed with the edit.
If the Protect Locked Objects option is enabled in the Schematic – Graphical Editing page of the Preferences dialog and the design object is locked, this object cannot be selected or graphically edited. Double-click on the Locked object to disable the Locked property, or disable the Protect Locked Objects option to graphically edit this object.
If you attempt to select locked objects along with other objects, only those objects that are unlocked can be selected and moved as a group when the Protect Locked Objects option is enabled.
Managing Footprints Across the Entire Design
Altium Designer's schematic editor includes a powerful Footprint Manager. Launched from the Schematic Editor's Tools menu (Tools » Footprint Manager), the Footprint Manager lets you review all the footprints associated with every component in the entire project. Multi-select support makes it easy to edit the footprint assignment for multiple components, change how the footprint is linked, or change the Current footprint assignment for components that have multiple footprints assigned. Design changes are applied through Altium Designer's standard ECO system, updating both the schematic and the PCB if required.
Using a Query to Find and Edit Multiple Objects
Altium Designer has a powerful query engine built into it, which is used to precisely target design objects. A query is essentially a description of something that you would like to find in the design data.
Filtering to Find the Objects
You can query the design data in a number of different ways. One of these is to type the query in to the Filter panel. When you apply the query you are filtering the design database. Each object is tested to see if complies with the query, and if it does, it is added to the result set.
The image below shows the Schematic Library SCHLIB Filter panel, with the query IsPin
typed in. When this query is applied, every object in the library is checked (since the Whole Library option is enabled), any object that is a pin will comply and be added to the result set. All other objects are filtered out.
How the results are presented depends on the options on the right of the SCHLIB Filter panel. In the image above, you can see that objects that pass the filter (pins in this case) will be selected and zoomed. All other objects that do not pass the filter will be de-selected and masked out (faded and made non-editable).
Since the Select option is enabled, the pins will also be loaded into the SCH Inspector panel. This panel essentially 'stacks' the selected objects to give one view into their common properties, which is not that useful for editing component pins (unless perhaps you wanted to change their length).
The pins will also be displayed in the SCH List panel, which presents design data in a tabular grid, where it is easy to compare and edit one or more objects at once.
Editing Design Objects in the Schematic Library List Panel
The image above shows the Schematic Library SCHLIB List panel loaded with pins. Note that the from option at the top of the panel is currently set to current component, even though the filter was configured to select them for the whole library. There are scope controls in both the SCHLIB Filter and the SCHLIB List panels; this is because you control filtering separately from the display of the results. You can use this to do things like find all pins in the current library, then switch between looking at all the pins, or just those in the current component.
The tabular grid of the SCHLIB List panel is ideal for reviewing and editing objects. Once you have set the SCHLIB List panel to be in Edit mode (the option at the top left of the panel), you can use keys on the keyboard to 'walk' around and edit settings. For example, use the arrow keys to move around the grid, F2 or Spacebar to edit the selected cell, Enter to apply a change, Spacebar to toggle a checkbox when that cell is active, and so on.
The SCHLIB List panel is completely configurable. To add or remove columns, or to change the order of columns, right-click on the column headings and select Choose Columns from the context menu.
Using a Spreadsheet Program to Edit Design Data
Not only can you edit data directly in the SCHLIB List panel, you can also multi-select blocks of cells and copy them from the SCHLIB List panel into your preferred spreadsheet program, and from the spreadsheet back into the SCHLIB List panel. For example, you are creating a new component and you have copied all the pin data from the manufacturer's datasheet into a spreadsheet.
Rather than entering this data into the Schematic Library editor one pin at a time, you can:
- Place one pin in the new schematic component, copy it, then use the Paste Array command to give you the total number of pins required.
- Use the query
IsPin
in the Filter panel to load these pins into the List panel. - Set up the relevant pin data columns, so that they correspond to the arrangement of columns in the spreadsheet program.
- Switch to the spreadsheet program, select the required block of pin data and copy it.
- Switch back to the SCHLIB List panel, select the same block of cells, right-click and select Paste from the context menu.
You might want to copy a block of data from the SCHLIB List panel to the spreadsheet first, to see how the data is represented in the spreadsheet. Using this approach, you can quickly configure a large number of component pins in your new component. The image above and the two below illustrate this sequence:
Creating and Editing Data as you Paste from a Spreadsheet or Table
You can also use the Smart Grid Paste tools to quickly update the design objects' attributes or to create a group of primitives quickly and easily. These tools are available via the right-click menu in the Schematic or PCB Editor's List panel.
Filtering Objects in the Design Workspace - How does it work?
You can control the filtering process by writing a Query in the Filter panel, by configuring options in the Find Similar Objects dialog (which actually uses a query behind the scenes), or by selecting objects in the Navigator panel.
The Highlighting engine determines how the filtered data will be presented.
As the user, you can access the filtered Display data in the main graphical editing window, in the Inspector (if you instructed the highlight engine to select the objects), or in the List panel.
Tips for Writing Queries
- Use the Query Helper to become familiar with the available query keywords. Click the Helper button in the Filter panel to display the helper. Visit the Query Language Reference section for more information about queries.
- Press F1 over a keyword to display on-line help for that query keyword.
- Use the Mask field at the bottom of the Query Helper dialog to search for possible keywords. If you include the * wildcard character at the start of the string you are looking for, you will find all references to that text string in the keywords and also in the descriptions.
- Click the Check Syntax button before you close the Query Helper dialog.
- Include quotation marks around a variable, for example
'DIP14'
. - There is an order of precedence used to resolve queries, so include brackets to be sure that it is resolved in the correct sequence.