2020-09-05 16:00:29 +00:00
|
|
|
# ---- Top-level Clauses
|
|
|
|
|
|
|
|
(version <number>)
|
|
|
|
(rule <rule_name> <rule_clause> ...)
|
|
|
|
|
|
|
|
|
|
|
|
# ---- Rule Clauses
|
|
|
|
|
|
|
|
(constraint <constraint_type> ...)
|
|
|
|
(condition "<expression>")
|
|
|
|
(layer "<layer_name>")
|
|
|
|
|
|
|
|
|
|
|
|
# ---- Constraint Types
|
|
|
|
|
|
|
|
clearance annulus_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_HV
|
|
|
|
# wider clearance between HV tracks
|
|
|
|
(constraint clearance (min "1.5mm + 2.0mm"))
|
|
|
|
(condition "A.netclass == 'HV' && B.netclass == 'HV'"))
|
|
|
|
|
|
|
|
|
|
|
|
# ---- Notes
|
|
|
|
#
|
|
|
|
# Version clause must be first clause in file.
|
|
|
|
#
|
|
|
|
# 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('<footprint_refdes>')
|
|
|
|
|
|
|
|
|
|
|
|
# True if any part of A lies within the given zone's outline.
|
|
|
|
|
|
|
|
A.insideArea('<zone_name>')
|
|
|
|
|
|
|
|
|
|
|
|
# True if A has a hole which is plated.
|
|
|
|
|
|
|
|
A.isPlated()
|
|
|
|
|
|
|
|
|
2020-09-05 17:51:19 +00:00
|
|
|
# True if A exists on the given layer. The layer name can be
|
2020-09-05 16:00:29 +00:00
|
|
|
# either the name assigned in Board Setup > Board Editor Layers or
|
|
|
|
# the canonical name (ie: F.Cu).
|
|
|
|
|
|
|
|
A.onLayer('<layer_name>')
|