/* CVSETUP (CV) -- CAM View Setup */ /* CVSETUP (CV) -- CAM-View Setup */ /* -- INTENDED FOR CV-STARTUP-CALL USE -- */ /* // Copyright (c) 1997-2012 Oliver Bartels F+E, Muenchen // Author: Manfred Baumeister // Changes History: // rl (120427) RELEASED FOR BAE V7.8. // rl (101019) RELEASED FOR BAE V7.6. // rl (091020) RELEASED FOR BAE V7.4. // rl (081014) RELEASED FOR BAE V7.2. // rl (071029) RELEASED FOR BAE V7.0. // rl (060829) RELEASED FOR BAE V6.8. // rl (050906) RELEASED FOR BAE V6.6. // rl (040811) RELEASED FOR BAE V6.4. // rl (030904) RELEASED FOR BAE V6.2. // rl (021209) RELEASED FOR BAE V6.0. // rl (020618) RELEASED FOR BAE V5.4. // rl (010625) RELEASED FOR BAE V5.0. // rl (010220) ENHANCEMENT: // Added optional parameter settings from bae.ini file. // rl (000508) RELEASED FOR BAE V4.6. // rl (990625) RELEASED FOR BAE V4.4. // aug(990616) DEFAULT SETTINGS ADDED QI/AST4 // rl (980910) RELEASED FOR BAE V4.2. // mb (980713) ENHANCEMENT: // Dynamic multi-language support introduced. // mb (980420) CHANGE: // Inline documentation changed. // rl (980420) IMPROVMENT: // Added default Gerber Format setting. // rl (970929) RELEASED FOR BAE V4.0. // mb (970616) ORIGINAL CODING. // // DESCRIPTION // // The cvsetup User Language program sets a series of default // CAM View parameters and display modes. */ // Enforce CV caller type #pragma ULCALLERCV // Includes #include "std.ulh" // User Language standard include // Messages string REPDONE = M("CVSETUP: CAM-View Parameter gesetzt.", "CVSETUP: CAM View parameter setup done."); string ERRPARAM = M("CVSETUP: Ungueltige Parameter spezifiziert!", "CVSETUP: Invalid parameters specified!"); string ERRGBRFMT = M("CVSETUP: Ungueltiges Gerber-Format spezifiziert!", "CVSETUP: Invalid gerber format specified!"); string ERRLAYMAP = M("CVSETUP: Ungueltige Farbzuordnung spezifiziert!", "CVSETUP: Invalid colormapping specified!"); string ERRCOLTBL = M("CVSETUP: Ungueltige Farbtabelle '%s' spezifiziert!", "CVSETUP: Invalid color table '%s' specified!"); string ERRDRWMOD = M("CVSETUP: Ungueltiger Zeichenmodus spezifiziert!", "CVSETUP: Invalid draw mode specified!"); // INI file parameter name definitions #define PAR_BACKGRID "BACKGRID_CV" // Background grid #define PAR_INPUTGRID "INPUTGRID_CV" // Input grid #define PAR_GRIDLOCK "GRIDLOCK_CV" // Input grid lock #define PAR_ANGLELOCK "ANGLELOCK_CV" // Input angle lock #define PAR_COORDDISP "COORDDISP_CV" // Coordinate display mode #define PAR_GBRFMT "GBRFMT_CV" // Gerber format #define PAR_GBRLAYM "GBRLAYM_CV" // Gerber layer selection mode #define PAR_GBRUSRCONV "GBRUSRCONV_CV" // Gerber conv. factor #define PAR_POWHTLINE "POWHTLINE_CV" // Heat trap line width #define PAR_POWHTANG "POWHTANG_CV" // Heat trap angle #define PAR_COLTBL "COLORTABLE_CV" // Color table #define PAR_COLMAP "COLORMAP_CV" // Color mapping mode #define PAR_DRAWMODE "DRAWMODE_CV" // Draw mode #define PAR_WIDEDRAW "WIDEDRAW_CV" // Wide draw width string #define PAR_INPXOFF "INPXOFF_CV" // Default input X offset #define PAR_INPYOFF "INPYOFF_CV" // Default input Y offset #define PAR_VIADCODE "GBRVIADC_CV" // Default gerber via D code #define PAR_GBRARC "GBRARC_CV" // Gerber arc mode #define PAR_INPMIRR "INPMIRROR_CV" // Default input mirror mode #define PAR_GBRZERO "GBRZEROM_CV" // Gerber zero suppression mode #define PAR_GBREXT "GBREXT_CV" // Gerber extended mode #define PAR_GBROPT "GBROPT_CV" // Gerber optimization mode #define PAR_GBRCOORD "GBRCOORDM_CV" // Gerber coordinate mode #define PAR_FLASHDM "GBRFLASHDM_CV" // Default flash doc. layer mode // Standard definitions #define GRID 0.000635 // Standard grid (1/40" = 0.635mm) #define GBRVIADNONE (-1) // Gerber default via D code reset #define GBRFMT_23 0 // Gerber format 2.3 #define GBRFMT_24 1 // Gerber format 2.4 #define GBRFMT_25 2 // Gerber format 2.5 #define GBRFMT_26 3 // Gerber format 2.6 #define GBRFMTUSR 4 // Gerber user defined format #define GBRUSRCONV 0.000000254 // Gerber user def. form. conv. factor #define GBRFMT GBRFMT_24 // Default gerber format #define GBRARCFULL 0 // Gerber any angle arc mode #define GBRARC90 1 // Gerber max. 90 degree angle arc mode #define GBRARC GBRARCFULL // Gerber arc mode #define GBRLZERO 0 // Gerber suppress leading zeros #define GBRTZERO 1 // Gerber suppress trailing zeros #define GBRZERO GBRLZERO // Gerber zero suppression mode #define GBRARC GBRARCFULL // Gerber arc mode #define GBROPTOFF 0 // Gerber optimization off #define GBROPTON 1 // Gerber optimization on #define GBROPT GBROPTOFF // Gerber optimization mode #define GBREXTOFF 0 // Extended gerber off #define GBREXTON 1 // Extended gerber on #define GBREXT GBREXTOFF // Extended gerber mode #define INPMIRRNONE 0 // No input mirroring #define INPMIRRX 1 // Mirror at X axis #define INPMIRRY 2 // Mirror at Y axis #define INPMIRRORG 3 // Mirror at origin #define INPMIRR INPMIRRNONE // Input mirror mode #define GBRACOORD 0 // Gerber absolute coordinates #define GBRIRCOORD 1 // Gerber incremental coord. with reset #define GBRICOORD 2 // Gerber incremental coord. w.o. reset #define GBRCOORD GBRACOORD // Gerber coordinate mode #define GBRFLASHOL 0 // Gerber generate flash outlines #define GBRFLASHAR 1 // Gerber generate flash areas #define GBRFLASHDM GBRFLASHOL // Gerber zero suppression mode #define COLTBL_STD "standard" // Color table standard #define LAYMAP_APERT 0 // Color mapping to aperture #define LAYMAP_LAYER 1 // Color mapping to layer #define LAYMAP LAYMAP_APERT // Default color mapping #define GBRLAYM_BOTH 0 // Gerber lines and flashes same layer #define GBRLAYM_SEP 1 // Gerber lines and flashes extra lay. #define GBRLAYM GBRLAYM_BOTH // Default gerber layer selection mode #define DRWMOD_AREA 0 // Draw mode area #define DRWMOD_EDGE 1 // Draw mode edge #define DRWMOD DRWMOD_AREA // Default draw mode string widedraw = bae_inistrval(PAR_WIDEDRAW,"1.5 mm"); // Wide draw width string // Main program void main() { int gbrfmt = bae_iniintval(PAR_GBRFMT,GBRFMT) /* Gerber format code */; // Set CV parameters if (bae_setbackgrid( // Display grid bae_inidblval(PAR_BACKGRID,GRID),bae_inidblval(PAR_BACKGRID,GRID)) || bae_setinpgrid( // Input grid bae_inidblval(PAR_INPUTGRID,GRID),bae_inidblval(PAR_INPUTGRID,GRID)) || bae_setgridlock( // Input grid locked bae_iniintval(PAR_GRIDLOCK,1)) || bae_setanglelock( // Angle locked bae_iniintval(PAR_ANGLELOCK,1)) || bae_setcoorddisp( // mm coordinate display bae_iniintval(PAR_COORDDISP,0))) // Parameter set error error(ERRPARAM); // Set the wide draw width if (widedraw!="") { bae_clriactqueue(); bae_storetextiact(1,widedraw); bae_callmenu(111); } // Set the gerber format bae_clriactqueue(); bae_storemenuiact(1,gbrfmt==GBRFMTUSR ? 8 : gbrfmt,LMB); if (gbrfmt==GBRFMTUSR) bae_storetextiact(1,ftoa( cvtlength(bae_inidblval(PAR_GBRUSRCONV,GBRUSRCONV),0,2),10)); if (bae_callmenu(MNU_CVGBRFMT)) // Parameter set error error(ERRGBRFMT); // Load color table if (bae_inistrval(PAR_COLTBL,COLTBL_STD)!=COLTBL_STD) { bae_clriactqueue(); bae_storetextiact(1,bae_inistrval(PAR_COLTBL,COLTBL_STD)); if (bae_callmenu(MNU_CVCOLTBL)) // Parameter set error errormsg( ERRCOLTBL,bae_inistrval(PAR_COLTBL,COLTBL_STD)); } // Set input coordinate offset if (cv_setdblpar(0,bae_inidblval(PAR_INPXOFF,0.0)) || cv_setdblpar(1,bae_inidblval(PAR_INPXOFF,0.0))) // Parameter set error error(ERRPARAM); // Set input mirror mode cv_setintpar(8,bae_iniintval(PAR_INPMIRR,INPMIRR)); // Set gerber via D code cv_setintpar(4,bae_iniintval(PAR_VIADCODE,GBRVIADNONE)); // Set gerber arc code cv_setintpar(7,bae_iniintval(PAR_GBRARC,GBRARC)); // Set gerber zero suppression code cv_setintpar(9,bae_iniintval(PAR_GBRZERO,GBRZERO)); // Set gerber optimization code cv_setintpar(6,bae_iniintval(PAR_GBROPT,GBROPT)); // Set extended gerber code cv_setintpar(10,bae_iniintval(PAR_GBREXT,GBREXT)); // Set gerber coordinate code cv_setintpar(11,bae_iniintval(PAR_GBRCOORD,GBRCOORD)); // Set gerber layer selection mode cv_setintpar(0,bae_iniintval(PAR_GBRLAYM,GBRLAYM)); // Set gerber flashes documentary mode cv_setintpar(12,bae_iniintval(PAR_FLASHDM,GBRFLASHDM)); // Set heat trap parameters if (cv_setdblpar(2,bae_inidblval(PAR_POWHTLINE,0.0003)) || cv_setintpar(5,bae_iniintval(PAR_POWHTANG,1))) // Parameter set error error(ERRPARAM); // Set color mapping bae_clriactqueue(); bae_storemenuiact(1,bae_iniintval(PAR_COLMAP,LAYMAP),LMB); if (bae_callmenu(MNU_CVLAYMAP)) // Parameter set error error(ERRLAYMAP); // Set draw mode bae_clriactqueue(); bae_storemenuiact(1,bae_iniintval(PAR_DRAWMODE,DRWMOD),LMB); if (bae_callmenu(MNU_CVDRWMOD)) // Parameter set error error(ERRDRWMOD); // Print parameter set message bae_prtdialog(REPDONE); } // User Language program end