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