Autor
|
Thema: Macro zum speichern von Drawings als PDF (5805 mal gelesen)
|
reipet Mitglied
Beiträge: 115 Registriert: 12.10.2004 Intel Xeon 4*2,3GHz 6 GB RAM, Quadro FX 4800 Windows Vista 64bit R19SP3 HotFix34
|
erstellt am: 14. Apr. 2010 09:01 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich suche ein Makro um mehrere Zeichnungen als PDF abzuspeichern. Der Dateiname soll dem der Zeichnung entsprechen. Ein anzuhängendes Präfix wäre von Vorteil ist aber kein Muss. Optional wäre die Auswahl eines Zielverzeichnisses sehr nützlich. Hat evtl. jemand was dazu? THX ------------------ CATIA = Close And Try It Again Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 14. Apr. 2010 09:06 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
|
reipet Mitglied
Beiträge: 115 Registriert: 12.10.2004 Intel Xeon 4*2,3GHz 6 GB RAM, Quadro FX 4800 Windows Vista 64bit R19SP3 HotFix34
|
erstellt am: 14. Apr. 2010 09:41 <-- editieren / zitieren --> Unities abgeben:
|
reipet Mitglied
Beiträge: 115 Registriert: 12.10.2004 Intel Xeon 4*2,3GHz 6 GB RAM, Quadro FX 4800 Windows Vista 64bit R19SP3 HotFix34
|
erstellt am: 14. Apr. 2010 09:59 <-- editieren / zitieren --> Unities abgeben:
|
MICHLICK Mitglied CAD Methodik Entwickler (CATIA; NX)
Beiträge: 454 Registriert: 20.06.2001 Der Aufwand bei Änderungen ist groß, wenn die Finger schneller klicken als das Gehirn denkt.
|
erstellt am: 14. Apr. 2010 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
Da wäre jetzt der Code hilfreich. Speziell die Zeile 38. Habe es mir aber gerade selber runter geladen. Da steht: Code: Set drawingSheet1 = drawingSheets1.Item("Blatt .1")
Das heisst, das Skript sucht nach einem Sheet mit dem Namen "Blatt .1" Ich vermute das es in Deiner Drawing kein solches Sheet existiert und deshalb tritt dieser Fehler auf. ------------------ Gruß Michael B. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
reipet Mitglied
Beiträge: 115 Registriert: 12.10.2004 Intel Xeon 4*2,3GHz 6 GB RAM, Quadro FX 4800 Windows Vista 64bit R19SP3 HotFix34
|
erstellt am: 14. Apr. 2010 11:08 <-- editieren / zitieren --> Unities abgeben:
|
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 14. Apr. 2010 11:26 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
|
reipet Mitglied
Beiträge: 115 Registriert: 12.10.2004 Intel Xeon 4*2,3GHz 6 GB RAM, Quadro FX 4800 Windows Vista 64bit R19SP3 HotFix34
|
erstellt am: 14. Apr. 2010 11:45 <-- editieren / zitieren --> Unities abgeben:
|
Axel.Strasser Ehrenmitglied V.I.P. h.c. Selbstständig im Bereich PLM/CAx
Beiträge: 4107 Registriert: 12.03.2001 Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!
|
erstellt am: 14. Apr. 2010 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
|
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 14. Apr. 2010 12:04 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
|
reipet Mitglied
Beiträge: 115 Registriert: 12.10.2004 Intel Xeon 4*2,3GHz 6 GB RAM, Quadro FX 4800 Windows Vista 64bit R19SP3 HotFix34
|
erstellt am: 12. Mai. 2010 09:17 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal, hat alles super funktioniert. Danke! Ne kleine Frage hätte ich aber noch: Das mit dem DWG vorne an stellen hat funktioniert, wenn ich aber noch ein "-A" hinten anfügen will, wie mache ich das? Die selbe Vorgehensweise wie beim "DWG" funktioniert nicht. THX! ---> Habs gefunden! ------------------ CATIA = Close And Try It Again
[Diese Nachricht wurde von reipet am 12. Mai. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joerneman Mitglied Konstrukteur
Beiträge: 140 Registriert: 19.07.2009 Catia V5 R28,29 Intel i7-2600 Quadro 2000 16GB RAM Win7-64bit
|
erstellt am: 17. Jan. 2014 14:28 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
Hallo zusammen, ich wollte kein extra Thema aufmachen und schreibe es deshalb hier rein. Habe mir mit hilfe von hier: http://ww3.cad.de/foren/ubb/Forum133/HTML/009235.shtml Ein Makro gebastelt das alle Zeichnungen aus einem Verzeichnis in pdf umwandelt. Code:
Sub CATMain() '**************************Verzeichnis auswählen********************************************** Dim sShell Dim Ordner Set sShell = CreateObject("Shell.Application") Ordner = sShell.BrowseForFolder(0, "Ordner der Zeichnung auswählen", 0).Self.Path 'alle Drawings in einem Verzeichnis als PDF speichern Set Documents = CATIA.Documents
nr1 = Ordner + "\" nr = nr1 + "*.CATDrawing*" 'MsgBox (nr1) 'MsgBox (nr) MyFile = Dir(nr) MyFile1 = nr1 + MyFile 'MsgBox (MyFile1) While MyFile <> "" Documents.Open (MyFile1) Dim specsAndGeomWindow As specsAndGeomWindow Set specsAndGeomWindow = CATIA.ActiveWindow MyFile = Dir Dim drawingDocument As drawingDocument Set drawingDocument = CATIA.ActiveDocument Dim win As String Dim product As product win = CATIA.ActiveWindow.Name win1 = Split(win, ".") win = win1(0) win = nr1 & win & ".pdf" drawingDocument.ExportData win, "pdf" ' Save multisheet Document in a single Vectorial file , Haken entfernen, dann wird je Sheet ein PDF erzeugt CATIA.ActiveDocument.Close MyFile1 = nr1 + MyFile Wend MsgBox ("Makro Beendet") '**********************Pdf suchen und löchen des Detailblätter************************* 'nr1 = Ordner + "\" 'nr = nr1 + "*.pdf*" 'MsgBox (nr1) 'MsgBox (nr) 'MyFile = Dir(nr) 'MyFile1 = nr1 + MyFile 'MsgBox (MyFile1) 'CATIA.FileSystem.DeleteFile (MyFile1) End Sub
Da ich bei jedem Drawing immer ein Detailblatt mit dabei habe würde ich diese gerne gleich nachdem das Makro durchgelaufen ist aus dem Verzeichnis löschen. Da bei beispielsweise 35 Drawings auch 35 Detailblätter wären. Eine bestimmte Datei löschen geht ja mit:
Code: CATIA.FileSystem.DeleteFile (...)
Jetzt würde ich gerne Das Verzeichnis Durchsuchen. Die Detailblätter heissen immer ...(Detail).pdf Würde gerne prüfen ob in dem Namen der pdf "Detail" vorkommt und diese dann löschen. Über Vorschläge und Tipps würde ich mich sehr freuen. Schönes Wochenende. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11849 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 17. Jan. 2014 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
Servus Du kannst zB zum 2. mal alle Dateien im Verzeichnis durcharbeite, prüfen ob um Dateinamen zB "pdf" und "Detail" vorkommt und dann die entsprechende Datei löschen. Anbei ein Beispiel mit etwas angepasstem Code: Code: Sub CATMain()Dim sShell As Object Dim strFolder As String Dim File As File Dim Folder As Folder Dim DrwDoc As drawingDocument Dim strFileName As String '**************************Verzeichnis auswählen********************************************** Set sShell = CreateObject("Shell.Application") strFolder = sShell.BrowseForFolder(0, "Ordner der Zeichnung auswählen", 0).self.path Set Folder = CATIA.FileSystem.GetFolder(strFolder) '**************************alle CATDrawings öffnen una als PDF speichern********************** For Each File In Folder.Files 'Schleife über alle Dateien im Vezeichnis If Right(File.Name, 11) = ".CATDrawing" Then 'wenn es eine CATDrawing ist Set DrwDoc = CATIA.Documents.Open(File.path) 'Datei öffnen strFileName = Left(File.path, Len(File.path) - 11) & ".pdf" 'Dateinamen bilden DrwDoc.ExportData strFileName, "pdf" 'Datei exportiernen DrwDoc.Close 'Datei schliessen End If Next '**************************Verzeichnis bereinigen********************************************* For Each File In Folder.Files 'Schleife über alle Dateien im Vezeichnis If Right(File.Name, 3) = "pdf" And InStr(File.Name, "Detail") <> 0 Then 'wenn Endung "pdf" und im Name "Detail" vorkommt CATIA.FileSystem.DeleteFile File.path 'Datei löschen End If Next End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DasDon Mitglied Konstruktuer
Beiträge: 169 Registriert: 25.07.2011 R18 SP2. WIN
|
erstellt am: 17. Jan. 2014 21:01 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
moin moin, benutze doch shcon vor dem exportieren eine abfrage ob das sheet eine Detail sheet ist. Objekt drawingSheet Method IsDetail ist evtl schneller. Gruß ------------------ wer ist diese Catia und wo kann ich sie finden? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11849 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 17. Jan. 2014 21:15 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
Servus DasDon Müsste man dann nicht über die Druckfunktion das pdf erzeugen, oder wie ließe sich das realisieren? (bzw wie kann man einzelne Seiten als pdf ausgeben) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 17. Jan. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joerneman Mitglied Konstrukteur
Beiträge: 140 Registriert: 19.07.2009 Catia V5 R28,29 Intel i7-2600 Quadro 2000 16GB RAM Win7-64bit
|
erstellt am: 18. Jan. 2014 12:46 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
Hallo, Vielen dank für die schnellen antworten und Tipps. @bgrittman Genau das ist das was ich gesucht habe, danke werde es am Montag gleich mit einbauen und testen. @DasDon Das war auch eine Überlegung von mir, ich weiss allerdings nicht wie man ein einzelnes sheet als PDF speichert, ich kenne nur die Funktion, dass das gesamte Drawing als PDF exportiert wird. Kann man denn das Öffnen und speichern der Datei auch im Hintergrund laufen lassen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DasDon Mitglied Konstruktuer
Beiträge: 169 Registriert: 25.07.2011 R18 SP2. WIN
|
erstellt am: 20. Jan. 2014 07:57 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
Moin, sollte wohl das kommentieren am Freitag abend unterlassen. Natürlich hat Bernd recht. Es müsste dann mit .PrintOut gemacht werden. Was aber etwas umständlicher ist und länger bräuchte. Gruß, ------------------ wer ist diese Catia und wo kann ich sie finden? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ogard1 Mitglied Verfahrenstechniker
Beiträge: 442 Registriert: 12.09.2004 R19 SP2
|
erstellt am: 20. Jan. 2014 17:39 <-- editieren / zitieren --> Unities abgeben: Nur für reipet
Hallo Bernd, ich habe zur Zeit keine Catia, aber vor einiger Zeit hatten wir das Thema schon mal diskutiert. [URL=http://ww3.cad.de/foren/ubb/uploads/ogard1/DrawingsToPdf_3.txt][/URL] Gruß Drago [Diese Nachricht wurde von ogard1 am 20. Jan. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |