2016-09-22 2 views
0

Ich weiß, wie Elementwert oder Element Knoten Stresswert (nicht überladen) mit Python-Skript lesen.Wie durchschnittliche Knotenbelastung von abaqus ODB-Datei mit Python-Skript zu lesen?

field = stressField.getSubset(region=topCenter,position=INTEGRATION_POINT, elementType = 'CAX4') 

Aber ich möchte gemittelten Stress-Werte an Knoten. FYI, mein Odb enthält keine Knotenpositionsdaten für Stress (d. H. Position = NODAL).

+0

Wenn Sie "position = NODAL" angeben, sollte Abaqus die Werte von INTEGRATION_POINT interpolieren. – hgazibara

+0

Hallo @ Hgazibara, danke für Ihre Antwort. aber es funktioniert nicht. Ich bekomme leere Array, wenn ich Position = NODAL verwende. –

+0

Wie hast du 'region' definiert? Ist es ein Elementsatz, ein Knotensatz, ...? – hgazibara

Antwort

0

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'),)),) 
+0

Danke @agentp, aber ich brauche einzigartige Knotenwerte. Ist es möglich, die einzigartigen Knotenspannungswerte von einem odb-Anzeigeobjekt zu erhalten? –

+0

Gotcha, siehe Bearbeiten. – agentp

Verwandte Themen