Custom rules in Fusion use various scopes, including:
Some rules already restrict the objects that they check, so not all scopes apply to every rule category. This makes certain scopes unnecessary.
You can order custom rules by priority, with the lowest value to have the highest priority. Within each category, place rules with stricter scopes before those with less strict scopes. This approach makes sure that Fusion uses the stricter rules first.
When adding custom rules, carefully consider rule priority and scope strictness. Fusion uses the first matching rule for checked objects. If a less strict rule has higher priority, Fusion will use it over a stricter rule.
Scope Expression | Parameters | Information | Example |
---|---|---|---|
Is Copper | None | Checks any object on any of the copper layers: Top, Internal, and Bottom including pad, smd and via. | |
Is Copper(wire, polygon) | None | Checks only wire, polygon objects on any of the copper layers: Top, Internal, and Bottom. | |
Is Pad | None | Checks if the object is a thru-hole pad. | |
Is SMD | None | Checks if the object is a surface mounted (SMD) pad. | |
Is Via | None | Checks if the object is a via. | |
Is Pad or SMD | None | Checks if the object is either a thru-hole pad or an SMD pad. | |
Is MultiLayer Object | None | Checks if the object is either a thru-hole pad or a via. | |
Is Thru Via | None | Checks if the object is a thru-hole via. | |
Is Micro Via | None | Checks if the object is a micro via (straddles at most 2 signal layers and 1 dielectric). | |
Is Blind Via | None | Checks if the object is a blind via. | |
Is Buried Via | None | Checks if the object is a buried via. | |
Is Text | None | Checks if the object is a text. | |
Is Name | None | Checks if the object is the implicit component Name attribute. | |
Is Value | None | Checks if the object is the implicit component Value attribute. | |
Is Attribute | None | Checks if the object is a component attribute. | |
Is Signal | None | Checks if the object or its parent is a valid signal. | |
Is Polygon Pour | None | Checks if the object is a copper pour polygon. | |
In Net Classes | Net Classes Names | Checks if the object's signal net-class name is one of the names in Net Classes Names. | In Net Classes = default; In Net Classes = default,power |
In Signal | Signal Name | Checks if the object's parent or the object itself is a signal with signal name = Signal Name | In Signal = GND |
In Component | Component Name | Checks if the object's parent is a component and the component name = Component Name | In Component = U1 |
In Named Group | Persistent Group Name | Checks if the object's parent is a persistent group with the name = Persistent Group Name | In Named Group = My Group |
On Layers | Layer Names | Checks if the object is on any of the layers in Layer Names collection | On Layers = Top,Bottom; On Layer = SilkscreenTop |
On Signal Layers | Layer Names | Checks if the object is on any of the signal layers in Layer Names collection | On Signal Layer = Top; On Signal Layers = Top,Bottom |
Object Type | Type Name | Checks of the object's type name = Type Name (Wire, Pad, Hole, Line, Polygon Shape, etc.) | Object Type = Wire; Object Type = Hole |
In Diff Pair | Diff Pair Name | Checks if the object's parent is a signal that is a member of the differential pair with the name = Diff Pair Name | In Diff Pair = USB_N, USB_P |
Binary Rules -
Rule Category | Object 1 Scope | Object 2 Scope | Common Scope |
---|---|---|---|
Copper Clearance (Different Signals) | Is Copper, Is Copper (Wire, Polygon), Is Pad, Is Smd, Is Via, Is Pad or Smd, Is MultiLayer Object, Is Thru Via, Is Micro Via, Is Blind Via, Is Buried Via, Is Text, Is Name, Is Value, Is Attribute, Is Signal, Is Pour Polygon, In Net Classes, In Signal, In Component, In Named Group, On Signal Layers, Object Type = attribute, circle, line, pad, solid polygon shape, rectangle, smd, text, via, wire., In Diff Pair | Is Copper, Is Copper (Wire, Polygon), Is Pad, Is Smd, Is Via, Is Pad, or Smd, Is MultiLayer Object, Is Thru Via, Is Micro Via, Is Blind Via, Is Buried Via, Is Text, Is Name, Is Value, Is Attribute, Is Signal, Is Pour Polygon, In Net Classes, In Signal, In Component, In Named Group, On Signal Layers, Object Type = attribute, circle, line, pad, solid polygon shape, rectangle, smd, text, via, wire., In Diff Pair | None |
Copper Clearance (same signals) | Is Pad, Is Smd, Is Via, Is Pad or Smd, Is MultiLayer Object, Is Thru Via, Is Blind Via, Is Buried Via, Is Pour Polygon, In Component, On Signal Layers, Object Type = attribute, circle, line, pad, solid polygon shape, rectangle, smd, text, via, wire., In Diff Pair | Is Pad, Is Smd, Is Via, Is Pad or Smd, Is MultiLayer Object, Is Thru Via, Is Blind Via, Is Buried Via, Is Pour Polygon, In Component, On Signal Layers, Object Type = attribute, circle, line, pad, solid polygon shape, rectangle, smd, text, via, wire., In Diff Pair | In Net Classes, In Signal, In Named Group |
Component Exclude Clearance | In Component In Named Group On Layer (only ComponentExcludeTop and ComponentExcludeBottom) Object Type = line, circle, rectangle, polygon shape, spline | In Component In Named Group On Layer (only ComponentExcludeTop and ComponentExcludeBottom) Object Type = line, circle, rectangle, solid polygon shape, spline | None |
Soldermask - Silkscreen Clearance | Is Pad, Is Smd, Is Via, Is Pad or Smd, Is Thru Via, Is Micro Via, Is Blind Via, Is Buried Via, In Component, In Named Group, On Layer (only SolderMaskTop and SolderMaskBottom), Object Type = line, circle, rectangle, polygon shape, spline | Is Text, Is Name, Is Value, In Component, In Named Group, On Layers (SilkscreenTop, SlikscreenBottom, NamesTop, NamesBottom, ValuesTop and ValuesBottom), Object Type = text, line, circle, rectangle, spline,solid polygon shape | None |
Board Outline Clearance | Is Copper (Wire, Polygon), Is Pad, Is Smd, Is Via, Is Pad or Smd, Is MultiLayer Object, Is Thru Via, Is Micro Via, Is Blind Via, Is Buried Via, Is, Poly Pour, In Net Classes, In Signal, In Component, In Named Group, On Signal Layers | In Named Group, Object Type = line, circle, rectangle, spline,solid polygon shape, hole | None |
Drill Clearance | Is Pad, Is Via, Is MultiLayer Object, Is Thru Via, Is Micro Via, Is Blind Via, Is Buried Via, In Net Classes, In Signal, In Component, In Named Group Object Type = pad, via, hole | Is Pad, Is Via, Is MultiLayer Object, Is Thru Via, Is Micro Via, Is Blind Via, Is Buried Via, In Net Classes, In Signal, In Component, In Named Group Object Type = pad, via, hole | None |
Copper - Restrict Clearance | Is Copper (Wire, Polygon), Is Pad, Is Smd, Is Via, Is Pad or Smd, Is MultiLayer Object, Is Thru Via, Is Micro Via, Is Blind Via, Is Buried Via, Is, Poly Pour, In Net Classes, In Signal, In Component, In Named Group, On Signal Layers | In Component, In Named Group, On Layer (RestrictTop, RestrictBot), Object Type = line, circle, rectangle,solid polygon shape | None |
Via - Restrict Clearance | Is Thru Via, Is Micro Via, Is Blind Via, Is Buried Via, Is, Poly Pour, In Net Classes, In Signal, In Component, In Named Group | In Component, In Named Group,Object Type = line, circle, rectangle,solid polygon shape | None |
Unary Rules -
Rule Category | Object 1 Scope | Object 2 Scope | Common Scope |
---|---|---|---|
Drill Size | Is Pad, Is Via, Is Thru Via, Is Micro Via, Is Blind Via, Is Buried Via, In Net Classes, In Signal, In Component, In Named Group, In Diff Pair | None | None |
Copper Width | Is Copper (Wire, Polygon), Is Smd, Is Text, Is Name, Is Value, Is Attribute, In Net Classes, In Signal, In Component, In Named Group, On Signal Layers, In Diff Pair, Object Type = wire, smd, circle, rectangle, text, attribute, Object Type != air wire | None | None |
Acute Angle | In Net Class, In Signal, In Component, In Named Group, On Signal Layers | None | None |
Air Wire | In Net Classes, In Signal, In Named Group | None | None |
Wire Stub | In Net Classes, In Signal, In Named Group, On Signal Layers | None | None |
Matched Signal Lengths | In Net Classes | None | None |