Edit PCB Rule
Summary
This dialog allows you to edit the properties of the selected design rule, including the name, scope, and constraints.
Access
The dialog is accessed from within the PCB Editor in the following ways:
- Double-click on a specific rule entry in the PCB Rules And Violations panel.
- Right-click on a specific rule entry in the PCB Rules And Violations panel, and choose the Properties command from the context menu.
Options/Controls
- 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.
- Test Queries - click to open a Test Queries Result dialog that displays the number of objects affected by the selected rule, taking into account any defined rule specializations. This allows you to see if any objects match the query and check if those objects affected by the filters and rules are the desired result of your search terms.
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 - use the drop-down to select 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>').
- Custom Query - choose this option to be able to write your own, more complex, but also more specific query.
- Query Helper - this button becomes available when the Custom Query option is chosen. Click 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. The resulting query appears in the region to the right.
- Query Builder - this button becomes available when the Custom Query option is chosen. Click 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 AND'ed and/or OR'ed conditions. The resulting query appears in the region to the right.
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.
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.
For more information about PCB Design Rules, click here.