首页/文章/ 详情

ANSA二次开发创建螺栓和Box(代码篇)

4月前浏览170
上文ANSA二次开发创建螺栓和Box连接里已经介绍了这种新的螺栓连接方式,优点是连接方便,不用顾及B总成的节点编号。缺点就是建模麻烦,需要一个个手动偏移点,建立box和SET,还有rbe2。
但是,我们有ANSA二次开发这个黑科技,可以一键就生成螺栓和BOX,下面就由我来为大家讲解下代码和使用方法。
首先用mesh模块下的Info命令,读取B总成的rbe2的主点坐标,坐标如下图:

我们直接复 制他的坐标,下面来到我们的A总成界面,运行我们的代码,打开是如下的界面:
在这个框里粘贴之前复 制的坐标,点击创建Box按钮!
再去选择A总成的螺栓孔的rbe2的主点。
这样我们的螺栓和box,以及box的rbe2就创建好了,这里要注意的是,在执行脚本前,我们需要把A总成的include设置成当前,如下图,这样我们脚本创建的螺栓,box等一系列东西就会自动归到A总成的include下面
代码其实非常简单,我们需要两个beam的端点来创建螺栓





























p, li { white-space: pre-wrap; } # 提示用户选择一个点node = base.PickEntities(constants.LSDYNA, 'NODE')
if not node:print("未选择点,操作取消")return
node = node[0]  # 获取选择的节点对象
    # 获取节点1坐标fields = ('NID','X''Y''Z')coord_dict = base.GetEntityCardValues(constants.LSDYNA, node, fields)N1 = coord_dict['NID']x = coord_dict['X']y = coord_dict['Y']z = coord_dict['Z']print(f"选择点坐标: ({N1},{x:.3f}{y:.3f}{z:.3f})")    #创建梁单元pid=[]pids=base.CollectEntities(constants.LSDYNA,None,'__PROPERTIES__')for pi in pids:pi_id=base.GetEntityCardValues(constants.LSDYNA,pi,("PID",))["PID"]pid.append(pi_id)pid=max(pid)+1val2={'PID':pid,"ELFORM":'9 S-W','CST':'1 tubul.','TS1':1,'TS2':1}base.CreateEntity(constants.LSDYNA,'SECTION_BEAM_ELFORM_9',val2)val1={'PID':pid,"N1":N1,"N2":N2,'x1':1}base.CreateEntity(constants.LSDYNA,'ELEMENT_BEAM_ELFORM_9',val1)
之后我们用复 制粘贴得到的B总成的端点来创建box,并创建set,再创建Box的rbe2。




























p, li { white-space: pre-wrap; } # 定义立方体尺寸 (1mm边长)cube_size = 1.0  # mmhalf_size = cube_size / 2.0
    # 计算立方体对角点坐标min_point = (x1 - half_size, y1 - half_size, z1 - half_size)max_point = (x1 + half_size, y1 + half_size, z1 + half_size)
    # 创建BOX几何体box_props = {'XMN': x1 - half_size, 'XMX': x1 + half_size, 'YMN': y1 - half_size,'YMX': y1 + half_size,'ZMN': z1 - half_size,'ZMX': z1 + half_size }box = base.CreateEntity(constants.LSDYNA, 'DEFINE_BOX_GENERAL', box_props)
print(f"成功创建边长为{cube_size}mm的立方体 (ID={box._id})")#创建一个sets_id=[]SETS=base.CollectEntities(constants.LSDYNA,None,'SET')
SID=SETS[-1]._id+1print(SID)SET=base.CreateEntity(constants.LSDYNA,'SET',{'SID':SID})base.AddToSet(SET,box)#创建rigidbase.CreateEntity(constants.LSDYNA,'CONSTRAINED_NODAL_RIGID_BODY',{'NSID':SID})return 0 


来源:FEAer
二次开发ANSACSTGID螺栓
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-07-06
最近编辑:4月前
FEAer
本科 | CAE工程师 到点就下班的CAE打工人
获赞 105粉丝 153文章 144课程 2
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈