Guarde el archivo de texto con una extensión de nombre de archivo .swb.
Cree una copia de seguridad de la plantilla de la 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 para ver el directorio de trabajo para la tarea. Cuando se ejecuta una tarea que utiliza una plantilla de macro de SolidWorks, el sistema crea una copia de la plantilla de la macro y reemplaza los nombres de señal con los valores de parámetro 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 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