;============================================================================ ; ; Program Name: grids.il ; ; Author: Uri Chaplin, PCB Design Manager ; chaplin_u@email.com ; ; Tested on: Allegro v15.1 ; ; Purpose: This routine is a very simple utility that will change your current grids. ; ; Usage: To run the routine within Allegro type: "grids". ; Of course you can change definitions for grids that you use. ; Size of this form to small, so you can place this form on not used toolbars. ; ; History: ; ; 1.0 01-March-04 UC Created. ; 2.0 17-March-04 UC Added feature to enable using different db units ; 2.1 21-March-04 UC Improvements ; 2.2 13-Feb-09 DE Added grids for eric ;============================================================================ defun( grids () let((units, conv_factor, gridsform_file, x, gridsform) ; creates conversion factors for different db units ; ------------------------------------------------- ; units = car(axlDBGetDesignUnits()) conv_factor = case(units ("microns" 1000.0 ); ("mils" 100.0 ); ("inches" 0.1 ); ("millimeters" 1.0 ); ("centimeters" 0.254 ); ) ; end of cond drain() gridsform_file = "grids.form" gridsform = outfile(gridsform_file "w") fprintf(gridsform "FILE_TYPE=FORM_DEFN VERSION=2\n") fprintf(gridsform "FORM\n") fprintf(gridsform "FIXED\n") fprintf(gridsform "PORT 50 3\n") fprintf(gridsform "HEADER \"Grids\"\n") fprintf(gridsform "\n") fprintf(gridsform "TILE\n") ;------------------------------------------------------------------------------------------------------- x = 1 foreach(gridDivider, '(100, 20, 4, 2, 1) fprintf( gridsform "FIELD %g \nFLOC %d 1 \nCHECKLIST \"%g\" \"radioLabel\"\nENDFIELD\n\n" conv_factor/gridDivider x conv_factor/gridDivider ) x = x + 10 ) x = 1 foreach(grid, '(0.3175, 0.508, 0.635, 1.27) ; DE 13-Feb-09 fprintf( gridsform "FIELD %g \nFLOC %d 3 \nCHECKLIST \"%g\" \"radioLabel\"\nENDFIELD\n\n" grid x grid ) x = x + 10 ) ;------------------------------------------------------------------------------------------------------- fprintf(gridsform "\n") fprintf(gridsform "ENDTILE\n") fprintf(gridsform "\n") fprintf(gridsform "ENDFORM\n") close( gridsform) gridsform = axlFormCreate( (gensym) gridsform_file nil 'grids_Action t nil) axlUIWPerm(gridsform t) axlFormDisplay(gridsform) axlUIWPrint(gridsform getCurrentTime()) deleteFile("grids.form") )); end of grids ;-------------------------------------------------------- ; what to do on form actions ; -------------------------- defun( grids_Action (gridsform) let((cur_grid, Script_File) if(gridsform ->curField == "" then deleteFile("grids.scr") else cur_grid = evalstring(gridsform ->curField) Script_File = outfile("grids.scr" "w") fprintf(Script_File "scriptmode +i\n") fprintf(Script_File "define grid \nsetwindow form.grid\n") fprintf(Script_File "FORM grid non_etch non_etch_x_grids %n \n" cur_grid) fprintf(Script_File "FORM grid non_etch non_etch_y_grids %n \n" cur_grid) fprintf(Script_File "FORM grid all_etch all_etch_x_grids %n \n" cur_grid) fprintf(Script_File "FORM grid all_etch all_etch_y_grids %n \n" cur_grid) fprintf(Script_File "FORM grid done\n") close(Script_File) axlShell("replay grids.scr") axlUIWPrint(gridsform axlPPrint(car(axlDBGetDesignUnits()))) );end unless )); end grids_Action ; Registers grids as an 'Allegro' command ; -------------------------------------- axlCmdRegister( "grids" 'grids)