许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  HyperWorks集成桌面环境二次开发(五):编写教程与实例

HyperWorks集成桌面环境二次开发(五):编写教程与实例

阅读数 3
点赞 0
article_banner

1、创建过程proc

Ø  一个proc 类似于其他语言中的function,可以被调用。

Ø  过程中的参数使用中括号引用 {arg1,arg2},在函数内部使用参数时,需要使用符号,  , arg1,可以类比其他语言中的形式参数。

Ø  proc 最后的{}内部为过程的程序体。基本结构如下:


2、hwi是最高层,连接其他对象。

在开发时,需要首先通过hwi获取 session  ,然后逐层深入获取所需要的API

hwi GetSessionHandle sess

3、获取 项目  handle

sess GetProjectHandle proj

4、通过数据文件handle打开数据文件,通过$指定数据文件

sess GetDataFileHandle data $fileName

5、foreach循环执行输入数据中的所有数据,例如:

foreachvalue [data GetDataTypeList false] {

foreachrequest [data GetRequestList $value false] {

foreachcomponent [data GetComponentList $value false] {

6、获取当前page,window,与client(并在获取对象handle时,设置当前client类型)。

proj GetPageHandle p1 1

p1 GetWindowHandle w1 1

w1 SetClientType Plot

w1 GetClientHandle plot

7、设置每次添加的曲线名称为cn,在每次获取曲线handle的时候不需要知道曲线的编号,如下:

set cn [plot AddCurve]

plot GetCurveHandle c1 $cn

8、依据文件设置曲线,使用循环中的 数据类型  ,要求,以及分量

c1 GetVectorHandle xv x

xv SetType File

xv SetFileName $fileName

c1 GetVectorHandle yv y

yv SetType File

yv SetFileName $fileName

yv SetDataType $value

yv SetRequest $$request

yv SetComponent $component

9、数据处理完毕后画图

plot Recaculate

plot Autoscale

plot Draw

10、寻找最大最小y值并赋给指定变量

c1 AddCursor

c1 GetCursorhandle cur 1

cur FindGlobalMax y

set maxY [cur GetY]

cur FindGlobalMin y

set minY [cur Gety]

11、 计算 最大值与最小值之间的距离

set diff [expr abs(𝑚𝑎𝑥𝑌−  maxY− minY)]

12、判断最大最小值之间的差异,如果值小于指定的数值,关闭视图

if {𝑑𝑖𝑓𝑓<  diff< amount} {

c1 SetVisiablity false

}

13、释放所有的Handle,以方便在循环中重新被获取

p1 ReleaseHandle

w1 ReleaseHandle

plot ReleaseHandle

c1 ReleaseHandle

cur ReleaseHandle

xv ReleaseHandle

yv ReleaseHandle




procShowCurves {fileName amount}  {


proc ShowCurves {fileName amount}  {
			hwi GetSessionHandle sess
			sess GetProjectHandle proj
			sess GetDataFileHandle data $fileName
			foreach value [data GetDataTypeList false] {
                 foreach request [data GetRequestList $value false] {
                         foreach component [data GetComponentList $value false] {
                         	proj GetPageHandle p1 1
													p1 GetWindowHandle w1 1
													w1 SetClientType Plot
													w1 GetClientHandle plot
													set cn [plot AddCurve]
													plot GetCurveHandle c1 $cn
													c1 GetVectorHandle xv x
													xv SetType File
													xv SetFilename $fileName
													c1 GetVectorHandle yv y
													yv SetType File
													yv SetFilename $fileName
													yv SetDataType $value
													yv SetRequest $request
													yv SetComponent $component
													plot Recalculate
													plot Autoscale
													plot Draw
													c1 AddCursor
													c1 GetCursorHandle cur 1
													cur FindGlobalMax y
													set maxY [cur GetY]
													cur FindGlobalMin y
													set minY [cur GetY]
													set diff [expr abs($maxY-$minY)]
													if {$diff < $amount} {
							            		c1 SetVisibility false
															}
													p1 ReleaseHandle
													w1 ReleaseHandle
													plot ReleaseHandle
													c1 ReleaseHandle
													cur ReleaseHandle
													xv ReleaseHandle
													yv ReleaseHandle
													                 }

         }

 }

}




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空