Probleem met macro-PDF-conversie

Hallo

Ik heb geprobeerd de .PL macro (http://www.lynkoa.com/tutos/solidworks-creer-tous-les-pdf-pour-un-dossier-0) te gebruiken waarmee je alle plannen in een map naar PDF kunt converteren, maar ik heb een probleem wanneer ik het start.

Ik krijg het bericht "Compilatiefout: Sub of functie niet gedefinieerd" op de regel Path = BrowseFolder("Selecteer een pad/map")

Ik zocht een beetje op het forum en ik zag dat andere mensen hetzelfde probleem hadden gehad, maar ik kon geen oplossing vinden.

Iemand een idee?

Bij voorbaat dank:)

 

 

Hallo

Allereerst wil ik zeggen zoals @max59 in de vorige post

 Waarom gebruikt u niet de Task Scheduler.

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

Moge de kracht met je zijn.

 

2 likes

Hallo Obi Wan,

Ik heb een standaard solidworks-versie en in deze versie converteert de planner geen plannen naar PDF's.

 

Hallo

Tenzij ik een fout maak, mist de macro een stukje. BrowseFolder is een subfunctie, dus naar mijn mening ontbreekt het, vandaar de foutmelding.

Dat moet het inderdaad zijn.

Een beetje (heel) slecht zijn in macro, heeft iemand deze subfunctie al?

Ik zag dat het werkte met sommige leden van het forum

 

Zie deze pagina

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

@+ ;-)

1 like

Hallo

Voegt "Microsoft Shell Controls And Automation" toe aan tools/referenties.

Vriendelijke groeten

2 likes

Goed gedaan d.roger. Ik twijfelde en kon de referentie niet vinden.

Dank u voor uw antwoorden.

@d.roger, ik krijg nog steeds dezelfde foutmelding na het toevoegen van "Microsoft Shell Controls And Automation". Ik heb vergeleken en ik heb dezelfde referenties als op je screenshot ingeschakeld.

 

Hallo

Ik heb zojuist de manier veranderd om het mapselectievenster te openen. Het algehele ocmgedrag is niet getest.

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

 

Dank je wel Cyril.f :)

Nu kan ik mijn map selecteren, maar ik heb een ander probleem in de rest van de macro op de lijn: Set swModel = swView.ReferencedDocument

Runtime-fout 91: Object- of blokvariabele niet gedefinieerd

 

 

Ik weet niet waarom, maar na het opnieuw lanceren van solidworks is deze lijn geslaagd.

Ik heb echter een nieuw probleem op de lijn: 

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

"Onjuist argument of procedureel beroep"

 

 

 

Hallo

Zouden uw bestandsextensies niet verborgen zijn in de weergaveopties van uw Windows Verkenner?

Vriendelijke groeten

Ze waren inderdaad verborgen, maar ik heb nog steeds de fout

Zelfs na een Solidworks-reboot?

Ja, ik heb PC + Solidworks opnieuw opgestart voor het geval dat

Ik heb net geprobeerd de plannen op te slaan uit een andere map.

Het werkt, maar:

- Het converteert slechts één plan

- Het maakt een PDF-map op de juiste locatie, maar slaat het plan op een andere plaats op

 

Het is me gelukt om het bestand op de juiste plaats op te slaan door Path & toe te voegen aan de regels die de nFileName variabele definiëren

Aan de andere kant converteert de macro de andere vlakken in de map nog steeds niet

Dit is de macro die ik krijg na het maken van een paar andere bewerkingen omdat de naam van de PDF niet overeenkwam met wat ik wilde

 

 


pdf.zip

Re

Ik zal dit kijken als ik 's avonds tijd heb, anders zal het in januari zijn, tenzij d.roger tijd heeft om te kijken.

Hallo

Laten we eens kijken of de bijgevoegde versie werkt zoals u wilt.

Vriendelijke groeten


savealldrwaspdf.swp
1 like