如何在命令中定义循环?

How can I define a loop in a command?

我正在通过 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 循环???

您可以使用列表理解来构建列表"within"方法调用:

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)