PCB_Dlg-Form_DesignRulesPCB Rules and Constraints Editor_AD
Summary
This 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 by the online Design Rule Checker (DRC) as you work on your design. Certain rules are monitored when using additional features of the software, e.g., routing-based rules when using the Situs Autorouter to route a design.
Access
The dialog is accessed from the PCB Editor, by selecting Design » Rules from the toolbar.
Options/Controls
The dialog is composed of a static pane on the left and a main editing region on the right that changes in context with the selection on the left.
Left-Hand Pane
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, Differential Pairs Routing, and Fanout Control.
- SMT - this category offers the following rule types: SMD To Corner, SMD To Plane, SMD Entry, and SMD Neck-Down.
- 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.
- High Speed - this category offers the following rule types: Length, Matched Lengths, Maximum Via Count, Parallel Segment, Daisy Chain Stub Length, and Vias Under SMD.
- 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, Silk to Board Region Clearance, Board Outline Clearance, and Net Antennae.
- Placement - this category offers the following rule types: Component Clearance, Room Definition, Component Orientations, Permitted Layers, Nets to Ignore, and Height.
- Signal Integrity - this category offers the following rule types: Flight Time - Falling Edge, Flight Time - Rising Edge, Impedance, Overshoot - Falling Edge, Overshoot - Rising Edge, Signal Base Value, Signal Stimulus, Signal Top Value, Slope - Falling Edge, Slope - Rising Edge, Supply Nets, Undershoot - Falling Edge, and Undershoot - Rising Edge.
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.
Right-Click Menu
The following commands are available from the right-click context 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 is yet to be 'applied'.
- Report - use this command to generate a report of currently defined design rules. The report can cater 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 in accordance 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, respectively. 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 it is.
- Category - the rule category it belongs to.
- Scope - the scope of the rule (i.e. what object(s) it applies to).
- Attributes - the constraint attributes that have been defined for the rule.
The summary listings also provide the following buttons, to act on selected entries in the currently displayed listing:
- 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, or rules, 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 is 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 however, 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.
- 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 section Rule Scoping Controls 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 identical, whether defining one or two rule scopes, and are detailed in the following sections.
Where The Object Matches
- Scoping Option - choose one of the following options to determine how to generate the scoping query expression:
- All - choose this option to generate a scope query that targets all design objects. The expression All will be loaded into the associated Full Query region.
- Net - choose this option to generate a scope query that targets all objects in a specific net. Choose the required net from the top drop-down field. The expression loaded into the associated Full Query region will be in the format InNet('<NetName>').
- Net Class - choose this option to generate a scope query that targets all objects in a specific net class. Choose the required net class from the top drop-down field. The expression loaded into the associated Full Query region will be in the format InNetClass('<NetClassName>').
- Layer - choose this option to generate a scope query that targets all objects on a specific layer. Choose the required layer from the top drop-down field. The expression loaded into the associated Full Query region will be in the format OnLayer('<LayerName>').
- Net and Layer - choose this option to generate a scope query that targets all objects in a specific net and on a specific layer. Choose the required net from the top drop-down field, and the required layer from the bottom drop-down field. The expression loaded into the associated Full Query region will be in the format InNet('<NetName>') And OnLayer('<LayerName>').
- Advanced (Query) - choose this option to be able to write your own, maybe more complex, but also more specific query. If you start to write a query expression directly in the associated Full Query region, this option will automatically be selected.
- Top Drop-Down Field - when using the Net (or Net and Layer), Net Class or Layer options, this field's drop-down will populate with all defined nets in the design, all defined net classes in the design, or all currently enabled layers in the design, respectively. Choose the required target accordingly.
- Bottom Drop-Down Field - when using the Net and Layer option, this field's drop-down will populate with all currently enabled layers in the design. Choose the required layer accordingly.
- Query Builder - click this button to open the Building Query from Board dialog, which enables you to create a query for targeting specific objects in the design document, by simple construction of a string of ANDed and/or ORed conditions.
- Query Helper - this button becomes available when the Advanced (Query) option is chosen. Click it 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.
Full Query
This region of the dialog reflects the current query expression created for the rule scope. The expression is loaded automatically by:
- Choosing a basic scoping option (All, Net, Net Class, Layer, Net and Layer), and specifying the relevant target net, net class, layer, or net and layer, from the drop-down fields.
- Using the Query Builder to construct a query expression.
- Using the Query Helper to construct a query expression.
Alternatively, and if you are conversant with the Query Language, you can enter a query expression directly in the region.
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:
Brackets
Not
^, *, /, 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.
Additional Buttons
The following additional controls are provided at the bottom of the dialog:
- Rule Wizard - click this button to run the Design Rule Wizard, which steps you through the process of creating a new design rule.
- Priorities - click this button 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 specified design rules.