Jak nazwać plik pdf za pomocą nazwy konfiguracji części solidworks

Witam

Stworzyłem makro, które pozwala mi zapisać plik kroku z nazwą konfiguracji części do zapisania. Działa bardzo dobrze, ale chcę zrobić to samo z planem zapisanym w formacie pdf, ale to nie działa.

Czy ktoś mógłby mi pomóc?

Dziękuję

PS: Oto makro do zapisania w formacie krokowym
Zapisz plik jako STEP.swp (41 KB)

Witaj @lucas.bc.41

Miło mi widzieć Cię na forum i witać.
Mam nadzieję, że pomożemy Ci rozwiązać niektóre problemy, ale także, że skorzystamy z Twojej wiedzy i doświadczenia.

Biorąc pod uwagę święta, być może będziesz musiał poczekać trochę dłużej, aby uzyskać pełną odpowiedź na swoje zapytanie :slightly_smiling_face:

Pozdrowienia

1 polubienie

Witam
Czy czekając na pojawienie się ekspertów od makr, przeszukałeś bazę danych (pasek wyszukiwania u góry)? Tematów dotyczących Twoich potrzeb są dziesiątki. To może odpowiedzieć na twoje pytanie.

1 polubienie

Przede wszystkim brakuje informacji: jak wykonuje się rysunek? Jeden arkusz na konfigurację?
Pojedynczy rysunek i chcesz zmienić konfigurację modelu rysunku konfiguracji według konfiguracji i wyeksportować instalację z nazwą konfiguracji?
W przypadku MEP nie jest to tak proste, jak eksport modelu 3D.
W związku z tym będziesz musiał jaśniej wyjaśnić swoje życzenie lub zaproponować plik do testów.

1 polubienie

Zrobiłem pojedynczy rysunek, który zmienia się zgodnie z wybraną konfiguracją, myślę, że skomplikowane jest utworzenie pętli do zapisania pliku pdf dla każdej z konfiguracji, więc najpierw chcę po prostu zapisać aktywną konfigurację. Po jeśli ktoś wie
Jak zrobić pętlę byłoby świetne!

Aby wyeksportować rysunek do formatu PDF: (Zapisz makro rysunku SOLIDWORKS w formacie PDF, aby zautomatyzować proces)

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

Aby pobrać aktywną konfigurację instalacji instalacji:
https://help.solidworks.com/2016/English/api/sldworksapi/Get_Configurations_Referenced_in_View_Example_VB.htm

Następnie pozostaje zapętlić każdą konfigurację i zapętlić każdy widok MEP oraz zmienić odniesienie do konfiguracji w każdym widoku dla nowej żądanej konfiguracji.

5 polubień

@sbadenis

Jesteś zbyt silny! Po prostu :star_struck:

Pozdrowienia

Dziękuję sbadenis!

Połączyłem dwa makra, które mi dałeś, ale nie mogę uzyskać pożądanego rezultatu. Moje makro debuguje wiersz "Set swDraw = swModel" i informuje mnie, że Swdraw = Nothing.
Nie rozumiem dlaczego? Oto moje zmodyfikowane makro.

Sub main()

Dim swApp jako SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swExportPDFData As SldWorks.ExportPdfData
Dim strFilename As Ciąg
Stan przyciemnienia Jako wartość logiczna
Domyślne błędy Tak długo, ostrzeżenia Tak długo
Dim swDraw jako SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim bRet As Boolean
Dim swconfig As String

Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc
Ustaw swDraw = swModel

Debug.Print "Plik = " & swModel.GetPathName

' Pierwszy widok rysunku jest w rzeczywistości pierwszym arkuszem,
' więc pomiń pobieranie nazwy modelu i konfiguracji z
' arkusz
Ustaw swView = swDraw.GetFirstView
' Pobierz pierwszy widok rysunku w pierwszym arkuszu
Ustaw swView = swView.GetNextView
Zrób Póki Nie SwView To Nic
Debug.Print " Widok = " + swView.Name
Debug.Print " Model = " + 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

Ustaw swView = swView.GetNextView
Pętla
"Zapisz
status = swModel.Save3(swSaveAsOptions_e.swSaveAsOptions_Silent, błędy, ostrzeżenia)

'Eksportuj do pliku PDF, jeśli jest to rysunek
Jeśli (swModel.GetType = swDocDRAWING) Następnie
• Wygeneruj nazwę pliku PDF, używając nazwy aktywnej konfiguracji
strFilename = swModel.GetPathName
strFilename = Left(strFilename, Len(strFilename) - 6) & swconfig & ".pdf"
Ustaw swExportPDFData = swApp.GetExportFileData(1)
swModel.Extension.SaveAs strFilename, 0, 0, swExportPDFData, 0, 0
Zakończ jeżeli:

Koniec subwoofera

Jeśli ktoś wie, gdzie jest problem, byłbym zachwycony!

PS: Zaczynam w Makro od zeszłego tygodnia, nie mam jeszcze wszystkich podstaw

Witam

Głupie pytanie, ale nigdy nie wiadomo, czy naprawdę jest otwarty plik? I czy na pewno jest to rysunek?

2 polubienia

Witam

Nie ma problemu z linią wskazywaną, jeśli dokument rysunku jest otwarty, jak wskazuje Cyril.f.
Aby makro było funkcjonalne, dokonałem tylko jednej modyfikacji:
Jeśli chodzi o zapisywanie w formacie PDF, należy usunąć spacje w rozszerzeniu nazwy pliku: ".pdf" zamiast ".pdf"...
Solidworks używa tego rozszerzenia do rozpoznawania oczekiwanego formatu, w tym przypadku pdf.

Wiersz 43:
strFilename = Left(strFilename, Len(strFilename) - 6) & swconfig & ".pdf"

I uważaj na cudzysłowy w edytorze tekstu na forum myCAD, są one interpretowane w zmienny sposób w zależności od tego, co oprawiają...

Pozdrowienia.

1 polubienie

Rzeczywiście, wszystko jest w porządku! Miałam pokój i otwarty plan, może po to...
Jedyne, co muszę zrobić, to zrobić pętlę, ale nie wiem, czy to możliwe, ponieważ skala musi być dostosowana do wielkości pomieszczenia

W przeciwnym razie znalazłem to makro, które tworzy każdy rysunek z MEP:

Może to pomóc w przejściu do przodu, ale w przypadku skalowania jest to bardziej skomplikowane:

Jeśli uda Ci się połączyć to wszystko w makro, oznacza to, że poczyniłeś duże postępy w swoich postępach.
Z drugiej strony zaczyna się to bardzo skomplikowane.

2 polubienia

O tak, zaczyna wyglądać świetnie! Dziękuję za to wszystko, zobaczę co mogę zrobić