So benennen Sie eine PDF-Datei nach dem Namen der SOLIDWORKS Teilekonfiguration

Hallo

Ich habe ein Makro erstellt, mit dem ich eine Schrittdatei mit dem Namen der Konfiguration des zu speichernden Teils speichern kann. Es funktioniert sehr gut, aber ich möchte das Gleiche mit einem Plan machen, der in PDF gespeichert ist, aber es funktioniert nicht.

Kann mir jemand helfen?

Vielen Dank

PS: Hier ist das Makro zum Speichern im Schrittformat
Datei Speichern unter STEP.swp (41 KB)

Hallo @lucas.bc.41

Wir freuen uns, Sie im Forum zu sehen und Sie willkommen zu heißen.
Ich hoffe, dass wir Ihnen bei der Lösung einiger Probleme helfen können, aber auch, dass wir von Ihrem Wissen und Ihrer Erfahrung profitieren können.

Aufgrund der Feiertage müssen Sie möglicherweise etwas länger warten, um die vollständige Antwort auf Ihre Anfrage zu erhalten :slightly_smiling_face:

Herzliche Grüße

1 „Gefällt mir“

Hallo
Haben Sie, während Sie darauf gewartet haben, dass die Makroexperten auftauchen, die Datenbank durchsucht (Suchleiste oben)? Es gibt Dutzende von Themen rund um Ihre Bedürfnisse. Das könnte Ihre Frage beantworten.

1 „Gefällt mir“

Vor allem fehlt es an Informationen: Wie wird die Zeichnung erstellt? Ein Blatt pro Konfiguration?
Eine einzelne Zeichnung und Sie möchten die Konfiguration des Zeichnungsmodells Konfiguration für Konfiguration ändern und die TGA mit dem Namen der Konfiguration exportieren?
Für einen MEP ist es nicht so einfach wie das Exportieren eines 3D-Modells.
Sie müssen daher Ihren Wunsch klarer erläutern oder eine Datei zum Testen vorschlagen.

1 „Gefällt mir“

Ich habe eine einzelne Zeichnung erstellt, die sich je nach ausgewählter Konfiguration ändert, ich denke, es ist kompliziert, eine Schleife zu erstellen, um eine PDF-Datei für jede der Konfigurationen zu speichern, also möchte ich zuerst nur die aktive Konfiguration speichern. Nachher, wenn es jemand weiß
Wie man eine Schleife macht, wäre toll!

So exportieren Sie eine Zeichnung in eine PDF-Datei: (SOLIDWORKS Zeichnung als PDF-Makro speichern, um den Vorgang zu automatisieren)

Sub main()

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swExportPDFData As SldWorks.ExportPdfData
Dim strFilename As String
Dim status As Boolean
Dim errors As Long, warnings As Long

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

'Save
status = swModel.Save3(swSaveAsOptions_e.swSaveAsOptions_Silent, errors, warnings)

'Export to PDF if it is a drawing
If (swModel.GetType = swDocDRAWING) Then

'Ici la variable strFilename à modifier pour récupérer le nom de la configuration active de la MEP
strFilename = swModel.GetPathName
strFilename = Left(strFilename, Len(strFilename) - 6) & "pdf"
Set swExportPDFData = swApp.GetExportFileData(1)
swModel.Extension.SaveAs strFilename, 0, 0, swExportPDFData, 0, 0

End If

End Sub

So rufen Sie die aktive Konfiguration eines MEP ab:
https://help.solidworks.com/2016/English/api/sldworksapi/Get_Configurations_Referenced_in_View_Example_VB.htm

Dann bleibt nur noch, jede Konfiguration und jede Ansicht des MEP in einer Schleife zu durchlaufen und die Konfigurationsreferenz in jeder Ansicht für die neue gewünschte Konfiguration zu ändern.

5 „Gefällt mir“

@sbadenis

Du bist zu stark! Einfach :star_struck:

Herzliche Grüße

Danke sbadenis!

Ich habe die beiden Makros, die Sie mir gegeben haben, kombiniert, aber ich kann nicht das gewünschte Ergebnis erzielen. Mein Makro debuggt die Zeile "Set swDraw = swModel" und sagt mir, dass Swdraw = Nothing.
Ich verstehe nicht, warum? Hier ist mein modifiziertes Makro.

Sub main()

Dim swApp als SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swExportPDFData As SldWorks.ExportPdfData
Dim strDateiname als Zeichenfolge
Status dimmen: Als boolescher Wert
Dimmfehler As Long, Warnungen As Long
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim bRet als boolescher Wert
Dim swconfig als Zeichenfolge

Legen Sie swApp = Application.SldWorks fest
Festlegen von swModel = swApp.ActiveDoc
Festlegen von swDraw = swModel

Debug.Print "Datei = " & swModel.GetPathName

' Die erste Zeichnungsansicht ist eigentlich das erste Blatt,
" überspringen Sie also das Abrufen des Modellnamens und der Konfiguration von
' das Blatt
Legen Sie swView = swDraw.GetFirstView fest
' Erste Zeichnungsansicht im ersten Blatt abrufen
Legen Sie swView = swView.GetNextView fest
Do While Not swView ist nichts
Debug.Print " Ansicht = " + swView.Name
Debug.Print " Modell = " + swView.GetReferencedModelName
Debug.Print " Config = " + swView.ReferencedConfiguration

' Récupérez le nom de la configuration active de la vue en cours de traitement
swconfig = swView.ReferencedConfiguration

Legen Sie swView = swView.GetNextView fest
Schleife
"Retten
status = swModel.Save3(swSaveAsOptions_e.swSaveAsOptions_Silent, Fehler, Warnungen)

'Exportieren in PDF, wenn es sich um eine Zeichnung handelt
Wenn (swModel.GetType = swDocDRAWING) dann
• Generieren Sie den Namen der PDF-Datei mit dem Namen der aktiven Konfiguration
strDateiname = swModel.GetPathName
strDateiname = Links(strDateiname, Len(strDateiname) - 6) & swconfig & ".pdf"
Set swExportPDFData = swApp.GetExportFileData(1)
swModel.Extension.SaveAs strDateiname, 0, 0, swExportPDFData, 0, 0
Ende, wenn

Ende Sub

Wenn jemand weiß, wo das Problem liegt, würde ich mich freuen!

PS: Ich fange seit letzter Woche in Macro an, ich habe noch nicht alle Grundlagen

Hallo

Dumme Frage, aber man weiß nie, ist wirklich eine Datei offen? Und ist es wirklich eine Zeichnung?

2 „Gefällt mir“

Hallo

Kein Problem mit der Zeile, die angezeigt wird, wenn ein Zeichnungsdokument geöffnet ist, wie von Cyril.f angezeigt.
Um das Makro funktionsfähig zu machen, habe ich nur eine Änderung vorgenommen:
In Bezug auf das Speichern im PDF-Format müssen Sie die Leerzeichen in der Dateinamenerweiterung entfernen: ".pdf" anstelle von ".pdf"...
Solidworks verwendet diese Erweiterung, um das erwartete Format zu erkennen, hier pdf.

Zeile 43:
strDateiname = Links(strDateiname, Len(strDateiname) - 6) & swconfig & ".pdf"

Und Vorsicht vor den Anführungszeichen im Texteditor des myCAD-Forums, sie werden unterschiedlich interpretiert, je nachdem, was sie rahmen...

Herzliche Grüße.

1 „Gefällt mir“

In der Tat, alles ist in Ordnung! Ich hatte ein Zimmer und einen offenen Raum, vielleicht dafür...
Alles, was ich tun muss, ist die Schleife zu machen, aber ich weiß nicht, ob das möglich ist, weil der Maßstab an die Größe des Raumes angepasst werden muss

Andernfalls habe ich dieses Makro gefunden, das jede Zeichnung aus einem MEP erstellt:

Dies kann Ihnen helfen, voranzukommen, aber für die Skalierung ist es komplizierter:

Wenn Sie es schaffen, all dies in einem Makro zu kombinieren, bedeutet dies, dass Sie in Ihrem Fortschritt einen guten Fortschritt gemacht haben.
Auf der anderen Seite fängt es sehr kompliziert an.

2 „Gefällt mir“

Oh ja, es fängt an, toll auszusehen! Danke für all das, ich werde sehen, was ich tun kann