Jan Güttler war so nett und hat ein Script bereitgestellt, welches den Druckvorgang automatisiert. Vielen Dank dafür!
Ein schönes Beispiel wie man mit Seitenfiltern im Scripting arbeiten kann.
Beschreibung:
Skript zur komfortablen und sortierten Ausgabe der Schaltungsunterlagen.
Einzelne Seiten hochkant in A3, beidseitig farbig oder einseitig schwarz weiß, völlig egal.
Alles was der Drucker unterstützt kann ausgenutzt werden.
Download
// Printyourstyle.cs // // v.01 // // Copyright by Jan Güttler 2020 // EPLAN P8 2.9 // // Skript zur komfortablen Ausgabe der Elektrodokumentation. // Im Prinzip kann man hier alles ansprechen, was zum Thema Ausdruck gehört. // Voraussetzung ist, dass man Die Druckprofile der einzelnen Drucker als einzelnen Drucker installiert hat. // Die Druckprofile innerhalb des jeweiligen Druckprogrammes lassen sich sicher auch ansprechen, da es aber unheimlich viele Druckprogramme gibt, // gibt's keinen allgemeingültige Befehl. // // Mit Hilfe der Seitenfilter wird nur das an den jeweiligen Drucker gesendet, was auch gedruckt werden soll. // // using System.Threading; public class printyourstyle { [DeclareAction ("printyourstyle")] //Diese Action auf einen Button legen nachdem das Script geladen wurde public void Fertigung () { //Um nicht bei Ausversehenklick gleich loszudrucken nochmal ne Abfrage DialogResult oDialogResult = MessageBox.Show ("Soll ich wirklich drucken?", "Letzte Chance!", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (oDialogResult == DialogResult.Yes) //Bei "Ja" gehts los, bei "Nein" wird der Befehl zurückgenommen { //Filtername aus dem Seitennavigator auslesen (muss sein, weil von diesem Filter die weiteren Schritte abhängen) String Pagefilter = new Settings ().GetStringSetting ("USER.PageBrowserGui.PageFilterScheme.LastUsed", 0); if (Pagefilter == "Filtername1") //Beispielfilter für Maschinentyp 1 { //Eplan-Druckeinstellungen für den Klemmenplan auf farbig CommandLineInterpreter oCLI = new CommandLineInterpreter (); ActionCallingContext acc = new ActionCallingContext (); acc.AddParameter ("set", "STATION.Print.BlackWhite"); acc.AddParameter ("value", "0"); //or 0 oCLI.Execute ("XAfActionSetting", acc); //Für die Fertigung sollen Bemaßungen ausgedruckt werden acc.AddParameter ("LAYER1", "EPLAN107"); acc.AddParameter ("PRINTED1", "1"); oCLI.Execute ("changeLayer", acc); //Klemmenplan Maschinentyp 1ausgeben ActionCallingContext printContext0001 = new ActionCallingContext (); printContext0001.AddParameter ("printername", "Standarddrucker 1"); //z.B.: Drucker mit Druckprofil A4, bunt, einseitig printContext0001.AddParameter ("number", "1"); printContext0001.AddParameter ("printcollate", "0"); printContext0001.AddParameter ("printreverse", "0"); printContext0001.AddParameter ("printchangedpages", "0"); printContext0001.AddParameter ("type", "PAGES"); printContext0001.AddParameter ("PAGEFILTERNAME", "Seitenfilter für Klemmenpläne Maschinentyp 1"); new CommandLineInterpreter ().Execute ("print", printContext0001); //Zeitschleife, um Blätter nicht zu mischen { Thread.Sleep (1000); } //Eplan-Druckeinstellungen für die Stückliste auf schwarzweiß acc.AddParameter ("set", "STATION.Print.BlackWhite"); acc.AddParameter ("value", "1"); oCLI.Execute ("XAfActionSetting", acc); //Stückliste ActionCallingContext printContext0004 = new ActionCallingContext (); printContext0004.AddParameter ("printername", "Standarddrucker 2"); //z.B.: Drucker mit Druckprofil A4, bunt, beidseitig printContext0004.AddParameter ("number", "1"); printContext0004.AddParameter ("printcollate", "0"); printContext0004.AddParameter ("printreverse", "0"); printContext0004.AddParameter ("printchangedpages", "0"); printContext0004.AddParameter ("type", "PAGES"); printContext0004.AddParameter ("PAGEFILTERNAME", "Seitenfilter für Stücklisten Maschinentyp 1"); new CommandLineInterpreter ().Execute ("print", printContext0004); //1 Sekunde warten { Thread.Sleep (1000); } //Stromlaufplan ActionCallingContext printContext0013 = new ActionCallingContext (); printContext0013.AddParameter ("printername", "Standarddrucker 3"); //z.B.: Drucker mit Druckprofil A4, b/w, beidseitig printContext0013.AddParameter ("number", "1"); printContext0013.AddParameter ("printcollate", "0"); printContext0013.AddParameter ("printreverse", "0"); printContext0013.AddParameter ("printchangedpages", "0"); printContext0013.AddParameter ("type", "PAGES"); printContext0013.AddParameter ("PAGEFILTERNAME", "Seitenfilter für Stromlaufplan"); new CommandLineInterpreter ().Execute ("print", printContext0013); { Thread.Sleep (1000); } //Aufbaupläne ActionCallingContext printContext0014 = new ActionCallingContext (); printContext0014.AddParameter ("printername", "Standarddrucker 4"); //z.B.: Drucker mit Druckprofil A3, farbig, einseitig printContext0014.AddParameter ("number", "1"); printContext0014.AddParameter ("printcollate", "0"); printContext0014.AddParameter ("printreverse", "0"); printContext0014.AddParameter ("printchangedpages", "0"); printContext0014.AddParameter ("type", "PAGES"); printContext0014.AddParameter ("PAGEFILTERNAME", "Seitenfilter für Aufbauplan"); new CommandLineInterpreter ().Execute ("print", printContext0014); } else if (Pagefilter == "Filtername2") //Beispielfilter für Kundenunterlagen { //Eplan-Druckeinstellungen für den Klemmenplan auf farbig CommandLineInterpreter oCLI = new CommandLineInterpreter (); ActionCallingContext acc = new ActionCallingContext (); acc.AddParameter ("set", "STATION.Print.BlackWhite"); acc.AddParameter ("value", "0"); //or 0 oCLI.Execute ("XAfActionSetting", acc); //Für die Kundenunterlagen sollen keine Bemaßungen ausgedruckt werden acc.AddParameter ("LAYER1", "EPLAN107"); acc.AddParameter ("PRINTED1", "0"); oCLI.Execute ("changeLayer", acc); //Kundenklemmenplan Maschinentyp 1 ausgeben ActionCallingContext printContext0001 = new ActionCallingContext (); printContext0001.AddParameter ("printername", "Standarddrucker 2"); //z.B.: Drucker mit Druckprofil A4, bunt, beidseitig printContext0001.AddParameter ("number", "1"); printContext0001.AddParameter ("printcollate", "0"); printContext0001.AddParameter ("printreverse", "0"); printContext0001.AddParameter ("printchangedpages", "0"); printContext0001.AddParameter ("type", "PAGES"); printContext0001.AddParameter ("PAGEFILTERNAME", "Seitenfilter für Kundenklemmenpläne Maschinentyp 1"); new CommandLineInterpreter ().Execute ("print", printContext0001); //Zeitschleife, um Blätter nicht zu mischen { Thread.Sleep (1000); } //Eplan-Druckeinstellungen für die Kundenstückliste auf schwarzweiß acc.AddParameter ("set", "STATION.Print.BlackWhite"); acc.AddParameter ("value", "1"); oCLI.Execute ("XAfActionSetting", acc); //Stückliste Kunde ActionCallingContext printContext0004 = new ActionCallingContext (); printContext0004.AddParameter ("printername", "Standarddrucker 2"); //z.B.: Drucker mit Druckprofil A4, bunt, beidseitig printContext0004.AddParameter ("number", "1"); printContext0004.AddParameter ("printcollate", "0"); printContext0004.AddParameter ("printreverse", "0"); printContext0004.AddParameter ("printchangedpages", "0"); printContext0004.AddParameter ("type", "PAGES"); printContext0004.AddParameter ("PAGEFILTERNAME", "Seitenfilter für Kundenstücklisten"); new CommandLineInterpreter ().Execute ("print", printContext0004); //1 Sekunde warten { Thread.Sleep (1000); } //Stromlaufplan Kunde ActionCallingContext printContext0013 = new ActionCallingContext (); printContext0013.AddParameter ("printername", "Standarddrucker 3"); //z.B.: Drucker mit Druckprofil A4, b/w, beidseitig printContext0013.AddParameter ("number", "1"); printContext0013.AddParameter ("printcollate", "0"); printContext0013.AddParameter ("printreverse", "0"); printContext0013.AddParameter ("printchangedpages", "0"); printContext0013.AddParameter ("type", "PAGES"); printContext0013.AddParameter ("PAGEFILTERNAME", "Seitenfilter für Kundenstromlaufplan"); new CommandLineInterpreter ().Execute ("print", printContext0013); { Thread.Sleep (1000); } //Aufbaupläne Kunde ActionCallingContext printContext0014 = new ActionCallingContext (); printContext0014.AddParameter ("printername", "Standarddrucker 1"); //z.B.: Drucker mit Druckprofil A4, farbig, einseitig printContext0014.AddParameter ("number", "1"); printContext0014.AddParameter ("printcollate", "0"); printContext0014.AddParameter ("printreverse", "0"); printContext0014.AddParameter ("printchangedpages", "0"); printContext0014.AddParameter ("type", "PAGES"); printContext0014.AddParameter ("PAGEFILTERNAME", "Seitenfilter für Kundenaufbauplan"); new CommandLineInterpreter ().Execute ("print", printContext0014); } } if (oDialogResult == DialogResult.No) //Vertippt, wollte gar nicht drucken { MessageBox.Show ("Alles klar"); } return; } }
Hinterlasse einen Kommentar