Kaip panaudoti turimą SOLIDWORKS makro komandą (angl. macro) SOLIDWORKS PDM sistemoje?

SOLIDWORKS PDM sistemoje makro komandos yra naudojamos sukuriant darbų automatizavimo užduotį (angl. task). Kad turimos SOLIDWORKS makro komandos veiktų ir PDM sistemoje, į jas reikia įtraukti keletą papildomų kodo eilučių

Tipiniu atveju užtenka sukurti tuščią PDM užduotį ir ją papildyti savo SOLIDWORKS makro komandomis su keletu papildomų kodo eilučių. Atidarykite PDM Administravimo įrankį (Programs > SOLIDWORKS PDM > Administration), prisijunkite prie saugyklos administratoriaus teisėmis ir, pažymėję Tasks skiltį, paspauskite dešinį pelės klavišą, o tada pasirinkite New Task.

Atsidariusiame lange, viršutiniame kairiajame kampe, galite įrašyti norimą užduoties pavadinimą, o ties Add-in pasirinkite SOLIDWORKS Task Add-in:

Task addin

Atidarykite Script skiltį ir ten pamatysite SOLIDWORKS skripto įvedimo tekstiniu formatu langą, o jame yra pateikiamos vos kelios eilutės kodo, kurios, iš esmės, nieko nedaro, yra kaip makro komandų šablonas, bet tuo pačiu čia yra vieta, kur galite „copy-paste“ principu įdėti nukopijuotą savo SOLIDWORKS makro komandų tekstą iš makro (*.swp) failo:

Task Script

Paprastai „copy-paste“ principu įdėtos SOLIDWORKS makro komandos PDM sistemoje neveiks ir tipiniu atveju reikės žemiau pateiktą šabloninį skriptą papildyti jūsų SOLIDWORKS makro komandomis:


Option Explicit

Dim swApp As Object

Dim swModel As SldWorks.ModelDoc2

Dim filePath As String

Dim docType As Long

Dim swDocSpecification As SldWorks.DocumentSpecification

Dim errors As Long

'Cia taip pat turite prideti kitus kintamuosius

'is jusu SOLIDWORKS macro kodo

Sub main()

Set swApp = Application.SldWorks

'Papildomas kodas skirtas PDM sistemai automatiniam

'failo atidarymui SolidWorks aplinkoje

'---------------------------------------

swApp.Visible = True 'SPR 682792, 538578, 651998

filePath = "<Filepath>"

' Determine type of SolidWorks file based on file extension

If LCase(Right(filePath, 7)) = ".sldprt" Or LCase(Right(filePath, 4)) = ".prt" Then

docType = swDocPART

ElseIf LCase(Right(filePath, 7)) = ".sldasm" Or LCase(Right(filePath, 4)) = ".asm"

Then

docType = swDocASSEMBLY

ElseIf LCase(Right(filePath, 7)) = ".slddrw" Or LCase(Right(filePath, 4)) = ".drw"

Then

docType = swDocDRAWING

End If

Set swDocSpecification = swApp.GetOpenDocSpec(filePath)

swDocSpecification.DocumentType = docType

swDocSpecification.ReadOnly = True

swDocSpecification.Silent = True

swDocSpecification.ConfigurationName = ""

swDocSpecification.DisplayState = ""

swDocSpecification.IgnoreHiddenComponents = True 'SPR 682792, 538578, 651998

Set swModel = swApp.OpenDoc7(swDocSpecification)

errors = swDocSpecification.Error

swApp.ActivateDoc2 filePath, True, errors

'---------------------------------------

Set swModel = swApp.ActiveDoc

'Cia turi buti idedamas likes reikalingas jusu

'SOLIDWORKS macro kodas is "Sub main()" proceduros

End Sub

'Cia turetu buti iterptos kitos proceduros/funkcijos

'naudojamos jusu SOLIDWORKS macro faile

 

Sutvarkę kodą, galite keisti likusius PDM užduoties nustatymus: Execution Method, Menu Command, Permissions, Success Notification ir Error Notification. Plačiau apie PDM užduočių kūrimą ir nustatymus galima pasižiūrėti čia.