Creazione di un modello di macro per SOLIDWORKS

Un modello di macro per SOLIDWORKS è una macro di SOLIDWORKS che consente di specificare i valori dei parametri quando viene programmata come operazione personalizzata nel Task Scheduler di SOLIDWORKS. Un modello di macro per SOLIDWORKS è un file di testo che in genere contiene codice Visual Basic, chiamate dall'API di SOLIDWORKS e nomi di token. Quando si programma l'esecuzione di un modello di macro per SOLIDWORKS come operazione personalizzata nel Task Scheduler di SOLIDWORKS, occorre specificare i valori dei parametri da sostituire ai nomi dei token.

I nomi token possono essere stringhe di testo o numeriche. I requisiti sono i seguenti:

Tipo di parametro Formato del nome token
Stringa $$$<token_name>$$$
Numero ###<token_name>###

Il file di un modello di macro di SOLIDWORKS deve avere estensione .swb.

Per creare un modello di macro:

  1. Aprire un file di testo nuovo usando Windows Notepad, Microsoft WordPad o un altro editor di testo.
  2. Copiare e incollare una macro di SOLIDWORKS nel file di testo.
    Per informazioni sui file di macro di SOLIDWORKS, vedere gli argomenti della Guida relativi alle API e alle aggiunte di SOLIDWORKS.
  3. Digitare i nomi token al posto dei parametri i cui valori si vogliono specificare. Ad esempio:
    Codice originale: swApp.SetCurrentWorkingDirectory "c:\temp"
    Codice modificato: swApp.SetCurrentWorkingDirectory $$$TASK_WORKING_DIR$$$
  4. Salvare il file di testo con l'estensione .swb.
    Creare una copia di backup del file di modello della macro di SOLIDWORKS prima di programmarla ed eseguirla o conservare il file di modello della macro di SOLIDWORKS in un percorso diverso dalla directory di lavoro dell'operazione. Fare clic su Visualizza > Opzioni > Opzioni dell'operazione per vedere la directory di lavoro dell'operazione. Quando un'operazione che utilizza un modello di macro per SOLIDWORKS è in esecuzione, il sistema crea una copia del modello di macro e sostituisce i nomi dei token con i valori di parametro specificati al momento della programmazione dell'operazione. Il sistema salva il file nella directory di lavoro dell'operazione, con lo stesso nome di file di modello di macro di SOLIDWORKS originale. Se il modello di macro di SOLIDWORKS viene conservato nella directory di lavoro dell'operazione, il sistema lo sovrascrive con il nuovo file.
    Il codice seguente è un esempio di modello di macro di SOLIDWORKS. Il codice apre un documento di disegno di SOLIDWORKS e lo salva come file DXF. Quando si programma un modello di macro come operazione personalizzata nel Task Scheduler di SOLIDWORKS, si specificano i parametri da sostituire ai nomi dei token: $$$TASK_WORKING_DIR$$$, $$$TASK_FILE_TYPE$$$, $$$TASK_FILEPATH_NAME$$$ e $$$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 type of document longstatus = 0 ' $$$TASK_FILE_TYPE$$$ is case-sensitive! È necessario inserire SW_DRAWING_TYPE o SW_DRAWING_TYPE_OLD Se ($$$TASK_FILE_TYPE$$$ = "SW_DRAWING_TYPE" O $$$TASK_FILE_TYPE$$$ = "SW_DRAWING_TYPE_OLD") Quindi 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 ' Se il documento è di sola lettura, bloccato o di sola visualizzazione, verrà compilato un errore If (longstatus And 2) Then ErrorOut "File is read-only.", errorFilePath ret = False ElseIf (longstatus And 4) Then ErrorOut "File is locked by another user.", errorFilePath ret = False ElseIf (longstatus And 512) Then ErrorOut "File is view-only.", errorFilePath ret = False End If ' Chiudere il documento se di sola lettura, bloccato o di sola visualizzazione If (ret = False) Then Set swModel = Nothing swApp.CloseDoc $$$TASK_FILE_NAME$$$ End Se 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 "Document was not or could not be opened.", 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