PCB_Dlg-NewEditSingleRuleEdit PCB Rule_AD
This document is no longer available beyond version 21. Information can now be found here: Edit PCB Rule Dialog for version 24
Summary
The Edit PCB Rule 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 then choose the Properties command from the context menu.
- From the Polygon Pour Manager dialog (Tools » Polygon Pours » Polygon Manager), click the New Clearance Rule button or the New Connect Style button.
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 therefore, 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 the 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 on the right.
- 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 on the right 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 on the right 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 on the right 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 on the right 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. Use the drop-downs to build the 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. The controls vary depending upon the type of design rule being edited. Use the various controls to configure these constraints as required.
Diagram
Controls highlighted in blue can be clicked on and edited, if desired. Enable any of the various options provided, if desired.
Grid
Click on a cell to edit the data, 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 that determines how queries are interpreted by the software (whenever you have 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.