Problem bei der Konvertierung von Makro-PDFs

Hallo

Ich habe versucht, das .PL Makro (http://www.lynkoa.com/tutos/solidworks-creer-tous-les-pdf-pour-un-dossier-0) zu verwenden, mit dem Sie alle Pläne in einem Ordner in PDF konvertieren können, aber ich habe ein Problem, wenn ich es starte.

Ich erhalte die Meldung "Kompilierungsfehler: Sub oder Funktion nicht definiert" in der Zeile Pfad = BrowseFolder("Pfad/Ordner auswählen")

Ich habe ein wenig im Forum gesucht und gesehen, dass andere Leute das gleiche Problem hatten, aber ich konnte keine Lösung finden.

Hat jemand eine Idee?

Danke im Voraus:)

 

 

Hallo

Zunächst einmal möchte ich sagen, wie @max59 im vorherigen Beitrag

 Warum verwenden Sie nicht den Taskplaner?

http://www.lynkoa.com/forum/solidworks/macro-de-conversion-de-toutes-les-pi%C3%A8ces-dun-assemblage-au-format-step-ap214

Möge die Macht mit euch sein.

 

2 „Gefällt mir“

Hallo Obi Wan,

Ich habe eine Standard-SOLIDWORKS-Version und in dieser Version konvertiert der Planer keine Pläne in PDFs.

 

Hallo

Wenn ich keinen Fehler mache, fehlt dem Makro ein Stück. BrowseFolder ist eine Unterfunktion, daher fehlt sie meiner Meinung nach, daher die Fehlermeldung.

Das muss es in der Tat gewesen sein.

Da ich ein bisschen (sehr) schlecht im Makro bin, hat jemand diese Unterfunktion bereits?

Ich habe gesehen, dass es bei einigen Mitgliedern des Forums funktioniert hat

 

Diese Seite ansehen

http://www.lynkoa.com/forum/import-export-formats-neutres/macro-export-pdf-dwg

@+ ;-)

1 „Gefällt mir“

Hallo

Fügt "Microsoft Shell Controls And Automation" zu Tools/Referenzen hinzu.

Herzliche Grüße

2 „Gefällt mir“

Gut gemacht , d.roger. Ich hatte Zweifel und konnte die Referenz nicht finden.

Vielen Dank für Ihre Antworten.

@d.roger erhalte ich immer noch den gleichen Fehler, nachdem ich "Microsoft Shell Controls And Automation" hinzugefügt habe . Ich habe verglichen und habe die gleichen Referenzen wie auf Ihrem Screenshot aktiviert.

 

Hallo

Ich habe gerade die Art und Weise geändert, wie das Ordnerauswahlfenster geöffnet wird. Nicht getestet das gesamte ocmVerhalten.

Option Explicit
  
Dim swApp        As SldWorks.SldWorks
Dim swModel      As SldWorks.ModelDoc
Dim sFileName    As String
Dim vFileName    As String
Dim Path         As String
Dim nPath        As String
Dim nErrors      As Long
Dim nWarnings    As Long
Dim swDraw       As SldWorks.DrawingDoc
Dim swCustProp   As CustomPropertyManager
Dim swView       As SldWorks.View
Dim ConfigName   As String
Dim i            As Long
Dim valOut1      As String
Dim valOut2      As String
Dim resolvedValOut1 As String
Dim resolvedValOut2 As String
Dim PartNo      As String
Dim nFileName      As String
Dim swDocs As Variant
Dim PDFpath As String
Dim currpath As String
Dim PartNoDes As String
Dim objShell   As Shell
Dim objFolder  As Folder

    
Sub main()
    Set swApp = Application.SldWorks
    Dim swExportPDFData     As SldWorks.ExportPdfData
    Set swExportPDFData = swApp.GetExportFileData(1)
    swExportPDFData.ViewPdfAfterSaving = False
    
    Set objShell = New Shell
        Set objFolder = objShell.BrowseForFolder(0, "Example", 0, 0)
            If (Not objFolder Is Nothing) Then
                Path = objFolder.Self.Path
                Path = Path + "\"
                PDFpath = Path & "PDF"
                
                If Dir(PDFpath, vbDirectory) = "" Then MkDir PDFpath
                    sFileName = Dir(Path & "*.slddrw")
      
                    sFileName = Dir(Path & "*.slddrw")
      
      
                    Do Until sFileName = ""
  
  
                        Set swModel = swApp.OpenDoc6(Path + sFileName, swDocDRAWING, swOpenDocOptions_Silent, "", nErrors, nWarnings)
  
  
                        Set swModel = swApp.ActiveDoc
                        Set swDraw = swApp.ActiveDoc
                        Set swView = swDraw.GetFirstView
                        Set swView = swView.GetNextView
                        Set swModel = swView.ReferencedDocument
  
  

                            PDFpath = currpath & "PDF"
      
                            If Dir(PDFpath, vbDirectory) = "" Then MkDir PDFpath
       
            
                                If swModel.GetType = swDocPART Then
                                    PartNoDes = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)
                                    PartNoDes = Right(PartNoDes, Len(PartNoDes) - 14)
                                    PartNoDes = Left(PartNoDes, Len(PartNoDes) - 7)
                                    PartNo = Mid(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") + 1)
                                    PartNo = Left(PartNo, Len(PartNo) - 7)
                                    Set swCustProp = swModel.Extension.CustomPropertyManager(swView.ReferencedConfiguration)
                                    ConfigName = swView.ReferencedConfiguration
                                    swCustProp.Get2 "Description", valOut1, resolvedValOut1
                                    swCustProp.Get2 "Revision", valOut2, resolvedValOut2
                                    nFileName = PDFpath & "\" & PartNo & "-" & ConfigName & "-" & resolvedValOut2 & " " & PartNoDes
                                    swDraw.SaveAs3 nFileName & ".PDF", 0, 0
                      
                                ElseIf swModel.GetType = swDocASSEMBLY Then
                                    PartNoDes = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)
                                    PartNoDes = Right(PartNoDes, Len(PartNoDes) - 11)
                                    PartNoDes = Left(PartNoDes, Len(PartNoDes) - 7)
                                    PartNo = Mid(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") + 1)
                                    PartNo = Left(PartNo, Len(PartNo) - 7)
                                    Set swCustProp = swModel.Extension.CustomPropertyManager("")
                                    swCustProp.Get2 "Description", valOut1, resolvedValOut1
                                    swCustProp.Get2 "Revision", valOut2, resolvedValOut2
                                    nFileName = PDFpath & "\" & PartNo & "-" & resolvedValOut2 & " " & PartNoDes
                                    swDraw.SaveAs3 nFileName & ".PDF", 0, 0
                   
                                End If
      
                                swApp.QuitDoc swDraw.GetPathName
                                Set swDraw = Nothing
       
                                Set swModel = Nothing
       
                            sFileName = Dir
     
                        Loop

                End If
                    
        Set objFolder = Nothing
    Set objShell = Nothing
  
MsgBox "All Done"
  
  
End Sub

 

Vielen Dank Cyril.f :)

Jetzt kann ich meinen Ordner auswählen, aber ich habe ein anderes Problem im Rest des Makros in der Zeile: Set swModel = swView.ReferencedDocument

Laufzeitfehler 91: Objekt- oder Blockvariable nicht definiert

 

 

Ich weiß nicht warum, aber nach dem Neustart von SolidWorks ist diese Zeile verschwunden.

Allerdings habe ich ein neues Problem in der Leitung: 

PartNodes = Links(PartNoDes, Len(PartNoDes) - 7)

"Falsches Argument oder Verfahrensbeschwerde"

 

 

 

Hallo

Würden Ihre Dateierweiterungen nicht in den Anzeigeoptionen Ihres Windows Explorers versteckt sein?

Herzliche Grüße

In der Tat waren sie versteckt, aber ich habe immer noch den Fehler

Auch nach einem Neustart von Solidworks?

Ja, ich habe PC + Solidworks vorsichtshalber neu gestartet

Ich habe gerade versucht, die Pläne aus einem anderen Ordner zu speichern.

Es funktioniert, aber:

- Es konvertiert nur einen Plan

- Es erstellt einen PDF-Ordner an der richtigen Stelle, speichert den Plan jedoch an einem anderen Ort

 

Ich habe es geschafft, die Datei an der richtigen Stelle zu speichern, indem ich Pfad & zu den Zeilen hinzugefügt habe, die die Variable nFileName definieren

Auf der anderen Seite konvertiert das Makro die anderen Ebenen im Ordner immer noch nicht

Hier ist das Makro, das ich erhalte, nachdem ich ein paar andere Bearbeitungen vorgenommen habe, weil der Name der PDF-Datei nicht mit dem übereinstimmte, was ich wollte

 

 


pdf.zip

Re

Ich schaue mir das an, wenn ich abends Zeit habe, sonst wird es im Januar sein, es sei denn, d.roger hat Zeit zum Anschauen.

Hallo

Mal sehen, ob die angehängte Version so funktioniert, wie Sie es möchten.

Herzliche Grüße


savealldrwaspdf.swp
1 „Gefällt mir“