Criar template de macros do SOLIDWORKS

O template de macros do SOLIDWORKS é uma macro do SOLIDWORKS que permite especificar valores de parâmetro quando você o programa como uma tarefa personalizada no Agendador de Tarefas do SOLIDWORKS. O template de macro do SOLIDWORKS é um arquivo de texto que em geral contém código do Visual Basic, chamadas de API do SOLIDWORKS e nomes de token. Quando você programa um template de macro do SOLIDWORKS para execução como uma tarefa personalizada no Agendador de Tarefas do SOLIDWORKS, especifica os valores de parâmetro pra substituir os nomes de token.

Os nomes de token podem ser strings de texto ou numéricos. Eles são formatados da seguinte maneira:

Tipo de parâmetro Formato do nome de token
String $$$<token_name>$$$
Número ###<token_name>###

Um template de macro do SOLIDWORKS precisa ter a extensão de nome de arquivo ..

Para criar um template de macro:

  1. Abra um novo arquivo de texto usando o Windows Notepad, Microsoft WordPad ou outro editor de texto.
  2. Copie e cole um macro do SOLIDWORKS no arquivo de texto.
    Consulte os Tópicos da Ajuda de API do SOLIDWORKS e Suplementos para obter informações sobre os arquivos de macro do SOLIDWORKS.
  3. Digites os nomes de token no lugar dos parâmetros cujos valores você quer especificar. Por exemplo:
    Código original: swApp.SetCurrentWorkingDirectory "c:\temp"
    Código modificado: swApp.SetCurrentWorkingDirectory $$$TASK_WORKING_DIR$$$
  4. Salve o arquivo de texto com um nome de arquivo com a extensão .swb.
    Crie uma cópia backup do arquivo de template de macro do SOLIDWORKS antes de agendá-lo e executá-lo, ou armazene o arquivo de macro do SOLIDWORKS em um local que não seja no diretório de trabalho da tarefa. Clique em Exibir > Opções > Opções de tarefa para ver o diretório de trabalho de tarefas. Quando uma tarefa usando um template de macro do SOLIDWORKS é executada, o sistema cria uma cópia do template e substitui os nomes de token com os valores do parâmetro que você especificou quando programou a tarefa. O sistema salva o arquivo no diretório de trabalho de tarefas com o mesmo nome de arquivo do template de macro original do SOLIDWORKS. Se o template de macro original do SOLIDWORKS estiver armazenado no diretório de trabalho de tarefas, o sistema o substitui com o novo arquivo.
    O código a seguir é um exemplo de um template de macro do SOLIDWORKS. Abre cada documento de desenho do SOLIDWORKS em uma pasta e o salva como um arquivo DXF. Quando você programa o template de macro como uma tarefa personalizada no Agendador de Tarefas do SOLIDWORKS, você especifica os parâmetros para substituir os nomes de 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