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)
发布了14 篇原创文章 · 获赞 6 · 访问量 1366

猜你喜欢

转载自blog.csdn.net/qq_43662503/article/details/84728926