/* GEDIO (GED) -- GED Import/Export Functions */ /* GEDIO (GED) -- GED-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 (091021) 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 (050408) ENHANCEMENT: // Bitmap input option introduced. // rl (050323) ENHANCEMENT: // OrCAD MIN input option introduced. // 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 (021209) RELEASED FOR BAE V6.0. // rl (020618) RELEASED FOR BAE V5.4. // rl (020515) ENHANCEMENT: // Added ICAP netlist input. // rl (010625) RELEASED FOR BAE V5.0. // rl (010619) ENHANCEMENT: // Added support of additional menu item definitions in bae.ini. // rl (000509) RELEASED FOR BAE V4.6. // ob (000122) ENHANCEMENT: // CIF Input/Output introduced. // 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. // rl (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 gedio User Language program provides a menu with a series // of advanced Layout Editor import and export functions. */ // Enforce GED caller type #pragma ULCALLERGED // Disable undo state request #pragma ULCALLERNOUNDO // 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","&BAE/ASCII"); string MI_PARTLIST = M("%&Stueckliste Ausgabe","%Part Li&st Output"); string MI_DUMPPLC = M("%&Placedaten Ausgabe","%&Place Data Output"); string MI_READPLC = M("Pla&cedaten Import","Pla&ce Data Input"); 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_CONCONV = M("Netz&liste Import","Net &List Input"); string MI_ICAPNET = M("ICAP I&mport","IC&AP Input"); string MI_LAYDXFDO = M("%AutoCAD/D&XF Ausgabe","%AutoCAD/D&XF Output"); string MI_LAYDXFDI = M("AutoCAD/DX&F Import","AutoCAD/DX&F Input"); string MI_LAYEPS = M("%&EPS/PDF-Ausgabe","%&EPS/PDF Output"); string MI_LCIFIO = M("%Caltech CIF I/&O","%CIF I/&O"); string MI_LCIFOUT = M("CIF &Ausgabe","CIF &Output"); string MI_LCIFIN = M("CIF &Import","CIF &Input"); string MI_LTXFIN = M("%TXF Import","%TXF Input"); string MI_LMININ = M("OrCAD MIN-Import","OrCAD MIN Input"); string MI_BITMAPIN = M("Bitmap-Import","Bitmap Input"); 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_READLPLC "readlplc" #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_CONCONV "conconv" #define UL_ICAPNET "icapnet" #define UL_LAYDXFDO "laydxfdo" #define UL_LAYDXFDI "laydxfdi" #define UL_LAYEPS "layeps" #define UL_LCIFIN "lcifin" #define UL_LCIFOUT "lcifout" #define UL_LTXFIN "ltxfin" #define UL_LMININ "lminin" #define UL_BITMAPIN "bitmapin" #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 GED if (uliptype()!=ULIPGED) 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=21 && (menusel-21)