Creación de una plantilla de macro de SOLIDWORKS

Una plantilla de macro de SOLIDWORKS es una macro de SOLIDWORKS que le permite especificar los valores de parámetros cuando la programa como tarea personalizada en el programador de tareas de SOLIDWORKS. Una plantilla de macro de SOLIDWORKS es un archivo de texto que suele contener código Visual Basic, llamadas de la API de SOLIDWORKS y nombres de señal. Cuando se programa una plantilla de macro de SOLIDWORKS para que ejecute una tarea personalizada en el programador de tareas de SOLIDWORKS, se especifican los valores de parámetros para sustituir los nombres de señal.

Los nombres de señal pueden ser cadenas de texto o numéricas. Están formateados como se indica:

Tipo de parámetro Formato del nombre de señal
Cadena $$$<nombre_señal>$$$
Número ###<nombre_señal>###

Una plantilla de macro de SOLIDWORKS debe tener una extensión de nombre de archivo .swb.

Para crear una plantilla de macro:

  1. Abra un archivo de texto por medio del Bloc de notas de Windows, WordPad de Microsoft u otro editor de texto.
  2. Copie y pegue una macro de SOLIDWORKS en el archivo de texto.
    Consulte Temas de ayuda de API y de complementos de SOLIDWORKS para obtener información sobre los archivos de macro de SOLIDWORKS.
  3. Escriba los nombres de señal en lugar de los parámetros cuyos valores quiere especificar. Por ejemplo:
    Código original: swApp.SetCurrentWorkingDirectory "c:\temp"
    Código modificado: swApp.SetCurrentWorkingDirectory $$$TASK_WORKING_DIR$$$
  4. Guarde el archivo de texto con una extensión de nombre de archivo .swb.
    Cree una copia de seguridad de la plantilla de macro de SOLIDWORKS antes de programarla y ejecutarla, o almacene el archivo de la plantilla de macro de SOLIDWORKS en una ubicación diferente al directorio de trabajo para tareas. Haga clic en Ver > Opciones > Opciones de tarea para ver el directorio de trabajo para tareas. Cuando se ejecuta una tarea que utiliza una plantilla de macro de SOLIDWORKS, el sistema crea una copia de la plantilla de macro y reemplaza los nombres de señal con los valores de parámetros que se especificaron al programar la tarea. El sistema guarda el archivo en el directorio de trabajo para tareas con el mismo nombre que la plantilla de macro original de SOLIDWORKS. Si la plantilla de macro original de SOLIDWORKS se almacena en el directorio de trabajo para tareas, el sistema la sobrescribe con el nuevo archivo.
    El siguiente código es un ejemplo de una plantilla de macro de SOLIDWORKS. Abre cada documento de dibujo de SOLIDWORKS en una carpeta y lo guarda como un archivo DXF. Cuando se programa una plantilla de macro como una tarea personalizada en el programador de tareas de SOLIDWORKS, se especifican los parámetros para sustituir los nombres de señal: $$$TASK_SOURCE_DIR$$$ y $$$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