In diesem Artikel geht es darum, eine externe Regel zu erstellen. Diese soll eine IDW als PDF abspeichern. Hier die Links zu den iLogic Artikeln 1-5 mit denen ihr anfangen solltest, falls noch nicht geschehen. Alle Artikel zum Thema “iLogic” gibt’s hier.
Inventor automatisieren mit iLogic - Teil 1
Inventor automatisieren mit iLogic - Teil 2
Inventor automatisieren mit iLogic - Teil 3
Inventor automatisieren mit iLogic - Teil 4
Inventor automatisieren mit iLogic - Teil 5
Externe Regeln
Alle Regeln, die wir bisher erstellt haben, existieren nur in der Datei, in der wie sie erstellt haben. Um eine Regel “global” verfügbar zu machen, muss sie als globale Regel erstellt werden. Das ist recht simpel: Einfach in Regeln-Browser im Register “Extern” RMT > “neue externe Regel erstellen” aufrufen. Im nachfolgenden Dateidialog eine neue Datei erstellen mit dem gewünschten Dateinamen z.B. “pdf”. Die Angabe der Dateiendung ist nicht notwendig, iLogic fügt automatisch “iLogicVb” an.
PDF erstellen
Sobald die externe Regel besteht, kann’s schon los gehen. Um eine Kopie der IDW als PDF zu speichern, genügt eine Zeile Code. Über die Snippets einfach “Dokument > Datei speichern unter” hinzufügen und noch den – momentan noch statischen - Pfad ergänzen: ThisDoc.Document.SaveAs("c:\temp\test.pdf" , True). Das Verzeichnis, in meinem Beispiel “c:\temp”, muss natürlich existieren.
Nun sollte natürlich eine IDW geöffnet sein. Wenn nun die Regel ausgeführt wird, erstellt sie im Verzeichnis c:\temp die test.pdf Datei.
Jetzt wollen wir die Regel etwas erweitern. Zuerst ermitteln wir den aktuellen Dateinamen und Pfad und weisen ihn der Variable “Dateiname” zu. Durch die Option “(False)” wird der Pfad und Dateiname ohne Dateierweiterung “(z.B. .idw) ausgegeben.
Dateiname = ThisDoc.PathAndFileName(False)
Wenn die Datei noch nicht gespeichert wurde, dann gibt es keinen Pfad mit Dateiname und somit ist die Variable leer. Und wenn Sie leer ist, können wir auch keine PDF speichern. Deswegen machen wir jetzt eine Abfrage ob die Variable “Dateiname” leer ist…
If Dateiname = "" Then
… und wenn das der Fall ist, dann soll eine Meldung kommen, das die Datei noch nicht gespeichert ist. Die Meldung wird über den Befehl “Msgbox” ausgegeben. Solche Meldungen, lassen sich einfach über den entsprechenden Assistenten erstellen:
Sollte die Variable “Dateiname” nicht leer sein, dann wird der Befehl unter “Else” ausgeführt. In diesem verwenden wir die Variable “Dateiname” und hängen mittels “& “.pdf” an, da die Variable “Dateiname” den Pfad und Dateinamen ohne Dateierweiterung enthält. EndIf schließt das Programm ab.
Else
ThisDoc.Document.SaveAs(Dateiname & ".pdf" , True)
End If
Schaut am Stück so aus:
Sobald nun die Regel mittels RMT > Regel ausführen gestartet wird, wird aus der IDW eine PDF erstellt.
Einfach, oder?