Создание шаблона макроса SOLIDWORKS

Шаблон макроса SOLIDWORKS – это макрос SOLIDWORKS, позволяющий указать значения параметра при его планировании в качестве пользовательской задачи в программе SOLIDWORKS Task Scheduler. Шаблон макроса SOLIDWORKS — это текстовый файл, который обычно содержит код Visual Basic, вызовы SOLIDWORKS API, а также названия знаков. При планировании шаблона макроса SOLIDWORKS для запуска в качестве пользовательской задачи в программе SOLIDWORKS Task Scheduler указываются значения параметров для замены на названия знаков.

Названия знаков могут быть как текстовыми строками, так и числовыми значениями. Они имеют следующий формат:

Тип параметра Формат названия знака
Строка $$$<имя_знака>$$$
Номер ###<имя_знака>###

Шаблон макроса SOLIDWORKS должен иметь расширение имени файла .swb.

Чтобы создать шаблон макроса:

  1. Откройте новый текстовый файл с помощью Блокнота Windows, Microsoft WordPad или другого текстового редактора.
  2. Скопируйте и вставьте макрос SOLIDWORKS в текстовый файл.
    Информацию о файлах макросов SOLIDWORKS см. в разделах справки по API и подключаемым модулям SOLIDWORKS.
  3. Введите название знаков вместо тех параметров, значения которых необходимо указать. Например:
    Исходный код: swApp.SetCurrentWorkingDirectory "c:\temp"
    Измененный код: swApp.SetCurrentWorkingDirectory $$$TASK_WORKING_DIR$$$
  4. Сохраните текстовый файл с расширением имени файла .swb.
    Создайте резервную копию файла шаблона макроса SOLIDWORKS перед планированием и запуском или сохраните файл шаблона макроса SOLIDWORKS в папке, отличной от рабочего каталога задачи. Выберите Вид > Параметры > Параметры задачи , чтобы просмотреть рабочий каталог задачи. Если задача запускается с использованием шаблона макроса SOLIDWORKS, система создаст копию шаблона макроса и заменит названия знаков значениями параметров, указанными при планировании задачи. Система сохранит файл в рабочем каталоге задачи с таким же именем файла, что и у исходного шаблона макроса SOLIDWORKS. Если исходный шаблон макроса SOLIDWORKS сохраняется в рабочем каталоге задачи, система перезапишет его новым файлом.
    Ниже приводится пример кода шаблона макроса SOLIDWORKS. Он открывает каждый документ чертежа SOLIDWORKS в папке и сохраняет его в файл DXF. При планировании шаблона макроса для запуска в качестве пользовательской задачи в программе SOLIDWORKS Task Scheduler указываются параметры для замены на названия знаков. $$$TASK_SOURCE_DIR$$$ и $$$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