CATIA Automation對象架構-Application對象詳解(三)SystemService

Application對象

Application對象的子對象:

6. SystemService: 利用application獲得系統服務

下圖展示了我們可以利用Application.SystemService獲取哪些系統服務
在這裏插入圖片描述
**Application.SystemService.Environ:**獲取系統環境變量的值,返回文本格式。
如獲取系統變量“Path”的值:

Dim strSysPath As String

strSysPath = CATIA.SystemService.Environ("Path")

MsgBox strSysPath

結果: 這個Path變量的值比較多,所以顯示比較複雜
在這裏插入圖片描述
理論上,我們可以用這個方法獲得所有的系統變量的值:
在這裏插入圖片描述
**Application.SystemService.Evaluate:**利用Evaluate方法執行一個腳本語句,並返回執行結果
Func Evaluate( CATBSTR iScriptText, CATScriptLanguage iLanguage,
CATBSTR iFunctionName, CATSafeArrayVariant iParameters) As CATVariant
例如:

Dim params()  '定義語句參數數組
Dim codeToEvaluate '定義執行的語句
CodeToEvaluate = "Sub CATMain()" & vbNewLine &  "MsgBox " & chr(34) & "Hello World" & chr(34) &vbNewLine _ 
  & "End Sub"
  'CATVBScriptLanguage 是腳本語言名稱CATVBScript
  'CATIA.SystemService.Evaluate (腳本語句,腳本語言名稱,函數名稱,執行參數數組)
 CATIA.SystemService.Evaluate CodeToEvaluate, CATVBScriptLanguage, "CATMain", params

CodeToEvaluate的腳本內容
在這裏插入圖片描述
理論上,除了CATVBScriptLanguage還有以下這幾種語言寫的腳本函數都是可以執行的
在這裏插入圖片描述

Application.SystemService.ExecuteBackgroundProcessus:
執行一個異步程序,在後臺執行不必等它結束
Func ExecuteBackgroundProcessus( CATBSTR iExecutablePath) As long
輸入參數中是執行程序的地址
例如: 執行C:\Program Files\myApp\myApp.exe這個程序
CATIA.SystemService.ExecuteBackgroundProcess “‘C:\Program Files\myApp\myApp.exe’ myArg”
理論上也可以簡化爲下面語句,如果路徑已經添加到了系統變量"Path"中.(未證實)
CATIA.SystemService.ExecuteBackgroundProcess “‘myApp\myApp.exe’ myArg”
雖然ExecuteBackgroundProcess函數定義是有返回值的,但實際不返回。

Application.SystemService.ExecuteProcessus:
執行一個異步程序,但是需要等待它結束才能繼續下一步
Func ExecuteProcessus( CATBSTR iExecutablePath) As long
例如:
Dim ReturnCode as long
ReturnCode = CATIA.SystemService.ExecuteProcessus("")
ExecuteProcessus在執行完畢後返回ReturnCode,可以判斷語句是否執行結束。

Application.SystemService.ExecuteScript:
執行一個腳本文件
同Evaluate不同的是,ExecuteScript執行的是寫好的一個腳本文檔,而不是一個帶腳本的語句。
Func ExecuteScript( CATBSTR iLibraryName, CatScriptLibraryType iType,
CATBSTR iProgramName, CATBSTR iFunctionName,
CATSafeArrayVariant iParameters) As CATVariant
iLibraryName '包含腳本的庫
iType '腳本庫類型,文檔/目錄/VBA項目在這裏插入圖片描述
iProgramName '程序名稱
iFunctionName '函數名稱
iParameters '程序參數
例如: 執行Part1.CATPart中包含的宏腳本Macro1.catvbs,運行主程序CATMain

Dim params()
 CATIA.SystemService.ExecuteScript "Part1.CATPart", catScriptLibraryTypeDocument, "Macro1.catvbs", "CATMain", params

用這種方法,可以運行事先寫好的各種CATIA腳本文件

Application.SystemService.Print:
輸出一個標準輸出流顯示文本信息。
下列語句執行不成功,因爲Print好像不支持Automation對象。

Dim iString
iString = "Hello Word"
CATIA.SystemService.Print (iString)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章