Terese Eriksson
Terese Eriksson

Reputation: 33

Creating Abaqus Set in Python

I would like to create a geometrical set with edges in Abaqus, using Python. I won't know in advance the number of edges. Trying to put the edges in an array and then creating the Set.

myEdgesForSet = []

for i in range(0, len(mdb.models['Model'].parts['Part'].edges)):
    if 'something' in mdb.models['Model'].parts['Part'].edges[i].featureName:
        myEdgesForSet.append(mdb.models['Model'].parts['Part'].edges[i])     

mdb.models['Model'].parts['Part'].Set(edges=myEdgesForSet, name='Set')

So this code dosen't work, and I can't understand why. Even if I try the following it won't work:

mdb.models['Model'].parts['Part'].Set(edges=myEdgesForSet[0], name='Set')

So I tried a different approach:

myEdgesForSet = []

for i in range(0, len(mdb.models['Model'].parts['Part'].edges)):
    if 'something' in mdb.models['Model'].parts['Part'].edges[i].featureName:
        myEdgesForSet.append(mdb.models['Model'].parts['Part'].edges[i].pointOn[0])     

mdb.models['Model'].parts['Part'].Set(edges=mdb.models['Model'].parts['Part'].edges.findAt((myEdgesForSet, )), name='Set')

Which dosen't work, but this works:

mdb.models['Model'].parts['Part'].Set(edges=mdb.models['Model'].parts['Part'].edges.findAt((myEdgesForSet[0], )), name='Set')

Would really like some advice on how I can make a Set with an unknown number of features.

Thanks!

Upvotes: 1

Views: 1385

Answers (1)

Terese Eriksson
Terese Eriksson

Reputation: 33

I solved the issue. If someone else has the same problem:

myEdgesForSet = []

for i in range(0, len(mdb.models['Model'].parts['Part'].edges)):
    if 'something' in mdb.models['Model'].parts['Part'].edges[i].featureName:
        myEdgesForSet.append(mdb.models['Model'].parts['Part'].edges[i:i+1])     

mdb.models['Model'].parts['Part'].Set(edges=myEdgesForSet, name='Set')

Upvotes: 2

Related Questions