| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
Autor
|
Thema: Beschriftung automatisiert über Script? (6344 mal gelesen)
|
M.Simon Mitglied
Beiträge: 309 Registriert: 03.01.2003 EPLAN Electric P8 Professional 2024
|
erstellt am: 22. Dez. 2009 08:34 <-- editieren / zitieren --> Unities abgeben:
Hallo Eplaner, habe mir ein eigenes Schema für eine Beschriftung erstellt. Nach dem Exportieren der Beschriftungsdatei starte ich über eine Batch-Datei eine Anwendung, die meine Daten weiter verarbeitet. Kann man diese Tätigkeiten evtl. über eine Script zusammenfassen? Mein Wunsch wäre über einen Button die Beschriftung zu erstellen und danach die Batch-Datei zu starten. Für einen Lösungsansatz wäre ich sehr dankbar ------------------ M.Simon Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jonny Wire Mitglied Script-Troll
Beiträge: 786 Registriert: 08.12.2008 EPLAN Electric P8 ... in allen Versionen/Varianten
|
erstellt am: 22. Dez. 2009 11:06 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
Hab dir kurz was gebastelt ... Hatte sowas noch in ähnlicher Form. Wie du die Batch dann weiterverarbeitest weiß ich nicht. (in den ersten Zeilen musst du die Dateinamen bzw. Schemata anpassen) Bei Fragen einfach Fragen... ------------------ "Die Geschichte lehrt die Menschen, daß die Geschichte die Menschen nichts lehrt." Mahatma Gandi "Ihr seid gar nicht so dumm, wie ihr ausseht." Muhammad Ali, 1963 zu den Beatles Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
M.Simon Mitglied
Beiträge: 309 Registriert: 03.01.2003 EPLAN Electric P8 Professional 2024
|
erstellt am: 22. Dez. 2009 11:40 <-- editieren / zitieren --> Unities abgeben:
Respekt, Jonny, was Du mir kurz bastelst. Beim Ausführen bekommt ich die Systemmeldung: "Es wurde keine öffentliche Funktion mit dem Attribut [Start] deklariert." (Meldung S046005) Sagt Dir das etwas? ------------------ M.Simon Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jonny Wire Mitglied Script-Troll
Beiträge: 786 Registriert: 08.12.2008 EPLAN Electric P8 ... in allen Versionen/Varianten
|
erstellt am: 22. Dez. 2009 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
Wir sollten mal eine Anleitung für das einbinden von Scripte schreiben (werd ich mal machen) Dieses Script soll fest eingebunden werden und nicht einmal ausgeführt werden. Darum: - Dienstprogramme/Scripte/Script laden... - Toolbar von mir importieren --> Diese Toolbar enthält einen Button... wenn du den Button bearbeitest (Optionen/Symbolleisten/Anpassen... -> Doppelklick auf Symbol), siehst du dass bei Befehlszeile "PostAndExecute" steht. Das ist der Name meiner Action welche im Script enthalten ist. Denke auch daran dass im Script (mit Texteditor öffnen) das Beschriftungsschema stehen muss, dieses Schema muss auch in P8 vorhanden sein! ------------------ "Die Geschichte lehrt die Menschen, daß die Geschichte die Menschen nichts lehrt." Mahatma Gandi "Ihr seid gar nicht so dumm, wie ihr ausseht." Muhammad Ali, 1963 zu den Beatles Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgischel Moderator ...und Dippel-Ing ET...
Beiträge: 15740 Registriert: 09.03.2001 EPLAN Electric P8 Professional 2.7.x Expertenmenü :) ---
|
erstellt am: 22. Dez. 2009 13:39 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
|
M.Simon Mitglied
Beiträge: 309 Registriert: 03.01.2003 EPLAN Electric P8 Professional 2024
|
erstellt am: 22. Dez. 2009 13:56 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank. Es funktioniert perfekt. Entschuldigung, aber die Vorgehensweise beim Einbinden von Scripten war mir nicht klar. Man lernt täglich noch dazu. Also, noch einmal vielen Dank und schöne Feiertage. ------------------ M.Simon Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jonny Wire Mitglied Script-Troll
Beiträge: 786 Registriert: 08.12.2008 EPLAN Electric P8 ... in allen Versionen/Varianten
|
erstellt am: 22. Dez. 2009 14:37 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
Brauchst dich nicht entschuldigen, da dieses Thema nicht selbsterklärend ist... Scriptschulung von Eplan ist sehr zu empfehlen, falls du tiefer in das Thema einsteigen möchtest... @Bernd: Ich meinte auch dass es was gibt, habs aber leider nicht gefunden (wurde gleich gebookmarked) ------------------ "Die Geschichte lehrt die Menschen, daß die Geschichte die Menschen nichts lehrt." Mahatma Gandi "Ihr seid gar nicht so dumm, wie ihr ausseht." Muhammad Ali, 1963 zu den Beatles [Diese Nachricht wurde von Jonny Wire am 22. Dez. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ebuse Mitglied Elektro-Ingenieurin
Beiträge: 12 Registriert: 16.04.2013 Eplan P8 Prof. 2.2.5 EEC One 2.2.6
|
erstellt am: 17. Feb. 2014 08:22 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
Hallo, ich habe momentan ein ähnliches Problem, ich habe ein Script für die Beschriftung erstellt, das funktioniert super. Dann möchte ich ein Batchdatei starten. Das funktioniert auch noch. Jetzt möchte ich der Batchdatei aber Parameter übergeben. Ich habe mir das Script von Jonny Wire angeschaut, das steht als Kommentar "<Parameter> hinzugefügt", allerdings weiß ich nicht, wo und wie ich diese Parameter hinzufügen soll. Ich hoffe mir kann einer helfen! [Diese Nachricht wurde von ebuse am 17. Feb. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ebuse Mitglied Elektro-Ingenieurin
Beiträge: 12 Registriert: 16.04.2013 Eplan P8 Prof. 2.2.5 EEC One 2.2.6
|
erstellt am: 19. Feb. 2014 07:44 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
|
F.S. Moderator
Beiträge: 1815 Registriert: 23.04.2003 EPLAN Electric P8 2023 Prof.
|
erstellt am: 19. Feb. 2014 09:25 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
|
ebuse Mitglied Elektro-Ingenieurin
Beiträge: 12 Registriert: 16.04.2013 Eplan P8 Prof. 2.2.5 EEC One 2.2.6
|
erstellt am: 19. Feb. 2014 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
Also mein Aufruf sieht momentan so aus: string sBatch = @"C:\script.bat"; ... ProcessStartInfo pInf = new ProcessStartInfo(sBatch); Process proc = Process.Start(pInf); Ich muss 3 Parameter übergeben. Ich habe auch zuerst über Google gesucht, aber entweder ich bin zu blöd dafür oder ich habe die falschen Suchbegriffe. Auf jeden Fall kommen immer Seiten raus, die zwar das grob beinhalten, was ich suche, aber die Lösungen funktionieren nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FML Mitglied
Beiträge: 491 Registriert: 11.03.2002 Aktuell: EPLAN Electric P8 Professional V 2.6 HF2 V 2.7 V 2.7 Education<P>Eplan Fluid Add On Eplan ProPanel Add On Electric P8 API EEC Systeme: MS WINDOWS 10 MS WINDOWS 7 MS WINDOWS 2016 Server MS WINDOWS SQL Server
|
erstellt am: 19. Feb. 2014 10:41 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
Hallo, hier mal ein Bsp. wie ich das aus API mache, müsste aber auch per Script funktionieren. Da werden noch ein paar StartInfo Parameter gesetzt aber Du kannst ja per Google mit z.B: Suchbegriff "c# Process" einiges dazu finden. Natürlich kann man auch für das StartInfo ein Objekt instanziieren und dann die Parameter setzen und dann dem Process.Start als Übergabeparameter geben. // Prozess aufsetzen Process prc = new Process(); prc.StartInfo.UseShellExecute = false; prc.StartInfo.RedirectStandardError = true; prc.StartInfo.RedirectStandardOutput = true; prc.StartInfo.FileName = "Deine Batchdatei"; prc.StartInfo.Arguments = "Deine Parameter" prc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; prc.Start(); ------------------ Um zu sehen, musst Du die Augen offen halten. Um zu erkennen, musst Du sie schliessen und denken.
[Diese Nachricht wurde von FML am 19. Feb. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
F.S. Moderator
Beiträge: 1815 Registriert: 23.04.2003 EPLAN Electric P8 2023 Prof.
|
erstellt am: 19. Feb. 2014 11:21 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
So, hier mal ein Beispiel was funktionsfähig ist. Wichtig ! In den Parameter-Strings dürfen keine Leerzeichen sein. das Script:
Code:
using System.Diagnostics;public class WriteSettings { [Start()] public void MyFunction() { string sBatch = @"C:\Temp\Script.bat"; string sPara1 = "Parameter1"; string sPara2 = "Parameter2"; string sPara3 = "Parameter3"; ProcessStartInfo pInf = new ProcessStartInfo(sBatch); pInf.Arguments = sPara1 + " " + sPara2 + " " + sPara3; Process proc = Process.Start(pInf); return; } }
Die Batchdatei
Code:
@echo off cls echo %1 echo %2 echo %3 pause
------------------ grüße FrankS Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JochenNie Mitglied Elektrokonstrukteur
Beiträge: 269 Registriert: 15.05.2013 EPLAN Electric P8 - Professional Version: 2.9 SP1 Update 10 Version: 2023 Update 1
|
erstellt am: 19. Feb. 2014 20:23 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
Hallo Zusammen, ich habe das Script von Jonny Wire ausprobiert, funktioniert erst einmal wunderbar. Besteht die Möglichkeit, von mir erstellte Filter für die Beschriftung, über das Script mit einem Auswahlfenster auszuwählen? Geht das auch ohne API? Leider habe ich mit Scripten sehr wenig Erfahrung. Gruß Jochen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ebuse Mitglied Elektro-Ingenieurin
Beiträge: 12 Registriert: 16.04.2013 Eplan P8 Prof. 2.2.5 EEC One 2.2.6
|
erstellt am: 20. Feb. 2014 07:46 <-- editieren / zitieren --> Unities abgeben: Nur für M.Simon
Vielen Dank euch beiden! Jetzt kann ich schonmal Parameter übergeben. Allerdings sind meine Parameter so aufgebaut: Code: string strProjectname = PathMap.SubstitutePath("$(PROJECTNAME)"); string stueckliste_M = @"J:\Artikel\Stuecklisten\ " + strProjectname + "_STUE_M.csv";
Deswegen kommt nicht das richtige bei der Batchdatei heraus. Der erste Parameter ergibt J:\Artikel\Stuecklisten\ , der zweite den Projektnamen mit der csv-Endung und der dritte wieder J:\Artikel\Stuecklisten\. Wie kann ich das modifizieren, damit der Projektname auch variabel gehalten werden kann? edit: Ich hab die Lösung sogar selber gefunden ;) und zwar muss der Parameter folgendermaßen übergeben werden:
Code:
pInf.Arguments = @"""" + Parameter1 + @"""" + " " + @"""" + Parameter2 + @"""" + " " + @"""" + Parameter3 + @"""";
[Diese Nachricht wurde von ebuse am 20. Feb. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |