Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makrohilfe: save model as 3Dpdf

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Dassault Systèmes auf der Hannover Messe 2024 (kostenlose Tickets verfügbar)
Autor Thema:  Makrohilfe: save model as 3Dpdf (2002 mal gelesen)
gearloose7
Mitglied
Techniker


Sehen Sie sich das Profil von gearloose7 an!   Senden Sie eine Private Message an gearloose7  Schreiben Sie einen Gästebucheintrag für gearloose7

Beiträge: 95
Registriert: 26.08.2010

Windows 10 x64 Pro for Workstations
3,1GHz 32GB
NVidia Quadro P5200
SWX2021 SP5.1
Office 365 Pro
Draftsight 2021

erstellt am: 16. Mai. 2017 08:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo liebe Gemeinde,


Ich möchte mir ein Makro basteln, welches mir ein geöffnetes Model (part oder assembly) als 3D pdf abspeichert. Ich scheitere momentan daran, dass ich nicht weiß wie ich den kleinen Hacken in der Windows-Box für 3Dpdf ansprechen kann. Hab auch schon je ein Makro speichern als pdf und speichern als 3Dpdf gespeichert und verglichen. Es scheint hier keinen Unterschied im Makro zu geben. Allerdings verhalten sich auch beide Makros gleich (= beide speichern nur im 2Dpdf ab). Wie komm ich per makro an meine 3Dpdf Option?

Bitte um Hilfe.
Hier meine aufgezeichneten makros
' ######## pdf

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
longstatus = Part.SaveAs3("D:\00\09_BW xxxxx.PDF", 0, 0)
End Sub

' ######## 3Dpdf
Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
longstatus = Part.SaveAs3("D:\00\09_BW xxxxx.PDF", 0, 0)
End Sub

Danke
lg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HenryV
Mitglied
Konstrukteur, Engineering


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 16. Mai. 2017 09:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für gearloose7 10 Unities + Antwort hilfreich

Hallo

Dafür musst du die Eigenschaft "ExportAs3D" im "ExportPdfData"-Objekt auf True setzten.
Siehe auch IExportPdfData Interface

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

gearloose7
Mitglied
Techniker


Sehen Sie sich das Profil von gearloose7 an!   Senden Sie eine Private Message an gearloose7  Schreiben Sie einen Gästebucheintrag für gearloose7

Beiträge: 95
Registriert: 26.08.2010

Windows 10 x64 Pro for Workstations
3,1GHz 32GB
NVidia Quadro P5200
SWX2021 SP5.1
Office 365 Pro
Draftsight 2021

erstellt am: 16. Mai. 2017 09:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank für den Hinweis. Da ich aber kein Makroprogrammierer bin, hab ich noch keine Ahnung wie ich das in mein Makro einbauen kann.

lg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 16. Mai. 2017 11:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für gearloose7 10 Unities + Antwort hilfreich

Hallo,

hier mal ganz quick 'n' dirty aus der API Hilfe kopiert und leicht modifiziert.
-Namensgebung für die PDF analog dem Modell- / Baugruppennamen via Holzhammermethode "Replace" 
-Pfad für die PDF ist der Pfad von dem Modell / der Baugruppe
-vorhandene Datein werden radikal überbügelt
-Zeichnungen werden ignoriert

Code:
Option Explicit

    Dim swApp               As SldWorks.SldWorks
    Dim swModel             As SldWorks.ModelDoc2
    Dim swModelDocExt       As SldWorks.ModelDocExtension
    Dim swExportPDFData     As SldWorks.ExportPdfData
    Dim boolstatus          As Boolean
    Dim filename            As String
    Dim lErrors             As Long
    Dim lWarnings           As Long

Sub main()

    Set swApp = Application.SldWorks
    swApp.Visible = True

    Set swModel = swApp.ActiveDoc
    Set swModelDocExt = swModel.Extension
    Set swExportPDFData = swApp.GetExportFileData(1)

    swExportPDFData.ExportAs3D = True
    swExportPDFData.ViewPdfAfterSaving = True
   
    filename = swModel.GetPathName()
   
    If swModel.GetType = swDocPART Then
        filename = Replace(filename, ".SLDPRT", ".PDF")
    ElseIf swModel.GetType = swDocASSEMBLY Then
        filename = Replace(filename, ".SLDASM", ".PDF")
    Else
        boolstatus = MsgBox("Kein 3D Model aktiv", vbOKOnly)
        Exit Sub
    End If
   
    boolstatus = swModelDocExt.SaveAs(filename, 0, 0, swExportPDFData, lErrors, lWarnings)

End Sub


Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 16. Mai. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 16. Mai. 2017 11:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für gearloose7 10 Unities + Antwort hilfreich

Hallo gearloose7

Zitat:
Original erstellt von gearloose7:
Da ich aber kein Makroprogrammierer bin, hab ich noch keine Ahnung wie ich das in mein Makro einbauen kann.

Dann wäre es doch eine gute Gelegenheit sich damit auseinander zu setzen. Siehe auch OT: Makros, oder meine Hinweise zu solchen Fragen wie hier als Vorschlag oder hier als Erklärung.

Als Ansatz vielleicht so viel:

Code:

    ' Deklarationen musst du noch machen

    Set swApp = Application.SldWorks
    Set ModelDoc = swApp.ActiveDoc
    Set ModelDocExt = ModelDoc.Extension
   
    ' set ExportAs3D to true via ExportPDFData object
    Set ExportPDFData = swApp.GetExportFileData(1)   ' swExportPdfData = 1
    ExportPDFData.ExportAs3D = True
   
    ' den Namen für das §d-PDF festlegen oder irgendwie ermitteln, zusammensetzen, was auch immer
    filename = "c:\temp\3dpdf-test.pdf"

    ' and save the model
    If ModelDocExt.SaveAs(filename, 0, 0, ExportPDFData, errors, warnings) Then
        'MsgBox filename & " saved successfully"
    else
        'MsgBox "Ups, Fehler"
    endif



Das ist so kein lauffähiges Makro, ein paar Deklarationen fehlen und müssen dazu gemacht werden und den Dateinamen setzt du dir vermutlich auch anders zusammen, aber in dem Codeschnipsel hast du zumindest alles drin, wie du das mit dem 3D-PDF Export machen musst.

Ciao,
Stefan


------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

gearloose7
Mitglied
Techniker


Sehen Sie sich das Profil von gearloose7 an!   Senden Sie eine Private Message an gearloose7  Schreiben Sie einen Gästebucheintrag für gearloose7

Beiträge: 95
Registriert: 26.08.2010

Windows 10 x64 Pro for Workstations
3,1GHz 32GB
NVidia Quadro P5200
SWX2021 SP5.1
Office 365 Pro
Draftsight 2021

erstellt am: 16. Mai. 2017 14:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,
Hallo Stefan,

Vielen dank erst mal für eure Hilfe.
Ich werde das ganze in den nächsten Tagen ergänzen und probieren.

Gruß
Gyro

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

gearloose7
Mitglied
Techniker


Sehen Sie sich das Profil von gearloose7 an!   Senden Sie eine Private Message an gearloose7  Schreiben Sie einen Gästebucheintrag für gearloose7

Beiträge: 95
Registriert: 26.08.2010

Windows 10 x64 Pro for Workstations
3,1GHz 32GB
NVidia Quadro P5200
SWX2021 SP5.1
Office 365 Pro
Draftsight 2021

erstellt am: 17. Mai. 2017 11:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


ExportAs.zip

 
Hi,

Hab es jetzt probiert. Das makro von Bernd funktioniert.
Eigentlich will ich ein anderes makro (Makro 16 von Thomas Weith [URL=http://solidworks.cad.de/mm_boerse02.htm][/URL] ) so gestalten, dass bei der pdf Option im ersten Schritt ein 3Dpdf exportiert wird und später einmal ergänzt um die Auswahlmöglichkeit 3Dpdf oder nicht.

Leider hab ich zu wenig Erfahrung in Makroprogrammierung um das umsetzen zu können. Im Anhang mal das Makro, welches adaptiert werden soll. Ich check auch die zusammenhänge nicht wirklich (einmal heißt es bRet und dann wieder boolstatus. Kann das frei definiert werden oder was....) 

Ich hab mal einen codeschnipsel vom funktionierendem Bernd-makro in mein makro kopiert. Ich bin gescheitert, da ich auch nicht weiß, wie ich die ganzen Zuweisungen (Deklarationen?) anpassen muß.

lg
Gyro

edit: wollte den link zu Makro 16 geradebiegen, schaff nicht mal das ....

[Diese Nachricht wurde von gearloose7 am 17. Mai. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bk.sc
Ehrenmitglied V.I.P. h.c.
Konstrukteur Sondermaschinenbau



Sehen Sie sich das Profil von bk.sc an!   Senden Sie eine Private Message an bk.sc  Schreiben Sie einen Gästebucheintrag für bk.sc

Beiträge: 2776
Registriert: 18.07.2012

-Solid Works 2019 SP5
-Pro Engineer WF 3

erstellt am: 19. Mai. 2017 11:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für gearloose7 10 Unities + Antwort hilfreich


ExportAs-MOD.swp.txt

 
Hallo Gyro,

hab das Makro mal erweitert, weil ich das eine interrsante Aufgabe fand.

Leider musste ich im Macro etwas pfuschen, weil ich beim speichern als 3D PDF immer einen Error bei der SaveAs-Methode zurück bekomme obwohl die Datei meines erachtens problemlos erstellt wird. Hab daher die Fehlerbenachrichtigung an den Anwender für diesen einen Fall (Exporttype = 3D PDF + Errorrückgabewert = 1) umgangen.

Ich habe jetzt nicht alle Einstellmöglichkeiten / Kombinationen auf funktionalität überprüft aber eigentlich sollte es laufen.

Beim Anhang ".txt" entfernen und testen. 

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Entwicklungsingenieur / Konstruktionsingenieur E-Bike Systeme (m/w/d)

TQ steht für Technologie in Qualität. Dafür steht jeder unserer 2.200 Mitarbeiter. In unserem Geschäftsbereich TQ-Drives entwickeln und produzieren wir Antriebssysteme, die in Gewicht, Größe, Leistung und Effizienz einzigartig sind. Das Herzstück unserer Systeme sind Motoren und Getriebe. Diese kombinieren wir optimal mit weiteren Komponenten und schaffen so unvergleichliche Produkte für unsere Kunden....

Anzeige ansehenEntwicklung
gearloose7
Mitglied
Techniker


Sehen Sie sich das Profil von gearloose7 an!   Senden Sie eine Private Message an gearloose7  Schreiben Sie einen Gästebucheintrag für gearloose7

Beiträge: 95
Registriert: 26.08.2010

Windows 10 x64 Pro for Workstations
3,1GHz 32GB
NVidia Quadro P5200
SWX2021 SP5.1
Office 365 Pro
Draftsight 2021

erstellt am: 19. Mai. 2017 11:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Bernd,


Vielen, vielen dank. Genau das hab ich gesucht. Übersteigt leider derzeit noch meinen Horizont, aber ich bin dran .... 

Gruß
Gyro

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz