Creazione di un modello di macro per SOLIDWORKS

Un modello di macro per SOLIDWORKS è una macro di SOLIDWORKS che consente di specificare i valori dei parametri quando viene programmata come operazione personalizzata nel Task Scheduler di SOLIDWORKS. Un modello di macro per SOLIDWORKS è un file di testo che in genere contiene codice Visual Basic, chiamate dall'API di SOLIDWORKS e nomi di token. Quando si programma l'esecuzione di un modello di macro per SOLIDWORKS come operazione personalizzata nel Task Scheduler di SOLIDWORKS, occorre specificare i valori dei parametri da sostituire ai nomi dei token.

I nomi token possono essere stringhe di testo o numeriche. I requisiti sono i seguenti:

Tipo di parametro Formato del nome token
Stringa $$$<token_name>$$$
Numero ###<token_name>###

Il file di un modello di macro di SOLIDWORKS deve avere estensione .swb.

Per creare un modello di macro:

  1. Aprire un file di testo nuovo usando Windows Notepad, Microsoft WordPad o un altro editor di testo.
  2. Copiare e incollare una macro di SOLIDWORKS nel file di testo.
    Per informazioni sui file di macro di SOLIDWORKS, vedere gli argomenti della Guida relativi alle API e alle aggiunte di SOLIDWORKS.
  3. Digitare i nomi token al posto dei parametri i cui valori si vogliono specificare. Ad esempio:
    Codice originale: swApp.SetCurrentWorkingDirectory "c:\temp"
    Codice modificato: swApp.SetCurrentWorkingDirectory $$$TASK_WORKING_DIR$$$
  4. Salvare il file di testo con l'estensione .swb.
    Creare una copia di backup del file di modello della macro di SOLIDWORKS prima di programmarla ed eseguirla o conservare il file di modello della macro di SOLIDWORKS in un percorso diverso dalla directory di lavoro dell'operazione. Fare clic su Visualizza > Opzioni > Opzioni dell'operazione per vedere la directory di lavoro dell'operazione. Quando un'operazione che utilizza un modello di macro per SOLIDWORKS è in esecuzione, il sistema crea una copia del modello di macro e sostituisce i nomi dei token con i valori di parametro specificati al momento della programmazione dell'operazione. Il sistema salva il file nella directory di lavoro dell'operazione, con lo stesso nome di file di modello di macro di SOLIDWORKS originale. Se il modello di macro di SOLIDWORKS viene conservato nella directory di lavoro dell'operazione, il sistema lo sovrascrive con il nuovo file.
    Il codice seguente è un esempio di modello di macro di SOLIDWORKS. Apre ciascun documento di disegno SOLIDWORKS in una cartella e lo salva come file DXF. Quando si programma un modello di macro come operazione personalizzata nel Task Scheduler di SOLIDWORKS, si specificano i parametri da sostituire ai nomi dei token: $$$TASK_SOURCE_DIR$$$ e $$$TASK_DESTINATION_DIR$$$.
    Dim swApp As Object
    Dim swModel As Object
    Dim ret As Boolean
    Dim openError As Long
    Dim openWarn As Long
    Dim errorFilePath As String
    Dim nErrors As Long
    Dim nWarnings As Long
    Dim destinationPath As String
    Dim sourcePath As String
    Dim modelTitle As String
    
    Sub main()
    
        sourcePath = $$$TASK_SOURCE_DIR$$$
        destinationPath = $$$TASK_DESTINATION_DIR$$$
         
        errorFilePath = destinationPath + "\" + "swTaskScheduler.error"
        ErrorOut "Start logging any errors...", errorFilePath
        
        Set swApp = CreateObject("SldWorks.Application")
        swApp.SetCurrentWorkingDirectory destinationPath
        
        ' Determine type of document
        
        openWarn = 0
        
        Dim fileName As String
        fileName = Dir(sourcePath + "\*.SLDDRW")
        
        Do While fileName <> ""
            modelTitle = ""
            Set swModel = swApp.OpenDoc6(sourcePath + "\" + fileName, 3, 1, "", openError, openWarn)
            
            
            If (openWarn And 2) Then
                ErrorOut "File is read-only.", errorFilePath
                ret = False
            ElseIf (openWarn And 4) Then
                ErrorOut "File is locked by another user.", errorFilePath
                ret = False
            ElseIf (openWarn And 512) Then
                ErrorOut "File is view-only.", errorFilePath
                ret = False
            Else
                ret = True
            End If
            
            If Not swModel Is Nothing Then
                modelTitle = swModel.GetTitle()
                If ret = True Then
                        ' Strip off SOLIDWORKS drawing file extension (.slddrw)
                        ' and add DXF file extension (.dxf)
                        Dim sPathName As String
                        sPathName = swModel.GetPathName
                        sPathName = Left(sPathName, Len(sPathName) - 6)
                        sPathName = sPathName + "dxf"
                        sPathName = Replace(sPathName, sourcePath, destinationPath)
                        ' Save as file as DXF
                        bRet = swModel.SaveAs4(sPathName, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings)
                End If
                
                Set swModel = Nothing
                swApp.CloseDoc modelTitle
            End If
    
            
            fileName = Dir
        Loop
              
        ' Exit the SOLIDWORKS software
        swApp.ExitApp
        Set swApp = Nothing
        
    End Sub
    
    Function ErrorOut(errorString As String, errorFilePath As String)
        Open errorFilePath For Append As #5
        Print #5, errorString
        Close #5
    End Function