Reputation: 33
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
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