abaqus参数化建模创建coupling闪退原因分析
511 字
3 分钟
abaqus参数化建模创建coupling闪退原因分析
abaqus参数化建模闪退原因分析
今天在复现论文的时候,在利用python参数化建模过程中,遇到运行代码abaqus直接闪退的情况。本篇文章记录一下debug的过程,如果之后再遇到类似的问题方便参考。
specimen_part = model.Part(name='Specimen',dimensionality=THREE_D,type=DEFORMABLE_BODY) specimen_instance = assembly_inst.instances['Specimen-1'] #设置参考点 rp1 = assembly_inst.ReferencePoint(point=(0,0,0))
fix_rp =assembly_inst.referencePoints[rp1.id] #设置固定端coupling fix_edges = specimen_part.edges.findAt( ((specimen_width/2.0,0,0),), ((-specimen_width/2.0,0,0),), ((0,specimen_height/2.0,0),), ((0,-specimen_height/2.0,0),), ) fix_region = regionToolset.Region(referencePoints=fix_rp) edge_region = regionToolset.Region(side1Edges=fix_edges)
model.Coupling(name='fix-coupling', controlPoint=fix_region, surface=edge_region, influenceRadius=WHOLE_SURFACE, couplingType=KINEMATIC, localCsys=None, u1=ON, u2=ON, u3=ON, ur1=ON, ur2=ON, ur3=ON )这是从完整代码中截取的相关代码,用于给悬臂梁的固定端创建一个K-coupling便于后续施加固定约束。将代码导入abqus运行时程序弹出错误提示
TypeError: referencePoints; found ReferencePoint, expecting tuple
报错信息提示给出的问题代码
fix_region = regionToolset.Region(referencePoints=fix_rp)根据报错信息,将传入参数修改为元组
fix_region = regionToolset.Region(referencePoints=(fix_rp,))再次运行代码,abaqus软件直接闪退。
一开始,我将排查的重点放在了regionToolset,但是尝试了很多方法都没有效果,一旦传入元组,软件直接闪退。直到后来在chatGPT的辅助下发现了问题。创建coupling需要一个参考点和需要约束的几何结构,选取参考点的代码如下
rp1 = assembly_inst.ReferencePoint(point=(0,0,0)) fix_rp =assembly_inst.referencePoints[rp1.id] fix_region = regionToolset.Region(referencePoints=fix_rp)可以看到,选取的参考点位于装配体层级。选取几何结构的代码如下
fix_edges = specimen_part.edges.findAt( ... ) regionToolset.Region(side1Edges=fix_edges)选取的边位于零件层级。参考点和几何结构的层级不一致导致软件报错,该错误不会弹出任何报错信息软件直接闪退。
一开始将regionToolset的传入参数改为元组的做法是完全正确的,代码成功运行了该行代码,而真正的报错位置位于该行代码之后。不过由于程序闪退导致没有错误信息,导致我一开始完全错误定位的bug位置,以至于在debug过程中浪费了许多时间。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
abaqus参数化建模创建coupling闪退原因分析
https://firefly.cuteleaf.cn/posts/abaqus/abaqus-coupling-region-flash-crash/随机文章随机推荐














