Ich ändere gerade ein Makro (pdf_des_comosants_de_lassemblage.swp), das ich im Forum gefunden habe, so, dass es die DWG des MEP und die SAT der Teile, aus denen die Baugruppe besteht, generieren kann. (Ich weiß nicht, ob das möglich ist, aber ist es möglich, dass das Makro für alle Baugruppen, aus denen die Kopfbaugruppe besteht, dasselbe tut?) Ich möchte auch, dass diese Dokumente in den Ordnern " PDF", " DWG " und " SAT " gespeichert werden, die sich in einem " CAD " -Ordner befinden, der sich wiederum im selben Pfad wie die Baugruppe befindet.
Ich bin leider nicht super gut mit VBA, also wende ich mich an Sie in der Hoffnung, dass Sie mir dabei helfen können!
Könnten Sie Ihr Makro hier bearbeiten (kopieren), anstatt es als Download bereitzustellen? (mit den Tags...) Ich bin kein großer Fan von Makros, die direkt heruntergeladen werden können.
Zweitens fehlt uns der Kontext, um Ihnen zu helfen: Haben Ihre Zeichnungen den gleichen Namen wie Ihre 3D-Dateien und befinden sie sich im selben Verzeichnis? Ist es notwendig, den Namen der PDF- und/oder DWG-Dateien mit dem Indexbegriff zu versehen? Wenn Sie über Ihre Baugruppen sprechen, gehören sie auch zum gleichen Repertoire wie die an der Spitze? Ein Beispiel für Ihre Verzeichnishierarchie wäre schön.
Unten ist das Makro zum Speichern von PDFs in meinem "C:":
Sub ShowAllOpenFiles()
Dim swDoc As SldWorks.ModelDoc2
Dim swAllDocs As EnumDocuments2
Dim FirstDoc As SldWorks.ModelDoc2
Dim dummy As Boolean
Dim NumDocsReturned As Long
Dim DocCount As Long
Dim i As Long
Dim sMsg As String
Dim swApp As SldWorks.SldWorks
Dim bDocWasVisible As Boolean
Dim OpenWarnings As Long
Dim OpenErrors As Long
Dim DwgPath As String
Dim myDwgDoc As SldWorks.ModelDoc2
Dim drwPathName As String
Dim pdfPathName As String
Dim pdfFolderName As String
Dim swExportPDFData As SldWorks.ExportPdfData
Dim lErrors As Long
Dim lWarnings As Long
Dim boolstatus As Boolean
Set swApp = Application.SldWorks
Set swAllDocs = swApp.EnumDocuments2
Set FirstDoc = swApp.ActiveDoc
DocCount = 0
swAllDocs.Reset
swAllDocs.Next 1, swDoc, NumDocsReturned
While NumDocsReturned <> 0
bDocWasVisible = swDoc.Visible
'swApp.ActivateDoc swDoc.GetPathName'
DwgPath = swDoc.GetPathName
If (LCase(Right(DwgPath, 3)) <> "drw") And (DwgPath <> "") Then
DwgPath = Left(DwgPath, Len(DwgPath) - 3) & "drw"
Set myDwgDoc = swApp.OpenDoc6(DwgPath, swDocDRAWING, swOpenDocOptions_Silent, "", OpenErrors, OpenWarnings)
If Not myDwgDoc Is Nothing Then
swApp.ActivateDoc myDwgDoc.GetPathName
pdfFolderName = "C:\pdf files\"
Dim fso As Scripting.FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
If (Not fso.FolderExists(pdfFolderName)) Then
MkDir pdfFolderName
'MsgBox (pdfFolderName + " does not exist")
'Exit Sub
End If
Dim Part As ModelDoc2
Set Part = swApp.ActiveDoc()
'You have a drawing active
drwPathName = Part.GetPathName()
If ("" = drwPathName) Then
' GetPathName() was empty
MsgBox ("This drawing has not been saved yet")
Exit Sub
End If
pdfPathName = fso.BuildPath(pdfFolderName, fso.GetBaseName(drwPathName) + ".pdf")
Debug.Print pdfPathName
Set swExportPDFData = swApp.GetExportFileData(1)
swExportPDFData.ViewPdfAfterSaving = False
Part.Extension.SaveAs pdfPathName, 0, 0, swExportPDFData, lErrors, lWarnings
'MsgBox ("PDF file was created")
swApp.QuitDoc (Part.GetTitle)
Set myDwgDoc = Nothing
End If
End If
swAllDocs.Next 1, swDoc, NumDocsReturned
DocCount = DocCount + 1
Wend
swApp.ActivateDoc FirstDoc.GetPathName
End Sub
Alle Abgeordneten haben den gleichen Namen wie das Teil/die Baugruppe. Es gibt einen Hinweis in den Eigenschaften, die ich gerne nach dem Namen des Teils für das PDF, DWG und SAT erscheinen lassen möchte.
Struktur der SOLIDWORKS Dateinamen:
Name-Titel-Beschreibung
PDF,DWG & SAT Namensstruktur:
Name-Hinweis-Titel-Beschreibung.
Hierarchie:
Im Ordner:
Montage1.SLDASM ASEEMBLAGE1.SLDDRW " CAD " -Datei
Im Ordner " CAD ":
PDF-Datei " DWG " -Datei " SAT " Datei Teil1.SLDPRT Teil 1.SLDDRW Teil2.SLDPRT Teil 2.SLDDRW Montage2.SLDASM Montage2.SLDDRW …
Existiert Ihre Vorstellung von " Index " auf Ihren 3Ds? (PDM?) Wenn dies nicht der Fall ist, wird es nicht einfach sein, diese Vorstellung in SAT-Formate zurückzuführen (zumindest ohne mit den MEP-Informationen zu betrügen...) …
Nein, ich habe kein PDM, ich fülle den Begriff des Index in meinen persönlichen Eigenschaften aus und der Index wird in meinem MEP angezeigt. Wäre es nicht möglich, das Makro dazu zu bringen, den Index in den Eigenschaften abzurufen und ihn dann beim Speichern wie bei PDFs und DWGs wie bei PDFs und DWGs als "Name-Index-Titel-Beschreibung" hervorzuheben?