| | |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | |  | SOLIDWORKS Modellierung komplexer Teile - Online-Live, ein Seminar am 07.07.2026
|
|
Autor
|
Thema: API: 3D-PDF speichern (3780 mal gelesen)
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2580 Registriert: 02.10.2006 Firma: SW 2024-3.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2023-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 16. Apr. 2011 15:50 <-- editieren / zitieren --> Unities abgeben:         
Hallo auch, ich habe in einem Makro eine Routine um das aktive Dokument als PDF zu speichern. Der verwendete Befehl sieht so aus: saveFileName = Verzeichnis1 & FileName & ".pdf" ZeichnungSpeichern.SaveAs2 saveFileName, 0, True, False Dies funktioniert sowohl bei Zeichnungen als auch bei Models. Nun besteht doch die Möglichkeit bei Models auch 3D-PDF´s zu erzeugen. Wie lautet den der Befehl im Makro um so ein 3D-PDF zu erzeugen? Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volkmar Grube Mitglied Konstrukteur
 
 Beiträge: 128 Registriert: 31.01.2009 WIN11 64Bit, SWX 2022, Delphi 10
|
erstellt am: 17. Apr. 2011 10:58 <-- editieren / zitieren --> Unities abgeben:          Nur für Andi Beck
Hallo Andy, such mal in der API-Hilfe nach "IExportPdfData.ExportAs3D" und du musst dann über "IModelDocExtension::SaveAs" sichern. ------------------ Grüße aus Dresden Volkmar Grube Es gibt keine Probleme, es gibt nur Aufgaben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2580 Registriert: 02.10.2006 Firma: SW 2024-3.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2023-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 17. Apr. 2011 11:54 <-- editieren / zitieren --> Unities abgeben:         
Hallo Volkmar, danke für den Hinweis. In der API-Hilfe war ich schon und versuch gerade, die dortigen Hinweise mir zurecht zu Raten, damit sie in meinem Makro integriert werden können. Ich lese mich auch gerade in die "API Grundlagen und Dokumenthandling" von Daniel Bühling ein, damit ich so langsam vom Greenhorn ins erste Lehrjahr aufsteige. An dieser Stelle auch Danke Schön an Daniel Bühling für die deutsche Anleitung. Grüße noch nach Dresden, da war ich zuletzt 1993, lange her. Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volkmar Grube Mitglied Konstrukteur
 
 Beiträge: 128 Registriert: 31.01.2009 WIN11 64Bit, SWX 2022, Delphi 10
|
erstellt am: 17. Apr. 2011 12:39 <-- editieren / zitieren --> Unities abgeben:          Nur für Andi Beck
Ich versuche mal, meinen Delphi-Code in VB-Code zu übertragen (ohne jegliche Garantie, dass das im Detail stimmt). Die Typzuweisungen machen das Ganze ein bisschen transparenter. Dim swApp As SldWorks.SldWorks Dim swmodel As SldWorks.ModelDoc2 dim swExportPDFData as IExportPdfData Set swApp = Application.SldWorks Set swmodel = swApp.ActiveDoc Set swDocExt = swmodel.Extension swExportPDFData = swApp.GetExportFileData(1) swExportPDFData.ExportAs3D = true ok = swModel.Extension.SaveAs(PDFDateiname, 0, 0, swExportPDFData, Fehler, Warnungen) ------------------ Grüße aus Dresden Volkmar Grube Es gibt keine Probleme, es gibt nur Aufgaben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2580 Registriert: 02.10.2006 Firma: SW 2024-3.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2023-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 17. Apr. 2011 15:42 <-- editieren / zitieren --> Unities abgeben:         
Hallo Volkmar, danke für deine Ausführungen, aber es zeichnet sich für mich doch etwas schwerer ab als ich anfangs dachte. Deine beiden Zeilen habe ich wie folgt geändert, da sie Fehlermeldungen verursachten. Dim swApp As SldWorks.SldWorks in Dim swApp As Object Dim swmodel As SldWorks.ModelDoc2 in Dim swmodel As Object Hinzugefügt habe ich folgende Zeile, da nicht deklariert. Dim swDocExt As Object Folgende Zeile verursacht den Fehler siehe Bild 01. dim swExportPDFData as IExportPdfData Ändere ich diese Zeile wie folgt, verursacht es einen Fehler wie in Bild 02 und 03 zu sehen. dim swExportPDFData as Objekt Ich bekomme noch nicht einmal die MsgBox zum laufen, weil Info = swDocExt bzw. = swDocExt.text nicht funktioniert. Dabei ist doch heute Sonntag, da müsste es doch eigentlich klappen. Evtl. fällt dir noch etwas ein. Wenn du möchtest, hänge ich auch das Makro hier rein. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volkmar Grube Mitglied Konstrukteur
 
 Beiträge: 128 Registriert: 31.01.2009 WIN11 64Bit, SWX 2022, Delphi 10
|
erstellt am: 17. Apr. 2011 16:38 <-- editieren / zitieren --> Unities abgeben:          Nur für Andi Beck
Bei mir funktioniert der folgende Code. Die Prozedure saveas scheint in der Realität von der Darstellung in der Hilfe abzuweichen (Fehler "Refby .."). Um die Übergabe zu erzwingen, kann man die Variable aber in eine eigene Klammer setzen. Sub SichereAls3dPDF() Dim swApp As SldWorks.SldWorks Dim swmodel As SldWorks.ModelDoc2 Dim swExportPDFData As IExportPdfData Dim fehler, warnungen As Long Set swApp = Application.SldWorks Set swmodel = swApp.ActiveDoc Set swExportPDFData = swApp.GetExportFileData(1) swExportPDFData.ExportAs3D = True ok = swmodel.Extension.SaveAs("c:\temp\test.pdf", 0, 0, swExportPDFData, (fehler), warnungen) End Sub
------------------ Grüße aus Dresden Volkmar Grube Es gibt keine Probleme, es gibt nur Aufgaben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur

 Beiträge: 2580 Registriert: 02.10.2006 Firma: SW 2024-3.1 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2023-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 17. Apr. 2011 18:24 <-- editieren / zitieren --> Unities abgeben:         
Hallo Volkmar, und es wird doch noch Sonntag... Nach dem ich dein Makro bei mir als separates Makro ausgeführt hatte, konnte ich die Funktion als solches erkennen. Nun ging es an die Implementierung in mein bestehendes Schriftfeldmakro. Als erstes musste ich feststellen, dass ich einen Punkt zuviel gesetzt hatte. (Fehlerteufel) Aber das wichtigste war, dass die SldWorks 2010 Type Library nicht eingebunden war, und ohne geht diese Funktion nicht. Da funktioniert seit Jahren Stefans ausgebautes Schriftfeldmakro ohne, und nun brauche ich die Library, so so. Jetzt funktioniert alles und nun muss ich nur noch eine Checkbox einbinden und das wars dann. Nochmals besten Dank für die Hilfe, U´s sind unterwegs. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3743 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 18. Apr. 2011 00:09 <-- editieren / zitieren --> Unities abgeben:          Nur für Andi Beck
Zitat: Original erstellt von Andi Beck:
Aber das wichtigste war, dass die SldWorks 2010 Type Library nicht eingebunden war, und ohne geht diese Funktion nicht. Da funktioniert seit Jahren Stefans ausgebautes Schriftfeldmakro ohne, und nun brauche ich die Library, so so.
Hallo Andi, den Schalter gibt es laut Hilfe erst seit SolidWorks 2008 SP1. Da kommst Du mit Deiner Type-Library von SolidWorks 97 einfach nicht dran. Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |