Dies ist eines dieser Dinge, die mehr umständlich als es sein sollte. Sie müssen xydata erstellen:
session.xyDataListFromField(odb=odb,
outputPosition=ELEMENT_NODAL,
variable=(('S', INTEGRATION_POINT),),
elementSets=('PART-1-1.SETNAME',))
dies schafft ein Wörterbuch mit Objekten für jeden Knoten jedes Element und jede Spannungskomponente (dh riesig.). Leider ist das Wörterbuch durch umständliche Descriptor Strings eingegeben, zB:
session.xyDataObjects['S:S11 PI:PART-1-1 E: 15 N:2'].data
die 11 Stress gibt Komponente des Knotens 2 in Verbindung mit Element 15. Um die Verwendung der Daten in einem Skript, das Sie benötigen, zu machen entweder die Saiten zu konstruieren, oder Schleife über das Wörterbuch und analysieren Sie die positionDescription
für jedes Objekt.
Edit: wenn Sie möchten, dass der Knoten Durchschnitt es ist ziemlich ähnlich. Sie tun:
session.xyDataListFromField(odb=odb,
outputPosition=NODAL,
variable=(('S', INTEGRATION_POINT),),
nodeSets=('PART-1-1.SETNAME',))
und die Wörterbuchobjekte verkeilt wie:
session.xyDataObjects['S:S11 (Avg: 75%) PI:PART-1-1 N:2'].data
Notiz Sie mehrere session.xyDataListFromField
Anrufe ausgeben kann und alle Daten geht in xyDataObjects
(Zum Beispiel, wenn Sie Stress wollen und belasten Sie kann sowohl auf einmal verarbeiten)
Für Vollständigkeit, wenn Sie nur eine bestimmte Komponente (n) möchten, können Sie verlangen, wie:.
variable=(('S', INTEGRATION_POINT,((COMPONENT, 'S11'),)),)
Wenn Sie "position = NODAL" angeben, sollte Abaqus die Werte von INTEGRATION_POINT interpolieren. – hgazibara
Hallo @ Hgazibara, danke für Ihre Antwort. aber es funktioniert nicht. Ich bekomme leere Array, wenn ich Position = NODAL verwende. –
Wie hast du 'region' definiert? Ist es ein Elementsatz, ein Knotensatz, ...? – hgazibara