The PCB Rules and Constraints Editor dialog allows you to browse and manage the defined design rules for the current PCB document. Design rules collectively form an instruction set for the PCB Editor to follow. Each rule represents a requirement
of your design and many of the rules, e.g., clearance and width constraints, can be monitored as you work with the Design Rule Checker dialog. Certain rules are monitored when using additional features of the software, such
as routing-based rules when using the Situs Autorouter to route a design.
To successfully complete a PCB design using Altium Designer's PCB Editor, the constraints of the design should be thought out and implemented as a well-honed set of design rules. Remember that the PCB Editor is rules-driven and therefore, taking the time
to set up the rules at the outset of the design will enable you to design with the knowledge that the rules system is working hard to ensure success.
For more information about PCB Design Rules, click here.
The dialog is accessed from the PCB Editor by selecting Design » Rules from the main menus.
The dialog is composed of a static pane on the left and the main editing region on the right that changes dynamically with the selection on the left. The dialog’s search engine allows it to be used in a straightforward search mode by entering
the relevant Name, Type, Category, or Attribute keyword(s) in the main Search field.
In the folder-tree pane on the left side of the dialog, each of the supported design rule categories, and types thereof, are listed under the Design Rules folder. The following rule categories and types are supported in Altium Designer:
Electrical - this category offers the following rule types: Clearance, Short-Circuit, Un-Routed Net, Un-Connected Pin, and Modified Polygon.
Routing - this category offers the following rule types: Width, Routing Topology, Routing Priority, Routing Layers, Routing Corners, Routing Via Style, Fanout Control, and Differential Pairs Routing.
SMT - this category offers the following rule types: SMD To Corner, SMD To Plane, SMD Neck-Down, and SMD Entry.
Mask - this category offers the following rule types: Solder Mask Expansion and Paste Mask Expansion.
Plane - this category offers the following rule types: Power Plane Connect Style, Power Plane Clearance, and Polygon Connect Style.
Testpoint - this category offers the following rule types: Fabrication Testpoint Style, Fabrication Testpoint Usage, Assembly Testpoint Style, and Assembly Testpoint Usage.
Manufacturing - this category offers the following rule types: Minimum Annular Ring, Acute Angle, Hole Size, Layer Pairs, Hole To Hole Clearance, Minimum Solder Mask Sliver, Silk To Solder Mask Clearance,
Silk To Silk Clearance, Net Antennae, and Board Outline Clearance.
High Speed - this category offers the following rule types: Parallel Segment, Length, Matched Lengths, Daisy Chain Stub Length, Vias Under SMD, Maximum Via Count, and Max Via Stub Length (Back Drilling).
Placement - this category offers the following rule types: Room Definition, Component Clearance, Component Orientations, Permitted Layers, Nets to Ignore, and Height.
Signal Integrity - this category offers the following rule types: Signal Stimulus, Overshoot - Falling Edge, Overshoot - Rising Edge, Undershoot - Falling Edge, Undershoot - Rising Edge,
Impedance, Signal Top Value, Signal Base Value, Flight Time - Rising Edge, Flight Time - Falling Edge, Slope - Rising Edge, Slope - Falling Edge, and Supply Nets.
Click on the root folder to access a summary listing in the main editing region of the dialog of all specific rules that have been defined for all design rule types across all categories.
Click on a category folder to access a summary listing of all specific rules that have been defined for all associated design rule types of that category.
Click on a rule type folder to access a summary listing of all specific rules that have been defined for that type.
Click on the entry for a specific rule in the folder-tree pane (or double-click on its entry in a summary list) to access controls for managing its definition.
The following commands are available from the right-click menu for the left-hand pane:
New Rule - use this command to create a new rule of the currently selected rule type. The new rule will be added to the folder-tree and will also appear in the summary list for that rule type. The rule name will appear bold to distinguish
it as being new and yet to be 'applied'.
When a new rule is added, it will initially be given a default name based on the specific type of rule. For example, if you add a new Clearance rule, the default name will be Clearance. If this default naming is not changed, adding another new
rule of the same type will result in the same rule name with an incremented numerical suffix (i.e. Clearance_1, Clearance_2, etc.).
When a new rule is created for a particular rule type, it is automatically given priority 1 (the highest priority). If any other rules of that type exist, their priorities will be shifted (lowered) by one, accordingly. They are then considered to
be modified – even though they may not have been specifically modified at the scope/constraint level. All such existing rules of that type will therefore be displayed in the modified state (bold with an asterisk).
Duplicate Rule - use this command to quickly create an identical copy of the currently selected existing rule. The duplicate rule will be named the same as the original with the addition of a suffix (e.g., _1) to
distinguish it. Its definition (scope, constraints, etc.) will be identical to that of the original.
In terms of priority, the duplicate rule will be given the next priority below that of the original rule. For example, if the original rule has priority 1, the duplicate will be given priority 2.
Delete Rule - use this command to delete the specific rule that is currently selected in the folder tree. The rule name will appear bold with strike-through highlighting to distinguish it as being a deletion that has yet to be 'applied'.
Many rule types have default rules created when a new PCB document is created. In a similar fashion, if all specific rules for one of those rule types are deleted, the default rule will be re-added automatically.
Report - use this command to generate a report of currently defined design rules. The report can be for all rule categories, a specific rule category, or a specific rule type, depending on the selected entry in the folder-tree. The
Report Preview dialog will appear with the appropriate report already loaded. Use this dialog to inspect the report using various page/zoom controls before ultimately exporting it to a file or printing it.
Export Rules - use this command to export your favorite rule definitions to a file. The Choose Design Rule Type dialog will appear. Select the rule types you wish to export and click OK. The Export Rules to File dialog will then appear from where you can determine where and under what name the exported PCB Rule file (*.rul) is to be stored.
Import Rules - use this command to import rule definitions from a previously saved rule file. The Choose Design Rule Type dialog will appear. Select the rule types you wish to import and click OK. The Import File dialog will then appear from where you can browse to and open the particular PCB Rule file (*.rul) you wish to import.
When importing, if rules of a chosen type already exist, the option will be given to clear the existing rules prior to import. Clicking Yes results in all existing rules of that type being deleted and subsequently replaced with those
in the .rul file. Clicking No will keep the existing rules. However, if existing rules and imported rules have the same name, the imported rules will overwrite the existing ones.
Main Editing Region
This region of the dialog changes dynamically with what is currently selected in the left-hand pane. It presents two different views:
Summary Listing - if the root Design Rules folder or any of the child rule category or type folders are clicked in the left-hand pane, this region will present a summary listing of all defined rules or all rules of
the selected category or type. Each rule is listed in terms of the following:
Name - the name of the rule.
Priority - the rule's current priority.
Enabled - whether the rule is currently enabled or disabled (click to toggle this state).
A disabled rule will be grayed-out in a summary listing.
Type - the type of rule.
Category - the rule category to which it belongs.
Scope - the scope of the rule (i.e. to which object(s) it applies).
Attributes - the constraint attributes that have been defined for the rule.
The summary listings also provide the following buttons:
New Rule - click this button to create a new rule of the type currently selected in the folder-tree pane of the dialog.
Delete Rule(s) - click this button to delete the specific rule(s) currently selected in the displayed list. A deleted rule's name will appear bold with strike-through highlighting to distinguish it as being a deletion that
has yet to be 'applied.'
Multiple rules can be selected in a list using standard multi-select techniques (Ctrl+click, Shift+click).
Duplicate Rule - click this button to quickly create an identical copy of the currently selected existing rule in the displayed list.
Report - click this button to generate a report containing all design rules in the currently displayed list. The Report Preview dialog will appear with the report already loaded. Use this dialog to inspect the report
using various page/zoom controls before ultimately exporting it to a file or printing it.
The Report option is also available from the right-click context menu for the region.
Rule Definition - if a specific rule is selected in the left-hand pane, this region will present the following controls for defining that rule.
Name - the current name of the rule. This can be changed as required.
Comment - this field displays any comment added for the rule, for example, a meaningful description of what the rule is being used for.
Unique ID - the unique identifier for the rule. Every rule is itself a design object, and hence a tangible piece of data. The use of an ID ensures uniqueness. Where the Unique ID really comes into play is for a rule that has been
created within the schematic domain. When adding design rule parameters to objects on a schematic, a unique ID is given to each rule parameter. The same IDs are given to the corresponding design rules that are created in the PCB. With this Unique
ID, the constraints of a rule can be edited on either the schematic or PCB side and the changes pushed through upon synchronization.
Test Queries - click to open the Test Queries Result dialog that shows the number of objects affected by the rule taking into account rule specializations you defined. This allows you to see
if there are objects that respond to the query and also to check that the set of objects affected by the filters and rules is what you desire.
Rule Scoping Controls - this region provides controls for determining the scope of the rule in terms of the objects it applies to or between. See the Rule Scoping Controls section below for more detail
on using the controls in this region.
Constraints - this region of the dialog presents the constraints applicable to the type of rule being edited. Use the various controls to configure these constraints as required. Press F1 over the constraints region
to access a dedicated page for that rule type, within the PCB Design Rules Reference area of the documentation.
If there is a syntax error with a scoping query, or if a constraint for the rule is invalid, the rule name, the rule type, and the rule category will appear in red in the folder-tree. In addition, the rule name will also appear in red in a summary listing.
A warning message will also appear should the designer attempt to close this dialog. A rule scope that has a syntax error can greatly slow the Online and Batch DRC analysis so be sure to resolve any rule scopes that are not syntactically correct.
Changes made to existing rule definitions are highlighted in both the folder-tree pane and the applicable summary lists. Such entries are distinguished by the rule name becoming bold and an asterisk displayed to the right of the name.
Rule Scoping Controls
When defining the scope of a design rule - the extent of its application - you are essentially building a query to define the member objects that are governed by the rule. Use the options available in the dialog to build the query required. Depending
on whether the rule is unary or binary, you will need to define one or two scopes.
For a unary design rule, controls will be provided to define a single rule scope. Use the options available in the Where The Object Matches region to help build the query expression, which will be presented in the region to its right.
For a binary design rule, controls for Where The First Object Matches and Where The Second Object Matches will be provided to define both rule scopes. Use the available drop-downs of each to help build
the query expression.
Controls are the same, whether defining one or two rule scopes and are detailed in the following sections.
Where The Object Matches
Scoping Option - use the drop-down(s) to select your desired filters:
All- generate a scope query that targets all design objects.
Net- generate a scope query that targets all objects in a specific net. An additional drop-down appears from which you can select the desired net from a list of available choices, including No Net.
Net Class - generate a scope query that targets all objects in a specific net class. An additional drop-down appears from which you can select the desired net class from a list of available choices, including All Nets.
Layer- generate a scope query that targets all objects on a specific layer. An additional drop-down appears from which you can select the desired layer from a list of available choices.
Net and Layer - generate a scope query that targets all objects in a specific net and on a specific layer. Two additional drop-downs appear from which you can select the desired net and layer.
Custom Query - gives you the ability to write your own query.
Textbox (Query region) - reflects the current query expression created for the rule scope.
If you are conversant with the Query Language, you can enter a query expression directly in the region. You can also paste a query expression from your favorite editor directly into the region or copy a query expression into an external
editor, or even to paste the query into the second scope of a binary rule. This is especially useful if the two scopes are complex and differ only slightly.
When the Custom Query option is selected, the following two new buttons appear:
Query Helper - use to access the Query Helper dialog. The underlying query engine analyzes the PCB design and lists all available objects along with generic keywords for use in queries.
Query Builder - use to access the Query Builder dialog, which enables you to create a query for targeting specific objects in the design document.
The Query Builder dialogis a simpler method of constructing a query, using sensitive condition types and values that allow you to build only using relevant 'building blocks'. For advanced query construction with full keyword
specification and operator syntax, use the Query Helper dialog.
Query Expression Operator Precedence
Brackets have the highest precedence within an order of precedence that has been defined for the various operators, and which determines how queries are interpreted by the software (whenever you have not provided brackets). The sequence of this order
is as follows:
^, *, /, Div, Mod, And
+, -, Or, Xor
=, <>, <, >, <=, >=
This order of precedence is similar to that used in Pascal type languages. Ambiguities are resolved by working from left to right. Parentheses are evaluated from inside to outside and equal levels are evaluated left to right.
It is highly advisable to use brackets whenever there is any possibility whatsoever that the query might not be correctly interpreted. Generous usage of brackets removes doubt and makes the resulting queries easier for others to read.
The following additional controls are provided at the bottom of the dialog:
Switch to Document View - click to open the Constraints Editor, which is an interactive Rules document.
Rule Wizard - click to run the Design Rule Wizard, which takes you through the process of creating a new design rule.
The Rule Wizard button will be unavailable if there are modifications to existing rules that have not yet been 'applied'.
Priorities - click to access the Edit Rule Priorities dialog from where you can manage the priorities of multiple rules of the same rule type.
Multiple rules of the same type can be set up. It may arise that a design object is covered by more than one rule with the same scope. In this instance, a contention exists. All contentions are resolved by the priority setting. The system goes through
the rules from highest to lowest priority and picks the first one whose scope(s) match the object(s) being checked.
Create Default Rules - click to regenerate the default set of design rules for the PCB. If you remove rules, you can get your default rule set back by clicking this button.
If a default rule has been modified, it will not reset it or replace it.