首页/文章/ 详情

ACT开发指南|如何进行输入有效性验证

4年前浏览5625
在仿真计算中,每个参数都是有界限或者满足既定规则的,比如说几何尺寸存在最大与最小值、零件的命名需按照规则等。所以,在使用进行流程封装时,就需要对用户输入进行判断,避免错误输入造成程序的异常终止。


今天,小田老师就以如下的简单案例,来给大家讲解ACT中进行输入有效性验证的方法。
针对如下ACT向导界面,我们考虑如下需求:
案例XML文件代码


  • NumberInputfloat输入控件,值需在区间[10, 1000)
  • TextInputtext输入控件,需以字符、数字和下划线组成,长度大于6


当用户输入值不满足要求时,控件显示如下无效输入状态提示用户。
2 ACT Wizard有效性验证
接下来,以上述开发需求为例,演示实现有效性验证的思路和具体步骤。
首先,啥都不了解时候,肯定是要去翻阅ACT帮助文档的;在《ACT XML ReferenceACT XML Tags》中,找到<property>标签下内容,我们会发现一个回调函数<isvalid>满足我们的要求,但是对于其使用的方法和示例,ANSYS并未提供,而是直接省略了.....
3 <IsValid>回调函数帮助说明
这里忍不住吐槽下,帮助文档唯一的作用:就是让你觉得看帮助并没有什么卵用;希望官方多上点心,后续提高开发文档的可参考性。
既然官方没提供,就只好自助查找:通过反编译找到<IsValid>对应类的声明,可以发现回调函数需要传入IUserObjectISimProperty参数,然后返回一个bool类型参数。
4 <IsValid>对应类的声明
<IsValid>对应回调函数模板如下,其中step代表当前步骤prop代表属性控件对象,valid_expression表示输入判断语句
5 <IsValid>对应回调函数模板
然后,需要在XML文件中为Number InputText Input控件添加<IsValid>回调,并绑定事件函数IsNumInputValidIsTextInputValid,如下:
6 property定义<IsValid>回调
最后,在对应的main.py脚本中,我们需要实现IsNumInputValidIsTextInputValid方法,即通过prop.Value获取用户输入值,进行值范围和规则判断,然后返回判断的真假,代码如下:
回调函数功能实现
完成以上几步操作,就可以实现有效性验证;但是从用户角度来看,交互并不友好,因为界面虽然显示输入无效,但是并没有提示什么数据是有效的。
解决办法:可以在XML中为对应控件定义<help>子标签,给定标签对之间的帮助内容。 
定义property帮助提示 
这样定义之后,属性控件显示的时候,在其右边会多出帮助提示;用户体验也就上去了。
9 property中帮助提示
以上,就是本期的所有内容!大家若有关于ANSYS二次开发相关的问题,欢迎下方留言参与讨论。


代码&命令二次开发通用流体基础结构基础WorkbenchSpaceClaimACT
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-11-02
最近编辑:4年前
小田老师
硕士 | 仿真工程师 欢迎关注ANSYS仿真与开发!
获赞 656粉丝 3808文章 62课程 4
点赞
收藏
作者推荐
未登录
1条评论
小恒
签名征集中
3年前
小田老师您好,请问您这篇文章里面涉及的反编译是针对pyd文件的么?方便告知下用什么方式实现的吗?
回复 2条回复
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈