# ---- Top-level Clauses (version ) (rule ...) # ---- Rule Clauses (constraint ...) (condition "") (layer "") # ---- Constraint Types clearance annular_width track_width hole dissallow # ---- Item Types track via micro_via buried_via pad hole graphic text zone # ---- Examples (rule "copper keepout" (constraint disallow track via zone) (condition "A.insideArea('zone3')")) (rule "BGA neckdown" (constraint track_width (min 0.2mm) (opt 0.25mm)) (constraint clearance (min 0.05) (opt 0.08mm)) (condition "A.insideCourtyard('U3')")) (rule HV (constraint clearance (min 1.5mm)) (condition "A.NetClass == 'HV'")) (rule HV (layer outer) (constraint clearance (min 1.5mm)) (condition "A.NetClass == 'HV'")) (rule HV_HV # wider clearance between HV tracks (constraint clearance (min "1.5mm + 2.0mm")) (condition "A.NetClass == 'HV' && B.NetClass == 'HV'")) (rule HV_unshielded (constraint clearance (min 2mm)) (condition "A.NetClass == 'HV' && !A.insideArea('Shield*'))) # ---- Notes # # Version clause must be the first clause. # # Rules should be ordered by specificity. Later rules take # precedence over earlier rules; once a matching rule is found # no further rules will be checked. # # Use Ctrl+/ to comment or uncomment line(s). # # ---- Expression functions # # All function parameters support simple wildcards ('*' and '?'). # # True if any part of A lies within the given footprint's courtyard. A.insideCourtyard('') # True if any part of A lies within the given zone's outline. A.insideArea('') # True if A has a hole which is plated. A.isPlated() # True if A is a member of the given group. Includes nested # membership. A.memberOf('') # True if A exists on the given layer. The layer name can be # either the name assigned in Board Setup > Board Editor Layers or # the canonical name (ie: F.Cu). # # NB: this returns true if A is on the given layer, independently # of whether or not the rule is being evaluated for that layer. # For the latter use a (layer "layer_name") clause in the rule. A.onLayer('')