Tutaj szukam trochę makra, aby z jednej strony zautomatyzować nagrywanie w 3D pdf. Problem polega na tym, że w tej samej części mam kilka configów. Mam już makro do niezależnego zapisywania wszystkich arkuszy planu w formacie pdf, ale nie mogę przepisać tego kodu dla konfiguracji. Może ktoś zna linię/linie, które musiałyby zostać zmienione, aby to zadziałało. Wyślę ci mój kod.
Dla mnie wszystkie funkcje arkusza powinny zostać zastąpione funkcjami konfiguracyjnymi, ale nie znam na to linii. Jeśli dobra dobroczynna dusza się nudzi, a może mi pomóc, jestem biorcą ;)
'Option Explicit
Sub main()
'Sauvegarde en PDF3D toutes les configurations.
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swConfigMgr As SldWorks.ConfigurationManager
Dim swConfig As SldWorks.Configuration
Dim vConfigName As Variant
Dim stnameConfig As String
Dim vConfigNameArr As Variant
Dim ConfCount As Variant
Dim X As Variant
Dim i As Integer
Dim Chemin As String
Dim PDF3dPath As String
Dim status As Boolean
Dim swExportPDFData As SldWorks.ExportPdfData
Dim ExportAs3D As Boolean
Dim lErrors As Long
Dim lWarnings As Long
Set swApp = Application.SldWorks
'on récupére le document actif
Set swModel = swApp.ActiveDoc
Set swConfigMgr = swModel.ConfigurationManager
'on récupére la configuration active
Set swConfig = swConfigMgr.ActiveConfiguration
'on récupére de nom de la configation active
stnameConfig = swConfig.Name
'on récupére le nom de toutes les configurations
vConfigNameArr = swModel.GetConfigurationNames
ConfCount = UBound(vConfigNameArr)
If ConfCount = 0 Then Exit Sub
If ConfCount > 0 Then
i = 1
'on boucle
For Each vConfigName In vConfigNameArr
'on affiche la configuration
swModel.ShowConfiguration2 vConfigName
swModel.ShowNamedView2 "*Isometric", -1
swModel.ViewZoomtofit2
'on force la reconstruction
swModel.ForceRebuild3 False
'Creation du Chemin et du Nom des fichiers PDF3D
Chemin = swModel.GetPathName
X = Split(Chemin, ".")
Chemin = X(LBound(X))
PDF3dPath = UCase(Chemin & "Config_" & i) & ".PDF"
'Sauvegarde en PDF 3D de cette configuration
'Verouillage de l'option Saveas PDF 3D
ExportAs3D = True
Set swExportPDFData = swApp.GetExportFileData(1)
swExportPDFData.ExportAs3D = True
'Sauvegarde du document en PDF 3D
Dim swModelDocExt As SldWorks.ModelDocExtension
Set swModelDocExt = swModel.Extension
status = swModelDocExt.SaveAs(PDF3dPath, 0, 2, swExportPDFData, lErrors, lWarnings)
i = i + 1
Next vConfigName
End If
'on Retourne sur la configuration active avant le traitement
swModel.ShowConfiguration2 stnameConfig
swModel.ShowNamedView2 "*Isometric", -1
swModel.ViewZoomtofit2
'on force la reconstruction
swModel.ForceRebuild3 False
'on sauvegarde le document
swModel.Save3 swSaveAsOptions_e.swSaveAsOptions_Silent, 0, 0
End Sub
Pliki PDF3D są zapisywane w tym samym katalogu co plik Solidworks (pod nazwą: "NomdufichierSolidworks_NumeroDeLaConfiguration.PDF") Od Ciebie zależy, czy zmodyfikujesz te wartości zgodnie ze swoimi pragnieniami.
Tak, zauważyłem to... Miałem problem z zablokowaniem pola wyboru "PDF3D" w opcji "Zapisz jako".... (Przepraszam) Zaktualizowałem mój poprzedni post, teraz powinno działać. Cóż, normalnie. Pozdrowienia
Nie, nadal nie, nadal nagrywa w pdf a nie w 3D, ale myślę, że to już niedaleko, testuję też jakąś modyfikację po swojej stronie. Dziękuję za szybką odpowiedź ;)
Dziwne, najnowsza wersja mojego makra działa bardzo dobrze na moim komputerze (nawet po ponownym uruchomieniu komputera). Czekam na efekty Waszych zmian.
Otóż nie, to makro w ogóle nie ma nic wspólnego z "Menedżerem dokumentów". Ale cieszę się, że to dla ciebie odpowiednie. Pamiętaj, aby zamknąć tę dyskusję, jeśli jesteś zadowolony z udzielonych odpowiedzi.
Pozwoliłem sobie pobrać pierwszy kod, który zapisuje każdy arkusz w formacie PDF, ale nie powtarza operacji, po prostu tworzy plik PDF bieżącej strony, czy mógłbyś mnie poprowadzić, moje umiejętności w VBA są bardzo ograniczone.
Z góry dziękuję.
Aktualizacja: po ponownym uruchomieniu komputera program działa poprawnie, dziękujemy!