Anders met specifieke tools zoals Cad+ (niet getest):
https://cadplus.xarial.com/
Van mijn kant gebruik ik de hulpprogramma's van MyCADservices en meer in het bijzonder Integration of BatchConverters (zeer snel afgeschreven voor terugkerende behoeften):
Anders stel ik deze macro voor. Opent alle *.slddrw-bestanden in een map en slaat ze op onder dezelfde naam als een PDF.
Option Explicit
Private Const BIF_RETURNONLYFSDIRS As Long = &H1
Private Const BIF_DONTGOBELOWDOMAIN As Long = &H2
Private Const BIF_RETURNFSANCESTORS As Long = &H8
Private Const BIF_BROWSEFORCOMPUTER As Long = &H1000
Private Const BIF_BROWSEFORPRINTER As Long = &H2000
Private Const BIF_BROWSEINCLUDEFILES As Long = &H4000
Private Const MAX_PATH As Long = 260
Function BrowseFolder(Optional Caption As String, Optional InitialFolder As String) As String
Dim SH As Shell32.Shell
Dim F As Shell32.Folder
Set SH = New Shell32.Shell
Set F = SH.BrowseforFolder(0&, Caption, BIF_RETURNONLYFSDIRS, InitialFolder)
If Not F Is Nothing Then
If F = "Desktop" Then
BrowseFolder = Environ("USERPROFILE") & "\Desktop"
Else
BrowseFolder = F.Items.Item.Path
End If
End If
End Function
Sub Main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc
Dim sFileName As String
Dim Path As String
Dim nErrors As Long
Dim nWarnings As Long
Dim swDraw As SldWorks.DrawingDoc
Dim PartNoDes As String
Dim swExportPDFData As SldWorks.ExportPdfData
Set swApp = Application.SldWorks
Set swExportPDFData = swApp.GetExportFileData(1)
swExportPDFData.ViewPdfAfterSaving = False
Path = BrowseFolder("Selectionner le Repertoire à Traiter.")
If Path = "" Then
MsgBox "Erreur, Selectionnez le repertoire à nouveau."
End
Else
Path = Path + "\"
End If
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
PartNoDes = Mid(swDraw.GetPathName, InStrRev(swDraw.GetPathName, "\") + 1)
PartNoDes = Left(PartNoDes, Len(PartNoDes) - 7)
swDraw.SaveAs3 Path & PartNoDes & ".PDF", 0, 0
swApp.QuitDoc swDraw.GetPathName
Set swDraw = Nothing
Set swModel = Nothing
sFileName = Dir
Loop
MsgBox "Le Traitement est terminé."
End Sub
Wanneer het wordt gestart, zal mijn macro u vragen om de map met de te verwerken tekeningen te selecteren en ze vervolgens een voor een te openen om ze in pdf op te slaan.
Kunt u mij nog minder informatie geven? (Bebug = Op welke regel stopt het programma?)
Ik vermoed dat je de benodigde referenties niet in de interface hebt geladen: Ga in de Macro-editor naar Optie en klik op Referenties... Zoeken in de lijst: (En vink de vakjes aan) - Visuele basis voor toepassing - Solidworks 20xx Exensibility Type Library (20xx = uw versie van Solidworks, als meerdere de meest recente kiezen) - Ole Automatisering - sldWorks 20xx Type Library (20xx = uw versie van Solidworks, als meerdere de meest recente kiezen) - SOLIDWORKS 20xx Constant type library (20xx = uw versie van Solidworks, als meerdere de meest recente kiezen) - SOLIDWORKS 20xx Comands type library (20xx=jouw versie van Solidworks, als meerdere de meest recente kiezen) - Microsoft Exel 16.0 Object Bibliotheek - Microsoft Shell, Microsoft Shell-besturingselementen en toepassing.
Bevestig vervolgens uw keuze. (Ik laat je opzettelijk meer boekverkopers laden dan nodig is voor deze macro, maar ze zullen op een of andere dag nuttig voor je zijn) Start de macro opnieuw.
Opmerking: De volgende keer dat u een Macro aanvraagt, geef dan de versie (jaar) van uw Solidworks op, evenals uw Macro-niveau....