Makro dla części PDF, DWG i SAT/mep zespołu

Cze wszystkim

Obecnie modyfikuję makro (pdf_des_comosants_de_lassemblage.swp), które znalazłem na forum, aby mogło generować DWG mepa i SAT części składających się na zespół. (Nie wiem, czy jest to możliwe, ale czy jest możliwe, aby makro zrobiło to samo dla wszystkich zespołów składających się na zespół głowicy?)
Chcę również, aby te dokumenty były zapisane w folderach " PDF", " DWG " i " SAT ", które znajdują się w folderze " CAD ", który sam znajduje się w tej samej ścieżce co montaż.

Niestety nie jestem super dobry z VBA, więc zwracam się do Ciebie z nadzieją, że możesz mi w tym pomóc!

Z góry dziękujemy!

pdf_des_composants_de_lassemblage.swp (54 KB)

Witam;

Czy mógłbyś edytować (skopiować) swoje makro tutaj, zamiast udostępniać je do pobrania?
(za pomocą tagówimage...) Nie jestem wielkim fanem makr do bezpośredniego pobierania.

Po drugie, brakuje nam kontekstu, który mógłby Ci pomóc:
Czy Twoje rysunki mają taką samą nazwę jak pliki 3D i czy znajdują się w tym samym katalogu?
Czy konieczne będzie dodanie pojęcia indeksu do nazwy plików PDF i/lub DWG?
Kiedy mówisz o swoich podzespołach, to czy są one również w tym samym repertuarze, co ten na górze?
Przydałby się przykład hierarchii katalogów.

Pozdrowienia.

1 polubienie

Witam

Dziękuję za szybką odpowiedź!

Poniżej znajduje się makro do zapisywania plików pdf w moim "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

Wszystkie instalacje mają taką samą nazwę jak część/złożenie.
We właściwościach jest pojęcie wskazówki, którą chciałbym, aby pojawiła się po nazwie części dla plików PDF, DWG I SAT.

Struktura nazw plików solidworks:

Nazwa-Tytuł-Opis

Struktura nazw PDF, DWG i SAT:

Nazwa-Wskazówka-Tytuł-Opis.

Hierarchia:

W folderze:

Montaż1.SLDASM
Aseemblage1.SLDDRW powiedział:
Plik " CAD "

W folderze " CAD ":

Plik PDF  
Plik " DWG "
Plik " SAT "
Część 1.SLDPRT
Część 1.SLDDRW
Część 2.SLDPRT
Część 2.SLDDRW
Montaż2.SLDASM
Montaż2.SLDDRW

Nie ma zbyt wiele czasu na robienie dev, ale w tym temacie znajdziesz odpowiedzi na temat modyfikacji ścieżek eksportu.
Edit: z linkiem jest lepiej... :rofl:

Czy twoje pojęcie " indeksu " istnieje na twoich 3D-ach? (PDM?)
Jeśli tak nie jest, nie będzie łatwo przywrócić to pojęcie do formatów SAT (przynajmniej bez oszukiwania z informacjami o pośle...)…

Nie, nie mam PDM, wpisuję pojęcie indeksu w moich właściwościach osobistych, a indeks jest wyświetlany na moim europsie.
Czy nie byłoby możliwe, aby makro pobrało indeks we właściwościach, a następnie w momencie zapisywania było podświetlone jako: "Nazwa-Indeks-Tytuł-Opis", jak dla plików PDF i DWG?

Tutaj znajdziesz przykład, jak dodać właściwości do nazw plików PDF i innych formatów.