各位朋友们好,在定义材料、反应频数据和设置载荷等场景中,需要输入多行多列的数据,这时候使用表格输入就会非常方便,本期就给大家分享下ACT中定义表格控件的方法。
ACT中提供两种方式定义表格控件,都是通过<propertytable>标签定义表格属性,方法汇总如下:
(1)表格组件:tabularComponent
仅支持在ACT向导(Wizard)中定义,以组件方式嵌入在向导界面显示;需要定义界面组件布局:添加tabularComponent组件到布局中,也可以使用预定义的表格布局:DefaultTabularDataLayout;
在定义布局的步骤(Step)中,在<propertytable>标签中给定控件类型(control)为tabulardata,显示类型(display)为worksheet,定义表格中单元属性控件,详情查看帮助《ACT XML Reference : ACT XMLTags》。
在<propertytable>标签内,通过<property>标签定义每列的属性控件,支持常用属性控件类型的定义。示例代码如下:
(2)表格模板:worksheet template
此外,ACT提供了3种预定义的表格模板类型,模板定义源文件位于ACT\libraries目录下,感兴趣的可以深入研究下,从中可以学习到属性模板定义的方法。
表格模板实际上是基于applycancel或custom的属性控件,属性的显示类型(display)都为worksheet,通过自定义属性的控制(controller)类(class)实现,有如下三个对应的控制类:
Worksheet.TimeFreqTabularData.TFTabularData
仅适用于在Mechanical中,输入与时间相关的表格数据,数据行数对应着AnalysisSettings中步骤数,无法添加数据列,当向分析对象添加或删除时间步后,表格会同步更新。示例代码如下:
Worksheet.PropertyGroupEditor.PGEditor
通用表格模板,适用于所有支持ACT的应用,可以通过左上角添加表格行,右键删除数据行操作,也支持文本数据的粘贴,定义的示例如下:
Worksheet.TabularDataEditor.TabularDataEditor
通用表格模板,适用于所有支持ACT的应用;基于tabularComponent组件自定义的表格对话框(dialogComponent),通过custom控件集成表格对话框,是与ACT向导界面风格最为一致的表格类型,但不支持数据粘贴。定义示例如下:
接下来,我们以如下所示的ACT向导界面为例,在界面中定义三种类型的表格控件。
向导需实现的交互功能及效果如下:
设置完表格TableA:Freq - Acc之后,点击Apply按钮之后,在FreqHtml组件中显示输入的表格信息,对应回调函数为:onFreqTableA_Apply;
XML中定义的表格控件,在对应Python代码中,可以通过step.Properties[“propName”]得到表格对象实例,对应的类为SimPropertyTable;类对象的常用属性和方法小田老师已为大家进行了汇总,如下: