/* CAMIO (CAM) -- CAM Processor Import/Export Functions */ /* CAMIO (CAM) -- CAM-Prozessor-Ein-/Ausgabefunktionen */ /* // Copyright (c) 1995-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 (060809) ENHANCEMENT: // WRL/VRML output option introduced. // rl (050906) RELEASED FOR BAE V6.6. // rl (040811) RELEASED FOR BAE V6.4. // rl (030905) RELEASED FOR BAE V6.2. // rl (030905) ENHANCEMENT: // HyperLynx output option introduced. // rl (030703) ENHANCEMENT: // Gencad 1.4 output option introduced. // rl (030502) ENHANCEMENT: // CAM batch output option introduced. // rl (021209) RELEASED FOR BAE V6.0. // rl (020618) RELEASED FOR BAE V5.4. // rl (010625) RELEASED FOR BAE V5.0. // rl (010619) ENHANCEMENT: // Added support of additional menu item definitions in bae.ini. // rl (000524) RELEASED FOR BAE V4.6. // mb (990826) RELEASED FOR BAE V4.4. // mb (990826) CHANGE: // EPS Output prompt changed to EPS/PDF Output. // rl (980910) RELEASED FOR BAE V4.2. // mb (980814) ENHANCEMENT: // IPC-D-356 output option introduced. // mb (980710) ENHANCEMENT: // Pulldown menu delimiters introduced. // rl (970929) RELEASED FOR BAE V4.0. // mb (960919) RELEASED FOR BAE V3.4. // mb (960801) ENHANCEMENT: // Changed menu items to support key selection // in Windows/Motif user interfaces. // mb (960703) ENHANCEMENT: // BAE user interface type designators introduced. // mb (95) RELEASED FOR BAE V3.2. // mb (950223) ORIGINAL CODING. // // DESCRIPTION // // The camio User Language program provides a menu with a series // of advanced CAM Processor import and export functions. */ // Enforce CAM caller type #pragma ULCALLERCAM // Includes #include "std.ulh" // User Language standard include // Messages string UPRABORT = M_UPRABORT(); string UPRIOFCT = M("Ein-/Ausgabefunktion selektieren!", "Select Import/Export Function!"); string MI_LAYDUMP = M("&BAE/ASCII Ausgabe","&BAE/ASCII Output"); string MI_PARTLIST = M("%&Stueckliste Ausgabe","%Part Li&st Output"); string MI_DUMPPLC = M("&Placedaten Ausgabe","&Place Data Output"); string MI_ROUTING = M("%&Routdaten Ausgabe","%&Rout Data Output"); string MI_DRILLOUT = M("Bohr&daten Ausgabe","&Drill Data Output"); string MI_TESTDATA = M("&Testdaten Ausgabe","&Test Data Output"); string MI_GENCAD = M("&Gencad 1.4 Ausgabe","&Gencad 1.4 Output"); string MI_HYPLYNX = M("&HyperLynx Ausgabe","&HyperLynx Output"); string MI_IPCDATA = M("&IPC-D-356 Ausgabe","&IPC-D-356 Output"); string MI_CONBAE = M("%&Netzliste Ausgabe","%&Net List Output"); string MI_LAYDXFDO = M("%AutoCAD/D&XF Ausgabe","%AutoCAD/D&XF Output"); string MI_LAYEPS = M("%&EPS/PDF Ausgabe","%&EPS/PDF Output"); string MI_LCIFOUT = M("CIF &Ausgabe","CIF &Output"); string MI_CAMBATDB = M("%CA&M-Batch-Ausgabe","%CA&M-Batch Output"); string MI_WRLOUT = M("%WRL/VRML-Ausgabe","%WRL/VRML Data Output"); // User Language program name definitions #define UL_LAYDUMP "laydump" #define UL_PARTLIST "partlist" #define UL_DUMPPLC "dumpplc" #define UL_ROUTING "routing" #define UL_DRILLOUT "drillout" #define UL_TESTDATA "testdata" #define UL_GENCAD "gencad" #define UL_HYPLYNX "hyplynx" #define UL_IPCDATA "ipcout" #define UL_CONBAE "conbae" #define UL_LAYDXFDO "laydxfdo" #define UL_LAYEPS "layeps" #define UL_LCIFOUT "lcifout" #define UL_CAMBATDB "cambatdb" #define UL_WRLOUT "wrlout" // Main program void main() { struct additemdes { // Additional menu item descriptor string name /* Menu item name */; string prog /* Menu item program */; } menuiteml[] /* Menu item list */; int menun /* Menu index */; int menusel /* Menu selection */; string varname /* Variable name */; string menuname /* Menu item name */; string menuprog /* Menu item program */; int ddbclass = bae_planddbclass() /* Layout plan DDB class */; string e_dis = "" /* Empty plan disable */; string psd_dis = "" /* Part/padstack/pad items disable */; string sd_dis = "" /* Padstack/pad items disable */; // Abort if not in CAM Processor if (uliptype()!=ULIPCAM) error_class(); // Test the plan class switch (ddbclass) { case DDBCLLAY : break; case DDBCLLPRT : psd_dis=","; break; case DDBCLLSTK : case DDBCLLPAD : psd_dis=sd_dis=","; break; default : e_dis=psd_dis=sd_dis=","; } // Check for additional menu items for (menun=0;menun=15 && (menusel-15)