本文摘要(由AI生成):
这篇文章的主要内容是介绍如何在 Altair SimLab™ 中快速创建 1D 预紧螺栓。SimLab 中自带强大的螺栓创建工具,支持创建 1D 和 3D 螺栓,并支持 1D 和 3D 预紧螺栓。使用 SimLab 自带工具创建 1D 预紧螺栓,至少需要三步,分别创建螺头、螺纹以及连接螺头和螺纹。为了简化这一过程,作者开发了一个快速创建 1D 预紧螺栓的工具,使用这个工具只需点击约 5 次鼠标即可创建 10 个预紧螺栓。作者还提供了两个版本的代码,无 界面版本和有界面版本,方便用户使用。
上期介绍了在 Altair SimLab™ 中使用脚本读取 csv 文件中的数据,快速创建 148 个载荷,非常快捷。本期的主要内容是介绍如何快速创建 1D 预紧螺栓,文末有全文的演示视频哦,千万别错过~
注意:本文所有内容都基于SimLab 2020.1,旧版本中缺少 simlab.deselect() 接口,无法运行无 界面版代码。
01
代码效果展示
SimLab 中自带强大的螺栓创建工具,支持创建 1D 和 3D 螺栓,并支持 1D 和 3D 预紧螺栓。螺栓创建工具可由 Advanced-Bolt Modeling 进入。
螺栓创建工具
使用 SimLab 自带工具创建 1D 预紧螺栓,至少需要三步,分别创建螺头、螺纹以及连接螺头和螺纹,需要点击 20-30 次鼠标。
使用本文的二次开发界面只需点击约 5 次鼠标即可创建 10 个预紧螺栓!快速螺栓工具界面如下图所示。
1D 预紧螺栓效果
02
代码使用说明
为了方便使用,本文末尾提供两个版本的代码,无 界面版本以及有界面版本。
无 界面版本代码文件名为:
1D_Pretension_Bolt_manual.py;
有界面版本代码文件名为:
1D_Pretension_Bolt_interface.py。
无 界面版
无 界面版本只需将代码复 制到 SimLab 的 Python 窗口,回车运行即可。Python 窗口可通过 View 下拉菜单调出,也可通过 F4 快捷键调出。
Python 窗口
Python 窗口激活方法
将代码粘贴到 Python 窗口后,直接回车,系统会依次跳出两个弹窗,提醒用户选择螺头孔面和螺纹孔面。选择相应的面后,点击 OK,弹窗自动关闭,然后自动创建 1D 预紧螺栓。
弹窗提示
有界面版
有界面版界面如下图所示,界面中需输入 bolt_head_hole_face、bolt_hole_face 以及 pretension_force 三个变量。
bolt_head_hole_face 栏选择一个螺头孔面,bolt_hole_face 栏选择一个螺纹孔面,pretension_force 栏设置预紧力大小。三个输入变量设置好后,点击 OK 即可开始 1D 预紧螺栓。
快速螺栓工具界面
由 Advanced > UI Customization > Dialog Designer 进入界面定义窗口,按如下图所示进行设置即可快速创建界面。bolt_head_hole_face 和 bolt_hole_face 变量类型为 Entity > Face,pretension_force 类型为 Text,Unit Type 选择 force,可指定默认值。在 Script file 栏指定代码文件,然后点击 Create 即可创建。
2020.1 版界面定义窗口
2020 版界面定义窗口
03
代码撰写思路
SimLab 中手动创建 1D 预紧螺栓需要三步,创建螺头、创建螺纹以及连接螺头螺纹,自动创建 1D 螺栓同样需要分三步进行。下面对手动创建螺栓过程以及代码转换过程进行说明。
手动创建螺栓过程
SimLab 中提供多种螺栓模板,本文中,螺头使用 Top RBE Alone(5) 类型,如下图所示,左上角类型选择 Template,螺头部分不需要设置其他参数。
螺头类型
螺纹类型为 Bottom RBE alone(6),左上角类型选择 Template,如下图所示,需指定 Pitch 和 Depth 两个参数用于确定螺纹深度。
螺纹类型
螺栓连接类型为 Pretension > Threaded,如下图所示。需指定预紧力和 Bar 单元直径。至此,螺栓模板创建完成。
螺栓连接工具
螺栓连接类型
下一步通过 Advanced > Bolt Modeling > 1D Bolt > Create Bolt 工具创建螺栓,需指定螺头连接的 Body 名称、螺纹连接的 Body 名称以及搜索用的螺纹孔/螺头孔直径。
创建螺栓工具
创建螺栓
代码转换过程
根据上述手动创建螺栓过程,需要手动设置的参数有:螺纹深度相关参数 Depth 和 Pitch、预紧力大小、Bar 单元直径、螺头连接的 Body 名称、螺纹连接的 Body 名称以及搜索用的螺纹孔/螺头孔直径,一共 8 个参数。
但这 8 个参数很多是相互关联的,只需要一个螺头孔面、一个螺纹孔面和预紧力大小 3 个参数即可得到所有 8 个参数。各参数获取过程如下:
根据螺头和螺纹孔面,可使用 simlab.getCylindricalFaceAttributes(modelname, 381880) 接口得到螺头和螺纹孔半径,根据半径即得到 Bar 单元直径、螺纹孔和螺头孔搜索直径;还可得到圆柱面上下圆弧的圆心点,根据两个圆心点坐标即可确定螺纹深度相关参数 Depth 和 Pitch 两个参数。
获取圆柱面参数接口
选择螺头和螺纹孔面后,可使用 Associated Entities 工具将螺头和螺纹连接的 Body 名称分别放到 Group 中。
通过下面的接口可获取 Body 名称:
simlab.getBodiesFromGroup('Bolt_Head_Group')
右键选择关联对象
将关联 Body 保存到 Group 中
无 界面版中设置了两个弹窗,用于提示用户选择螺纹孔面和螺头孔面,弹窗功能由 simlab.messageBox.popupmsg("请选择一个螺纹孔面") 接口实现,弹窗可以非常方便地提示用户选择对象。
提示选择对象的弹窗跳出后,选择过滤器会自动切换为 Face 类型,该功能通过 simlab.setSelectionFilter("Face") 接口实现。
注意:2020.1 之前的版本中,没有 simlab.deselect() 接口,若在旧版 SimLab 中使用无 界面版代码,需要将第 202 行和第 223 行代码注释掉或删除。