#--------------------------------------------------------------------------- # ERF File - Drill Checks # (For more information see help file and on-line manual 0503 (chapter 3)) # This version written by Ian Ticehurst (Autom8 Ltd.) - 18/07/00 # Version 1A # Version 1B - 01.11.00 - Small modifications to some comment lines. # # This is an analysis function which does not modify the data. This function # performs spacing checks, hole checks and power short checks for each drill # layer specified. #--------------------------------------------------------------------------- # Internal program calls and menu placement definitions (Do not modify these). .name NLSE("Drill Checks") .uid valor_analysis_drill .menu 2 NLSE("Analysis") 5 # Action screen definition. .param layer,pp_drill_layer,1,NLSE("Layer :") .param p_mil,pp_rout_distance,2,NLSE("Rout Distance :"),0,1000 .param set,pp_tests,3,NLSE("Test list"),NLSE("Hole Size");NLSE("Hole Separation");NLSE("Missing Holes");NLSE("Extra Holes");NLSE("Power/Ground Shorts");NLSE("NPTH to Rout") .param set,pp_extra_hole_type,4,NLSE("Hole Types To Check for Extra"),NLSE("Pth");NLSE("Npth");NLSE("Via") # Individual model information follows. ################### Start of model Std (Mils) ###################################### # Initialise model with model name, units, and color definitions. .model Std (Mils) .units inch .colors 991010 999910 109010 # Colors set to red yellow green # Define ranges (how results should be captured / presented). .ranges pth = 28,35,1000 .o 10 # Range - pth hole report by size. npth = 40,40.1,1000 .o 10 # Range - non-pth hole report by size. via = 12,28,1000 .o 10 # Range - via hole report by size. 2drill = 210,250,1000 .o 40 # Range - large non-pth holes needing pilot holes or second drill operation. pth2drill = 210,250,1000 .o 40 # Range - large pth holes needing pilot holes or second drill operation. duph = 1000,1001,1002 .o 1000 # Range - duplicate holes. touchh = 1000,1001,1002 .o 1000 # Range - touching holes. closeh = 12,15,20 .o 12 # Range - hole to hole spacing (where holes do not touch). missh = 1000,1001,1002 .o 1000 # Range - missing holes (defined as non-smd pads top and bottom without hole). extrah = 1000,1001,1002 .o 1000 # Range - extra holes (defined as pth hole without copper on layers where the drill starts and ends). pgshort* = 1000,1001,1002 .o 1000 # Range - power-ground short (defined as a drill touching copper on different pg or mixed layers). npth2rout = 16,24,32 .o 16 # Range - spacing between non-pth holes and rout features. tooling_holes = 30,50,1000 .o 10 # Range - tooling hole report by size (any hole with .tooling_hole attribute). mount_holes = 28,35,1000 .o 28 # Range - mounting hole report by size (any hole with .mount_hole attribute). slot_pt = 28,35,1000 .o 28 # Range - plated slot report by size. slot_npt = 40,40.1,1000 .o 40 # Range - non-plated slot report by size. non_standard = 1000,1001,1002 .o 1000 # Range - non-standard (undrillable) symbol (e.g. square pad). non_standard_f = 1000,1001,1002 .o 1000 # Range - non-standard (undrillable) feature (e.g. arc, text, or contour). canned_text = 0,0.1,10000 .o 1000 # Range - Canned text features. # Define parameters to be used in action window on screen and in on-line DRC mode. .pdef pp_drill_layer = .type=drill&context=board .o .type=drill&context=board pp_rout_distance = 200 .o 50 pp_tests = .all .o .all;-Hole Size;-Extra Holes;-NPTH to Rout pp_extra_hole_type = .all;-Npth .o .all;-Npth # Set variable values (used to fine-tune the way the function works). .vars duph_tolerance = 0.5 # Variable - if holes centres are separated by less than this value they are considered duplicate holes. close_hole_dist = 21 # Variable - maximum search radius when looking for close holes. second_drill_width = 197 # Variable - minimum size for a drill requiring second stage drilling (see "2drill" above). min_hole_dist = 10 # Variable - for internal system use with short checks. Do not modify. npth2rout_only_tool_mnt = 0 # Variable - if set to non-zero only holes with tooling/mounting hole attributes will be included in npth2rout. ignore_neg_pg_extras = 0 # Variable - if set to 1 the extra hole check will ignore negative power/ground layers. If set to 0 this check includes these layers. # Allow this function to use on-line DRC. .online pp_drill_layer ################### End of model Std (Mils) ###################################### ################### Start of model Std (Microns) ###################################### # Initialise model with model name, units, and color definitions. .model Std (Microns) .units metric .colors 991010 999910 109010 # Colors set to red yellow green # Define ranges (how results should be captured / presented). .ranges pth = 711,889,10000 .o 711 # Range - pth hole report by size. npth = 100,101,10000 .o 100 # Range - non-pth hole report by size. via = 305,711,10000 .o 305 # Range - via hole report by size. 2drill = 5334,6350,10000 .o 5334 # Range - large non-pth holes needing pilot holes or second drill operation. pth2drill = 5334,6350,10000 .o 5334 # Range - large pth holes needing pilot holes or second drill operation. duph = 10000,10001,10002 .o 10000 # Range - duplicate holes. touchh = 10000,10001,10002 .o 10000 # Range - touching holes. closeh = 305,381,508 .o 305 # Range - hole to hole spacing (where holes do not touch). missh = 10000,10001,10002 .o 10000 # Range - missing holes (defined as non-smd pads top and bottom without hole). extrah = 10000,10001,10002 .o 10000 # Range - extra holes (defined as pth hole without copper on layers where the drill starts and ends). pgshort* = 10000,10001,10002 .o 10000 # Range - power-ground short (defined as a drill touching copper on different pg or mixed layers). npth2rout = 406,610,813 .o 406 # Range - spacing between non-pth holes and rout features. tooling_holes = 762,1270,10000 .o 762 # Range - tooling hole report by size (any hole with .tooling_hole attribute). mount_holes = 711,889,10000 .o 711 # Range - mounting hole report by size (any hole with .mount_hole attribute). slot_pt = 711,889,10000 .o 711 # Range - plated slot report by size. slot_npt = 100,101,10000 .o 100 # Range - non-plated slot report by size. non_standard = 10000,10001,10002 .o 10000 # Range - non-standard (undrillable) symbol (e.g. square pad). non_standard_f = 10000,10001,10002 .o 10000 # Range - non-standard (undrillable) feature (e.g. arc, text, or contour). canned_text = 0,0.1,10000 .o 1000 # Range - Canned text features. # Define parameters to be used in action window on screen and in on-line DRC mode. .pdef pp_drill_layer = .type=drill&context=board .o .type=drill&context=board pp_rout_distance = 5000 .o 1270 pp_tests = .all .o .all;-Hole Size;-Extra Holes;-NPTH to Rout pp_extra_hole_type = .all;-Npth .o .all;-Npth # Set variable values (used to fine-tune the way the function works). .vars duph_tolerance = 13 # Variable - if holes centres are separated by less than this value they are considered duplicate holes. close_hole_dist = 533 # Variable - maximum search radius when looking for close holes. second_drill_width = 5004 # Variable - minimum size for a drill requiring second stage drilling (see "2drill" above). min_hole_dist = 10 # Variable - for internal system use with short checks. Do not modify. npth2rout_only_tool_mnt = 0 # Variable - if set to non-zero only holes with tooling/mounting hole attributes will be included in npth2rout. ignore_neg_pg_extras = 0 # Variable - if set to 1 the extra hole check will ignore negative power/ground layers. If set to 0 this check includes these layers. # Allow this function to use on-line DRC. .online pp_drill_layer ################### End of model Std (Microns) ###################################### ################### Start of model Std (Mils) ###################################### # Initialise model with model name, units, and color definitions. .model Std2 (Mils) .units inch .colors 991010 999910 109010 # Colors set to red yellow green # Define ranges (how results should be captured / presented). .ranges pth = 28,35,1000 .o 10 # Range - pth hole report by size. npth = 40,40.1,1000 .o 10 # Range - non-pth hole report by size. via = 12,28,1000 .o 10 # Range - via hole report by size. slot_pt = 28,35,1000 .o 28 # Range - plated slot report by size. slot_npt = 40,40.1,1000 .o 40 # Range - non-plated slot report by size. 2drill = 210,250,1000 .o 40 # Range - large non-pth holes needing pilot holes or second drill operation. pth2drill = 210,250,1000 .o 40 # Range - large pth holes needing pilot holes or second drill operation. tooling_holes = 30,50,1000 .o 10 # Range - tooling hole report by size (any hole with .tooling_hole attribute). mount_holes = 28,35,1000 .o 28 # Range - mounting hole report by size (any hole with .mount_hole attribute). duph = 1000,1001,1002 .o 1000 # Range - duplicate holes. touchh = 1000,1001,1002 .o 1000 # Range - touching holes. closeh = 12,15,20 .o 12 # Range - hole to hole spacing (where holes do not touch). missh = 1000,1001,1002 .o 1000 # Range - missing holes (defined as non-smd pads top and bottom without hole). extrah = 1000,1001,1002 .o 1000 # Range - extra holes (defined as pth hole without copper on layers where the drill starts and ends). overlap_width = 10000,10001,10002 .o 1000 # Range - the width of the common area if two drills touch each other. pgshort* = 1000,1001,1002 .o 1000 # Range - power-ground short (defined as a drill touching copper on different pg or mixed layers). npth2rout = 16,24,32 .o 16 # Range - spacing between non-pth holes and rout features. non_standard = 1000,1001,1002 .o 1000 # Range - non-standard (undrillable) symbol (e.g. square pad). non_standard_f = 1000,1001,1002 .o 1000 # Range - non-standard (undrillable) feature (e.g. arc, text, or contour). canned_text = 0,0.1,10000 .o 1000 # Range - Canned text features. pthslot2rout = 16,24,32 .o 16 # Range - spacing between pth slot and rout features. npthslot2rout = 16,24,32 .o 406 # Range - spacing between npth slot and rout features. close_pth_same_net = 12,15,20 .o 12 # Range - same net pth to pth spacing (where holes do not touch). close_pth_diff_net = 12,15,20 .o 12 # Range - different net pth to pth spacing (where holes do not touch) close_npth = 12,15,20 .o 12 # Range - npth to npth spacing (where holes do not touch). close_pth2npth_isolate = 12,15,20 .o 12 # Range - isolate pth to npth spacing (where holes do not touch). close_pth2npth_conn = 12,15,20 .o 12 # Range - connect pth to npth spacing (where holes do not touch). close_via2npth_isolate = 12,15,20 .o 12 # Range - isolate via to npth spacing (where holes do not touch). close_via2npth_conn = 12,15,20 .o 12 # Range - connect via to npth spacing (where holes do not touch). close_via_same_net = 12,15,20 .o 12 # Range - same net via to via spacing (where holes do not touch). close_via_diff_net = 12,15,20 .o 12 # Range - different net via to via spacing (where holes do not touch) close_via2pth_same_net = 12,15,20 .o 12 # Range - same net via to pth spacing (where holes do not touch). close_via2pth_diff_net = 12,15,20 .o 12 # Range - different via pth to pth spacing (where holes do not touch). miss_stacked_via = 1000,1001,1002 .o 1000 # Range - Missing stacked via holes. # Define parameters to be used in action window on screen and in on-line DRC mode. .pdef pp_drill_layer = .type=drill&context=board .o .type=drill&context=board pp_rout_distance = 200 .o 50 pp_tests = .all .o .all;-Hole Size;-Extra Holes;-NPTH to Rout pp_extra_hole_type = .all;-Npth .o .all;-Npth pp_use_compensated_rout = Skeleton .o Skeleton # Set variable values (used to fine-tune the way the function works). .vars duph_tolerance = 0.5 # Variable - if holes centres are separated by less than this value they are considered duplicate holes. close_hole_dist = 21 # Variable - maximum search radius when looking for close holes. second_drill_width = 197 # Variable - minimum size for a drill requiring second stage drilling (see "2drill" above). min_hole_dist = 10 # Variable - for internal system use with short checks. Do not modify. npth2rout_only_tool_mnt = 0 # Variable - if set to non-zero only holes with tooling/mounting hole attributes will be included in npth2rout. ignore_neg_pg_extras = 0 # Variable - if set to 1 the extra hole check will ignore negative power/ground layers. If set to 0 this check includes these layers. v_report_npth2rout_in_percentage = yes # Varaible - Control on the report of NPTH2Rout - is set to "yes", as percentage, # if set to "no", as real distance. v_perform_slot2rout_checks = no # Variable - control on slot to rout checks v_ignore_attrs = # Variable - Able the user to define attributes that the action will ignore. v_use_mask_layer = no # Variable - Able the user to define mask layer using the relevant layer's attributes. v_one_side_covered_as_extra = yes # Variable - Define if to considered a hole that is covered only in one side as extra hole, # when set to "no", only if both sides(top and bottom) not covered, the hole will be consider as extra hole. v_report_detailed_close_holes = yes # Variable - Define if to split "Close Holes" reports to more specific categories: close_pth_same/diff_net, close_via_same/diff_net, # close_via2pth_same/diff_net, close_npth, close_pth2npth_isolate/conn, close_via2npth_isolate/conn v_measure_closeh_from_center = no # Variable - Define if to report "Close Holes" reports from drill holes' center or from edge v_consider_stacked_via_in_missing_hole = no # Variable - define if to report missing holes for "suspected" stacked via. v_consider_any_copper_miss_hole = yes # Variable - define if we consider any copper for missing hole. v_separate_missing_stacked_via = no # When checked, reports missing stacked via in separate category v_report_stacked_via_based_on_pads_size= no # When Checked, missing stacked via will be reported only if the two pads are of the same size # Allow this function to use on-line DRC. .online pp_drill_layer ################### End of model Std2 (Mils) ######################################