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 un documento de dibujo de SOLIDWORKS 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_WORKING_DIR$$$, $$$TASK_FILE_TYPE$$$, $$$TASK_FILEPATH_NAME$$$ y $$$TASK_FILE_NAME$$$.
    Dim swApp As Object Dim swModel As Object Dim ret As Boolean Dim dummyRet As Long Dim longstatus As Long Dim errorFilePath As String Dim nErrors As Long Dim nWarnings as Long Sub main() errorFilePath = $$$TASK_WORKING_DIR$$$ + "\" + "swTaskScheduler.error" ErrorOut "Start logging any errors...", errorFilePath Set swApp = CreateObject("SldWorks.Application") swApp.SetCurrentWorkingDirectory $$$TASK_WORKING_DIR$$$ ' Determine el tipo de documento longstatus = 0 ' $$$TASK_FILE_TYPE$$$ is case-sensitive! Debe introducir SW_DRAWING_TYPE o SW_DRAWING_TYPE_OLD If ($$$TASK_FILE_TYPE$$$ = "SW_DRAWING_TYPE" OR $$$TASK_FILE_TYPE$$$ = "SW_DRAWING_TYPE_OLD") Then Set swModel = swApp.OpenDoc6 ($$$TASK_FILE_PATHNAME$$$, 3, 1, "", dummyRet, longstatus) ErrorOut "File is a drawing document.", errorFilePath Else ErrorOut "File is not a drawing document.", errorFilePath End If ret = True ' Si el documento es de solo lectura, está bloqueado o está en modo solo vista, registre un error If (longstatus And 2) Then ErrorOut "El archivo es de solo lectura.", errorFilePath ret = False ElseIf (longstatus And 4) Then ErrorOut "El archivo está bloqueado por otro usuario.", errorFilePath ret = False ElseIf (longstatus And 512) Then ErrorOut "El archivo es de solo lectura.", errorFilePath ret = False End If ' Close the document if read-only, locked, or view-only If (ret = False) Then Set swModel = Nothing swApp.CloseDoc $$$TASK_FILE_NAME$$$ End If Set swModel = swApp.ActivateDoc ($$$TASK_FILE_NAME$$$) If Not swModel Is Nothing Then ' If document is a drawing, then... If ($$$TASK_FILE_TYPE$$$ = "SW_DRAWING_TYPE" OR $$$TASK_FILE_TYPE$$$ = "SW_DRAWING_TYPE_OLD") Then ' Strip off SOLIDWORKS drawing file extension (.slddrw) ' and add DXF file extension (.dxf) sPathName = swModel.GetPathName sPathName = Left(sPathName, Len(sPathName) - 6) sPathName = sPathName + "dxf" ' Save as file as DXF bRet = swModel.SaveAs4(sPathName, swSaveAsCurrentVersion, swSaveAsOptions_Silent, nErrors, nWarnings) End If Else ErrorOut "El documento no se ha abierto o no se ha podido abrir.", errorFilePath End If ' 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