Loading...
Searching...
No Matches
 
 
 
 
Go to the documentation of this file.
    2_HKI( 
"### More Examples\n" 
    4"    (rule \"copper keepout\"\n" 
    5"       (constraint disallow track via zone)\n" 
    6"       (condition \"A.intersectsArea('zone3')\"))\n" 
    9"    (rule \"BGA neckdown\"\n" 
   10"       (constraint track_width (min 0.2mm) (opt 0.25mm))\n" 
   11"       (constraint clearance (min 0.05mm) (opt 0.08mm))\n" 
   12"       (condition \"A.intersectsCourtyard('U3')\"))\n" 
   15"    # prevent silk over tented vias\n" 
   16"    (rule silk_over_via\n" 
   17"       (constraint silk_clearance (min 0.2mm))\n" 
   18"       (condition \"A.Type == '*Text' && B.Type == 'Via'\"))\n" 
   21"    (rule \"Distance between Vias of Different Nets\"\n" 
   22"        (constraint hole_to_hole (min 0.254mm))\n" 
   23"        (condition \"A.Type == 'Via' && B.Type == 'Via' && A.Net != B.Net\"))\n" 
   25"    (rule \"Clearance between Pads of Different Nets\"\n" 
   26"        (constraint clearance (min 3.0mm))\n" 
   27"        (condition \"A.Type == 'Pad' && B.Type == 'Pad' && A.Net != B.Net\"))\n" 
   30"    (rule \"Via Hole to Track Clearance\"\n" 
   31"        (constraint hole_clearance (min 0.254mm))\n" 
   32"        (condition \"A.Type == 'Via' && B.Type == 'Track'\"))\n" 
   34"    (rule \"Pad to Track Clearance\"\n" 
   35"        (constraint clearance (min 0.2mm))\n" 
   36"        (condition \"A.Type == 'Pad' && B.Type == 'Track'\"))\n" 
   39"    (rule \"clearance-to-1mm-cutout\"\n" 
   40"        (constraint edge_clearance (min 0.8mm))\n" 
   41"        (condition \"A.Layer == 'Edge.Cuts' && A.Line_Width == 1.0mm\"))\n" 
   44"    (rule \"Max Drill Hole Size Mechanical\"\n" 
   45"        (constraint hole_size (max 6.3mm))\n" 
   46"        (condition \"A.Pad_Type == 'NPTH, mechanical'\"))\n" 
   48"    (rule \"Max Drill Hole Size PTH\"\n" 
   49"        (constraint hole_size (max 6.35mm))\n" 
   50"        (condition \"A.Pad_Type == 'Through-hole'\"))\n" 
   53"    # Specify an optimal gap for a particular diff-pair\n" 
   54"    (rule \"dp clock gap\"\n" 
   55"        (constraint diff_pair_gap (opt \"0.8mm\"))\n" 
   56"        (condition \"A.inDiffPair('/CLK')\"))\n" 
   58"    # Specify a larger clearance around any diff-pair\n" 
   59"    (rule \"dp clearance\"\n" 
   60"        (constraint clearance (min \"1.5mm\"))\n" 
   61"        (condition \"A.inDiffPair('*') && !AB.isCoupledDiffPair()\"))\n" 
   64"    # Don't use thermal reliefs on heatsink pads\n" 
   65"    (rule heat_sink_pad\n" 
   66"        (constraint zone_connection solid)\n" 
   67"        (condition \"A.Fabrication_Property == 'Heatsink pad'\"))\n" 
   69"    # Require all four thermal relief spokes to connect to parent zone\n" 
   70"    (rule fully_spoked_pads\n" 
   71"        (constraint min_resolved_spokes 4))\n" 
   73"    # Set thermal relief gap & spoke width for all zones\n" 
   74"    (rule defined_relief\n" 
   75"        (constraint thermal_relief_gap (min 10mil))\n" 
   76"        (constraint thermal_spoke_width (min 12mil)))\n" 
   78"    # Override thermal relief gap & spoke width for GND and PWR zones\n" 
   79"    (rule defined_relief_pwr\n" 
   80"        (constraint thermal_relief_gap (min 10mil))\n" 
   81"        (constraint thermal_spoke_width (min 12mil))\n" 
   82"        (condition \"A.Name == 'zone_GND' || A.Name == 'zone_PWR'\"))\n" 
   84"    # Prevent copper fills under the courtyards of capacitors\n" 
   85"    (rule no_copper_under_caps\n" 
   86"        (constraint physical_clearance (min 0mm))\n" 
   87"        (condition \"A.Type == 'Zone' && B.Reference == 'C*'\"))\n" 
   90"    # Prevent solder wicking from SMD pads\n" 
   91"    (rule holes_in_pads\n" 
   92"        (constraint physical_hole_clearance (min 0.2mm))\n" 
   93"        (condition \"B.Pad_Type == 'SMD'\"))\n" 
   95"    # Disallow solder mask margin overrides\n" 
   96"    (rule \"disallow solder mask margin overrides\"\n" 
   97"        (constraint assertion \"A.Soldermask_Margin_Override == null\")\n" 
   98"        (condition \"A.Type == 'Pad'\"))\n" 
  101"    # Enforce a mechanical clearance between components and board edge\n" 
  102"    (rule front_mechanical_board_edge_clearance\n" 
  103"        (layer \"F.Courtyard\")\n" 
  104"        (constraint physical_clearance (min 3mm))\n" 
  105"        (condition \"B.Layer == 'Edge.Cuts'\"))\n" 
  108"    # Allow silk intersection with board edge for connectors\n" 
  109"    (rule silk_board_edge_clearance\n" 
  110"        (constraint silk_clearance)\n" 
  111"        (severity ignore)\n" 
  112"        (condition \"A.memberOfFootprint('J*') && B.Layer=='Edge.Cuts'\"))\n" 
  115"    # Check current-carrying capacity\n" 
  116"    (rule high-current\n" 
  117"        (constraint track_width (min 1.0mm))\n" 
  118"        (constraint connection_width (min 0.8mm))\n" 
  119"        (condition \"A.hasNetclass('Power')\"))\n" 
  122"    # Separate drill bit and milling cutter size constraints\n" 
  123"    (rule \"Plated through-hole size\"\n" 
  124"        (constraint hole_size (min 0.2mm) (max 6.35mm))\n" 
  125"        (condition \"A.isPlated() && A.Hole_Size_X == A.Hole_Size_Y\"))\n" 
  126"    (rule \"Plated slot size\"\n" 
  127"        (constraint hole_size (min 0.5mm))\n" 
  128"        (condition \"A.isPlated() && A.Hole_Size_X != A.Hole_Size_Y\"))\n" 
  131"    # Allow blind/buried to micro-via hole-to-hole violations when it is known that\n" 
  132"    # the fab will mechanically drill blind/buried via holes -before- laser drilling \n" 
  134"    (rule hole_to_hole_uvia_exclusion\n" 
  135"        (condition \"A.Via_Type == 'Blind/buried' && B.Via_Type == 'Micro'\")\n" 
  136"        (constraint hole_to_hole)\n" 
  137"        (severity ignore))\n" 
  140"    # No solder mask expansion for vias.\n" 
  141"    (rule \"no mask expansion on vias\"\n" 
  142"        (constraint solder_mask_expansion (opt 0mm))\n" 
  143"        (condition \"A.type == via\"))\n" 
  146"    # Remove solder paste from DNP footprints.\n" 
  147"    (rule remove_solder_paste_from_DNP\n" 
  148"        (constraint solder_paste_abs_margin (opt -50mm))\n" 
  149"        (condition \"A.Do_not_Populate\"))\n" 
  152"    # Allow solder mask bridging under guard ring mask apertures\n" 
  153"    (rule guard_ring_bridging\n" 
  154"        (constraint bridged_mask)\n" 
  155"        (condition \"A.intersectsArea('guard_ring')\")\n" 
  156"        (severity ignore))" );