在前期文章中,分享过两种脚本封装的方法:脚本工具和ACT向导开发,可以让我们通过界面更改脚本中的变量值,从而实现参数化建模过程。但上述两种开发方式,需要了解WinForms或ACT开发相关知识,上手难度相对较大。
实际上,SCDM提供了更为简便的方式:脚本交互输入API,它可以暂停脚本执行,并打开交互式工具,在选项面板中创建输入控件,以等待和获取用户输入。交互输入的效果如下:
接下来,我们会以《SCDM二次开发系列:参数化建模》中的齿轮模型为例,讲解如何在脚本开发中实现交互输入。
查看SCDM的开发文档,可以发现Beta.InputHelper类可以实现交互输入,对应的静态方法如下所示,详细参数说明可以查阅开发文档。
所以,我们调用Beta.InputHelper类中以Create开头的静态方法,创建相应输入控件,如CreateTextBox创建文本输入框;然后调用PauseAndGetInput方法,传入控件实例对象,实现脚本暂停及等待和获取用户输入,详细的操作方法如下:
首先,将齿轮创建的脚本封装为CreateGear函数方法,并将outerRadius、innerRadius、holeRadius、nTeeth、thickness、basePlane和bodyName提取为输入参数,如下所示:
然后,我们根据CreateGear函数方法传入的类型,创建相应的输入控件,添加到控件组(gearGroup)中,最后调用PauseAndGetInput方法,传入提示信息和控件组实例。
上述代码运行后,会在PauseAndGetInput语句处暂停脚本执行,在选项面板中显示创建的输入控件,并在图形窗口创建√和×按钮。
此时,可以在选项面板输入参数,完成后点击√按钮确认后,继续执行剩余脚本命令;通过Success属性判断输入状态(点击√按钮返回True),然后通过访问控件实例的Value属性,获得用户输入值,最后调用CreateGear方法,完成齿轮建模,代码如下:
除了可以获取数字、文本、下拉框、复选框等输入,Beta.InputHelper还支持几何对象的交互选择输入,例如,如下代码中我们将选择的几何对象进行着色。
通过访问执行结果res的PrimarySelection属性,可以获取交互选中的对象,交互执行后的效果如下:
最后,我们可以将当前脚本代码发布为工具,后续可以在“工具”菜单栏下,点击对应图标按钮,就可以进行功能复用,非常快捷方便。
以上就是本期的所有内容,通过为脚本添加交互式输入,并发布为工具,可以非常便捷得进行功能复用,以达到扩展软件功能和提高仿真前处理效率的效果。
点击推荐课程,立即学习《Python语言在ANSYS的应用52讲》,掌握ANSYS SCDM脚本建模及ACT二次开发能力。