hypemesh二次开发-自动创建螺栓连接
点击上方蓝字关注我们
引言
本文要实现的主要功能为运用hypemesh软件,实现螺栓连接的半自动化创建,提升建模效率和准确度。
基本思路
hypemesh的Bolt面板可以较为简便的创建螺栓连接,其基本操作流程如下:
1.进入螺栓创建面板:1D-connetors-bolts
2.设置螺栓类型:
在type面板下设置螺栓连接的类型
3.选择创建螺栓连接位置:
在location 下选择要创建螺栓连接的节点位置,可以为圆心位置,也可以为圆上的一个节点
4.选择要创建螺栓连接的部件:
在num layers 中选择要创建螺栓连接的层数(两层、三层或者更多),在connect what 中选择要创建连接的部件
5.设置容差,完成连接创建
在tolerance中设置容差,其余可保持默认设置,点击create ,可完成螺栓连接的创建。
综上所述,要实现螺栓连接的自动化创建,其思路可以为:
1.选择螺栓创建位置;
2.选择要创建螺栓的部件;
3.调用hypemesh的bolt面板,进行螺栓创建。
上述步骤中的难点在于螺栓创建位置的选取,对于批量螺栓创建,可以采用圆心位置进行螺栓创建,因此,本文要实现的核心内容为螺栓中心节点的创建,hypemesh中hm_ce_gethmholes可以实现上述功能,函数的基本用法如下:
NAME
hm_ce_gethmholes - Get bolt holes information from components.
SYNTAX
hm_ce_gethmholes mark upbound lowbound outerFlag elementFlag orderFlag
TYPE
HyperMesh Tcl Query
DESCRIPTION
mark
Component mark
upbound
Maximum diameter to be considered a bolt hole
lowbound
Minimum diameter to be considered a bolt hole
outerFlag
Output the nodes of the outer circle around bolt holes (yes = 1, no = 0)
elementFlag
Output the elements around bolt holes (yes = 1, no = 0)
orderFlag
Output nodes in order (yes = 1, no = 0)
EXAMPLE
To get the bolt holes between 0.0 to 15.0 from comps 1, 2:
*createmark(comps, 1) 1, 2
hm_ce_gethmholes 1 15.0 0.0 0 0 0
The results—Including componet ids, the centers of bolt holes, and node ids around bolt holes—would look like this:
{1 { {4.69760749465 -4.81066850679 5.0} {3107 4357 4359 4363 4361 4370 4376 4368 4366 3300 4369 4371 4364} }
{ {-5.75024512823 4.10484549438 5.0} {3108 4383 4390 4389 4397 4392 4398 4386 4387 4388 4384 3152 4385} }
}
{2 { {4.69760749465 -4.81066850679 0.0} {1768 1769 1770 1771 1772 1760 1761 1762 1763 1764 1765 1766 1767} }
}
程序实现
本文脚本程序主要要实现的功能为:部件孔的识别及圆心的创建,具体如下:
#选择要创建圆心的部件
*createmarkpanel comps 1 "选择要创建中面的部件"
#获取部件孔信息
set total_list [lindex [hm_ce_gethmholes 1 15.0 0.0 0 0 0] 0]
#获取列表的第一行到最后一行,去除包含的部件信息
set total_list [lrange $total_list 1 end]
#创建列表存储圆心信息
set nodes_list [list]
foreach item $total_list {
#获取圆心坐标
set positon [lindex $item 0]
#获取圆心坐标X值
set x [lindex $positon 0]
#获取圆心坐标y值
set y [lindex $positon 1]
#获取圆心坐标Z值
set z [lindex $positon 2]
#创建圆心节点
*createnode $x $y $z 0 0 0
}
程序效果
模型文件:
程序结果:自动创建圆心节点
查看更多评论 >