我正在编写python的ABAQUS软件代码,我需要在代码的一部分写下面的代码。
a1.InstanceFromBooleanMerge(name='agg', instances=(a1.instances['Part-1-1'],
a1.instances['Part-2-1'], ), keepIntersections=ON,
originalInstances=DELETE, domain=GEOMETRY)
在上述代码中,Part的数量会有所不同,我不知道在运行代码之前我有多少部分。
所以,例如,如果我有3个部分,我该如何调整我的代码?在这种情况下,代码必须与以下内容相同;
a1.InstanceFromBooleanMerge(name='agg', instances=(a1.instances['Part-1-1'],
a1.instances['Part-2-1'], a1.instances['Part-3-1'],),
keepIntersections=ON, originalInstances=DELETE, domain=GEOMETRY)
正如您所看到的,这是一个命令,我不知道如何在命令中定义For
循环的内容???
答案 0 :(得分:1)
你可以使用列表理解来建立列表"在"方法调用:
a1.InstanceFromBooleanMerge(
name='agg',
instances=tuple([a1.instances["Part-%s-1" % i] for i in range(1,4)]),
keepIntersections=ON,
originalInstances=DELETE,
domain=GEOMETRY)
其中4是你得到的矩阵的长度加1,例如range(1, len(matrix)+1)
另一种方法是在方法调用之外构建元组:
instances = tuple([a1.instances["Part-%s-1" % i] for i in range(1,4)])
a1.InstanceFromBooleanMerge(
name='agg',
instances=instances,
keepIntersections=ON,
originalInstances=DELETE,
domain=GEOMETRY)