Ansys Workbench制作ACT插件实现,快速框选element faces单元的功能

问题:
Ansys workbench的框选功能只能按住Ctrl增加选项,却没有反向选择框选减少的功能!!!
Ansys workbench的connect创建连接非常方便,但是很多时候几何面的区域和实际想要做连接的区域大相径庭。这个时候一个较好的连接区域选择方法是使用element Faces进行连接区域的定义。但是遗憾的是ansys workbench的框选功能也是不咋滴,单元选择较为麻烦——没有反向选择,框选减除的功能!!!!
虽然两种方式对计算结果没有什么影响,但是第二个选着方式在甲方看来,仿真工程师是有认真在干活的。。。。。。。。。。
使用hypermesh的同事都知道,ansys workbench在鼠标框选这个功能上差了很多。Ansys workbench的框选功能只能按住Ctrl增加选项,却没有反向选择框选减少的功能!!!
解决方案:
这里使用ansys workbench 的二次开发功能,增加一个针对单元面选择的ACT插件。实现框选增加和框选减除的功能,虽然不能与hypermesh的右键反选功能相比肩,但实际应用还是可以带来很多便捷之处,尤其使用快捷键操作后,有很大提升。
功能实现逻辑:
1.首先用户自己调整到element Faces 选择类型,程序读取当前界面中加亮的element face单元的id号并存储在global变量中。
2.用户框选其它element faces单元,程序继续读取当前选择单元id号。再对global中存储的id号进行比较。
3.如果是增加操作,就合并两次框选;如果是减除操作,就对global集合去除当前选择的集合。
具体实现方法:
首先,创建xml文件——在mechanical界面上方创建新的按键。
再创建按键对应执行命令.py文件,按下对应按键后调用子程序。
示例:
Add Selection 按钮对应的子程序
# 在全局单元面集合基础上,增加新选择的单元面
def AddSelection(sender=None):
# 两个全局变量,均用于存储单元id和faceid
global backup_selections , global_selections
# 读取当前界面 加亮显示的单元
current_selection = ExtAPI.SelectionManager.CurrentSelection
# 保证当前选择类型为elementFaces
if current_selection.SelectionType != SelectionTypeEnum.MeshElementFaces:
print("请选择单元面")
return
# 对上一步global_selections中的单元面进行暂存到backup_selections,备用撤销操作
backup_selections.clear()
backupSelection()
# 当前新选择的单元面,添加到global_selections中
for i in range(len(current_selection.Ids)):
elem_id = current_selection.Ids[i]
face_idx = current_selection.ElementFaceIndices[i]
global_selections[elem_id][face_idx] = True
# 显示合并后的单元面集合
UpdateSelectionDisplay()
在ansys workbench 加载ACT插件,重启mechanical即可加载完成用户自己开发的ACT插件。
加载完成后操作示例:
以创建和修正element Faces 为元素的Named Selection为例:
增加操作,先选定加亮集合1
点击current按键,将当前加亮的单元集作为操作对象
再框选/点选需要增加的单元,再点击Add 按键即可。(可多次累加,)
减除操作,先选定加亮集合2
点击current按键,将当前加亮的单元集作为操作对象
再框选/点选需要减少的单元,再点击Delete 按键即可。(可多次重复操作,)
创建快捷键:
以下内容为付费内容,请购买后观看
1人购买
欢迎使用并指正 1.ACT插件程序内容xml文件和py文件以及图标 2.版本是2021R1,其它版本没有试,但估计也行。

工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
