ANSYS Workbench ACT二次开发XML语法介绍

前面的文章中,我们介绍了ANSYS中关于ACT二次开发时插件的文件组成,对于脚本格式而言,主要有两种文件组成,XML文件+PY文件,其中XML存储界面设计逻辑,PY文件则存储相应的逻辑相应函数,详见此篇文章内容:

ANSYS ACT 格式及文件组成如何?https://fscae.com/7311/

对于PY文件,由于采用的是Python语言,很多同学能快速掌握,而对于XML文件,部分同学可能对其语法感到比较陌生,本文就略微介绍下XML文件的语法。

XML文件格式类似通用语言HTML,其主要有各项标签组成,每个标签代表不同的意思。

常见的语法规则如下:

1、标签

标签通过<Element>与</Element>符号成对出现,标签之间可以无限嵌套使用,XML文件对缩进无特别要求,但水哥建议学员在编写过程中要有意进行不同层次标签的缩进,方便后续查阅,例如:

<extension version="1" name="UserSpect">

<guid shortid="UserSpect">f79510c6-7dd3-467e-af04-91f63edd688f</guid>

</extension>

上述代码体现了两个标签extension以及guid。

2、标签属性

对于部分标签,用户需要指定其属性值,常见的属性值如名称,描述,默认值等,标签属性一般紧跟标签名称后面,采用属性类型等于的形式给出,属性值需要采用双引号引用,例如上述代码中就规定了extension这个标签里面version的属性值为1,也即规定插件版本号为1,name的属性值为UserSpect,也即规定插件的名称为UserSpect。

不同标签其涵盖的属性以及回调函数都不同,具体可查看官方Help的ACT XML Tags模块。

3、无参数子标签回调函数

所谓子标签回调函数,也即本标签绑定的函数事件,如读取数据,导出图片等操作,通常通过回调函数专用标签<Callbacks>来进行指定,<Callbacks>下方还需嵌套调用指定回调函数具体的使用子标签,如<Isvalid>表示检查标签内容是否合法时调用的函数名称,<onvalidate>表示标签内容合法时调用的函数名称等,这里子标签回调函数调用时无传入参数,使用简单。

4、有参数子标签回调函数

对应于无参数子标签回调函数,部分子标签回调函数在使用时具有输入参数,也有输出参数。用户在调用该标签并指定回调函数时,回调函数的输入参数需与标签指定的函数内容匹配,如常见的标签<getpostcommands>,其作用为获取所有后处理操作并将其写入求解文件中,该标签的输入参数包括load(荷载对象)、stream(命令流写入对象)。在编写具体的回调函数中,必须引入这两个参数变量,且变量个数均需保持一致,否则无法进行函数调用!

不同的子标签回调函数,其输入输出参数不同,然而纵观ANSYS Help,其并没有详细介绍每个子标签回调函数的参数说明,故而实际中使用起来比较困难,学员在学习和实际开发中,应有意收集常见回调函数的输入参数和输出参数说明。

5、标签选项

当标签存在多项子项目时,采用<attributes options=" "/>指定具体的选项类目。

6、文件注释

XML文件注释采用<!-->注释内容<!-->进行,如:

<interface context="Mechanical">

<images>images</images>

<!-->功能按钮定义<!-->

<toolbar name="tb1" caption="UserSpect">

<entry name="et1" caption="加载反应谱" icon="spect36">

<callbacks>

<onclick>CreateLoad</onclick>

</callbacks>

</entry>

</toolbar>

</interface>

7、标签的简写

当标签下方无子标签时,<aa>.....</aa> 与<aa/>等效,当标签下方有子标签时,必须采用<aa>.....</aa>格式。

8、一个标准的ACT XML文件组成

在ACT开发中,无论插件内容如何变化,其标准的组成格式如下:

<extension version="1" name="UserSpect">

<guid shortid="UserSpect">f79510c6-7dd3-467e-af04-91f63edd688f</guid>

<script src="main.py"/>

<interface context="Mechanical">

<images>images</images>

。。。。。。

</interface>

<!-->具体功能模块<!-->

<simdata context="Mechanical">

。。。。。。

</simdata>

<workflow context="Project">

。。。。。。

</workflow>

<wizard>

。。。。

</wizard>

</extension>

XML总是以extension为开头和结尾,guid指定插件的唯一ID,script指定插件具体调用的Py文件,Interface指定插件的作用产品范围,simdata、workflow、wizard指定插件的具体内容。

Guid的获取可采用如下代码在任意一个产品中运行得到:

import System

re=System.Guid.NewGuid().ToString()

print re

以上便是关于ACT二次开发中关于XML文件组成的相关知识,更多详细关于ACT二次开发的内容请参见水哥的实战课程:

ANSYS Workbench ACT插件二次开发实战课程https://fscae.com/7242/

相关推荐
2301_818732061 小时前
项目启动报错,错误指向xml 已解决
xml·java·数据库·后端·springboot
csdn2015_1 天前
generatorConfig.xml 配置 Controller、Service 完整教程
xml·mybatis
神工坊1 天前
案例分享︱仿真软件并行架构升级——基于swOpenFOAM的智慧风场平台
二次开发·hpc·cfd·cae·流体力学·风电场仿真·加速库
特立独行的猫a1 天前
从XML到Compose的UI变革:现代(2026)Android开发指南
android·xml·ui·compose·jetpack
spencer_tseng1 天前
Stream not available [SysDictDataMapper.xml]
xml·java
qq_297574672 天前
MySQL迁移到瀚高数据库 常用转换函数对照表(附XML示例,直接复用)
xml·数据库·mysql
好好研究3 天前
SpringBoot整合SpringMVC
xml·java·spring boot·后端·mvc
从此不归路4 天前
Qt5 进阶【12】JSON/XML 数据协议处理:与后端/配置文件的对接
xml·开发语言·c++·qt·json
方芯半导体5 天前
EtherCAT “通信 + 控制“ 的全国产化控制方案,ESC芯片(FCE1323)与国产MCU芯片功能板解析
xml·网络·单片机·嵌入式硬件·网络协议·机器人·自动化
好好研究5 天前
总结SSM设置欢迎页的方式
xml·java·后端·mvc