// Dieses ULP erzeugt eine Script-File (NAMETXT.SCR), das die Namenstexte // der Bauteile im Layout in neu generierte Layer (125 und 126) // kopiert. Anschliessend kann man mit GROUP CUT und PASTE das Layout kopieren // und zu einem Nutzen zusammensetzen. // Die kopierten Namenstexte in den neuen Layern aendern sich nicht. // Bei der Ausgabe der Platinendaten (z.B. GERBER) ist darauf zu achten, dass // die Layer 25 und 26 nicht aktiviert werden duerfen, sondern nur die // neuen Layer 125 bzw. 126 ausgegeben werden. Somit kann ein // identischer Bestueckungsdruck des Nutzens erreicht werden. // // // This ULP generates a script file (NAMETXT.SCR) that copies the name texts // of all elements of your layout into new generated layers (125 and 126). // After running the script file you can GROUP, CUT and PASTE your layout // to get an array of several boards. // The copied name texts in the new layers will not be changed. // Please notice that you have to desactivate layers 25 and 26 if you use // the CAM processor for e.g. generating gerber data. You have to activate // the new layers 125 and 126. Thus you get an identical silk screen for all // your layouts in this array. // // // Richard Hammerl 05-06-1998 int offset = 100; int tNames = 25, bNames = 26; void header(void) { printf("layer %d _tNames;\n", tNames+offset); // here you can change the new printf("layer %d _bNames;\n", bNames+offset); // layers names printf("set color_layer %d yellow;\n", tNames+offset); // and printf("set color_layer %d yellow;\n", bNames+offset); // colors printf("set wire_style 2;\n"); printf("\nGRID mil;\n\n"); } if (board) board(B) { output("NAMETXT.SCR") { header(); B.elements(E) { E.texts(T) { if (T.layer == 25) { printf("Change Layer %d;\n", tNames+offset); printf("Change Size %5.3f;\n", u2mil(T.size)); printf("Text '%s' R%1.0f (%5.3f %5.3f);\n", E.name, T.angle, u2mil(T.x), u2mil(T.y)); } if (T.layer == 26) { printf("Change Layer %d;\n", bNames+offset); printf("Change Size %5.3f;\n", u2mil(T.size)); printf("Text '%s' MR%1.0f (%5.3f %5.3f);\n", E.name, T.angle, u2mil(T.x), u2mil(T.y)); } } } } }