2016-07-28 3 views
1

Bonsoir,Lecture souligne les résultats 'S' de Abaqus avec python

J'ai fait un script pour obtenir un modèle et pour générer des résultats. J'ai essayé d'écrire dans le même script un moyen pour obtenir de lire les valeurs des contraintes mais python dit:

" File "C:/Users/TFG", line 250, in <module>  RegionTen=odb.rootAssembly.noseSets['Set-1'] KeyError: Set-1 " 

Je comprends que la sortie ne marche pas Set-1, mais ce n'est pas vrai. J'espère que quelqu'un peut m'aider.

Je crée Set-1:


mdb.models['Model-1'].parts['Part-1'].Set(faces= mdb.models['Model-1'].parts['Part-1'].faces.getSequenceFromMask(('[#1 ]',),), name='Set-1') 

Et mon code pour obtenir de lire les contraintes est:


odb = openOdb(path='C:\Temp\Job-1.odb') 

RegionTen = odb.rootAssembly.nodeSets['Set-1'] 
tamFrames = len(odb.steps['Step-1'].frames) 
lastFrames = odb.steps['Step-1'].frames[tamFrames-1] 

stress33 = lastFrame.fieldOutputs['S'].getSubset(position=ELEMENT_NODAL,  region=RegionTen) 
stress13 = lastFrame.fieldOutputs['CTSHR13'].getSubset(position=ELEMENT_NODAL, region=RegionTen) 
stress23 = lastFrame.fieldOutputs['CTSHR23'].getSubset(position=ELEMENT_NODAL, region=RegionTen) 

print(stress11, stress22, stress12) 

Répondre

2

Vous êtes maintenant essayer t o obtenir un ensemble de nœuds au niveau de l'assemblage. Cependant, vous définissez votre ensemble de noeuds à l'intérieur d'une pièce. Dans Odb, vous devez accéder à ce nœud via une instance.

Calculez le nom de l'occurrence à partir du nom de la pièce. Très probablement, c'est juste 'PART-1-1'. Après cela, obtenir la région comme celui-ci:

regionTen = odb.rootAssembly.instances['instanceName'].nodeSets['Set-1'] 

Vous pouvez voir la différence entre ces types ensemble dans Abaqus. Les ensembles de noeuds au niveau de l'instance ont un préfixe - 'InstanceName'. Notez un point après un nom d'occurrence.

+0

Je pense que le nom de l'ensemble sera majuscule 'SET-1' sur l'odb. – agentp

+0

Abaqus convertit parfois les noms en majuscules, donc cela peut arriver, mais je ne suis pas sûr. C'est facile à vérifier, cependant. – hgazibara

1

Vous pouvez accéder aux ensembles de nœuds définis à l'Assemblée à l'aide de la manière suivante:

odb.rootAssembly.nodeSets.keys() 

Et oui, ils semblent apparaître tout en majuscules.