我正在 Abaqus 中编写脚本,我用切圆(像奶酪)压碎圆形和正方形。我需要在部件之间放置接触,所以我需要 Surface。
宏管理器生成:
s1 = a.instances['kolo-1'].edges
side1Edges1 = s1.getSequenceFromMask(mask=('[#1 ]', ), )
a.Surface(side1Edges=side1Edges1 , name='kolkoSurf')
问题是: getSequenceFromMask(mask=('[#1 ]', ), )
如何获得#1?我可以更换它吗?我搜索很少,有一些想法可以使用:“查找”、“脸部”、“坐标”,但我无法管理它。
请帮我。我梦想得到一个简单的例子,如何使用 X、Y 或其他方式提取这个表面。
BR,
女士
您使用具有默认日志选项的宏管理器记录了上述日志。因此,变量side1Edges1
在您的日记中使用以下定义getSequenceFromMask()
-方法。此方法是记录您在记录过程中通过单击 GUI 执行的选择。这意味着您单击 GUI 选择一条边,结果是getSequenceFromMask()
-方法作用于s1
这是实例所有边的集合'kolo-1'
.
根据 Abaqus 脚本参考指南 6.14 - 7.2.2 的方法getSequenceFromMask()
当涉及大量对象时效率很高。但是,如果您尝试自定义日志文件以选择要使用的另一个几何元素,这并不是很有帮助。有两种解决方案:
-
解决办法:粘贴命令
session.journalOptions.setValues(replayGeometry=COORDINATE, recoverGeometry=COORDINATE)
进入 Abaqus CAE 底部的 Abaqus 命令行来设置成员replayGeometry
and recoverGeometry
您的 JournalOptions 对象的COORDINATE
并重复记录你的日记。
大多数时候,您可以在发出上述命令后执行旧日志,从而省略再次单击 GUI。
然后,您可以保存项目(最好使用新名称),并使用新创建的日志。
在新的日志中,命令getSequenceFromMask(mask=('[#1 ]', ), )
将被基于坐标的选择所取代,以代表您记录的 GUI 单击。
然后,您可以修改坐标以自定义日志文件并选择您想要在后续建模步骤中使用的边缘。
解决方案:定义side1Edges1
使用您在 python 脚本的前面几行中从 Scratch 定义的变量。我建议使用日志文件作为蓝图,其中所有点击事件都必须使用您自己定义的众所周知的变量进行替换。例如,定义点列表myPoints = [(0,0), (0,1) ]
使用您自己的逻辑,然后使用这些点作为方法的参数,例如myLine = mySketch.Line(point1=myPoints[0], point2=myPoints[1])
,构造新变量,例如myLine
以便在后续建模步骤中使用。
要基本了解使用 Abaqus Python API 的建模工作流程,我可以推荐
Puri, G. M., 2011。Abaqus 的 Python 脚本:通过示例学习,第 1 版,而且大多数大学都很难提供。
查看 Abaqus 基准指南可能会有所帮助,因为一些较新的基准包含 Python 脚本(例如断裂力学)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)