The PCB Rules and Constraints Editor dialog
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.
The dialog is accessed from the PCB Editor by selecting Design » Rules from the toolbar.
The dialog is composed of a static pane on the left and a main editing region on the right that changes dynamically with the selection on the left.
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 NEXUS:
- 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'.
- 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.
- 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'.
- 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 file or printing it.
- Export Rules - use this command to export your favorite rule definitions to 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.
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).
- Type - the type of rule.
- Category - the rule category it belongs to.
- 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.'
- 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 file or printing it.
- 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.
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, respectively.
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.
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 Building Query from Board dialog, which enables you to create a query for targeting specific objects in the design document.
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 the user has 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.
The following additional controls are provided at the bottom of the dialog:
- Rule Wizard - click to run the Design Rule Wizard, which takes you through the process of creating a new design rule.
- Priorities - click to access the Edit Rule Priorities dialog from where you can manage the priorities of multiple rules of the same rule type.
- 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.
- Apply - click to apply the design rules.