2016-05-05 7 views
0

Ich versuche ein Abaqus/Python-Skript zu schreiben, das alle Elemente auswählt, die zu einem bestimmten Gesicht "gehören". I.e. nimm alle Elemente, die eine Verbindung zu einer Fläche eines vermaschten Würfels haben (ich werde die Gesamtkraft berechnen, die später auf diese Fläche für Kraft-Verschiebungs- oder Spannungs-Dehnungs-Kurven wirkt).Abaqus: Skript zum Auswählen von Elementen auf einer Oberfläche

Wenn ich es mit der GUI bekomme ich:

mdb.models['Model-1'].rootAssembly.Set(elements= 
    mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].elements.getSequenceFromMask(
    mask=('[#0:5 #fff80000 #ff #f #ffe00000 #f000000f #3f', 
      ' #0:6 #fffe #c0003f00 #3 #3fff8 #ffc00 ]',),), name='Set-1') 

Aber getSequenceFromMask funktioniert nicht in einem allgemeinen Fall. Ich habe versucht, findat ohne Glück zu verwenden.

Gibt es eine Möglichkeit, das zu tun?

Antwort

0

definiert ein Gesicht auf dem Bauteil oder eine Baugruppe eingestellt:

part.Set('facename',faces=part.faces.findAt(((1,0,0),),)) 

(1,0,0) wo ein auf dem Gesicht Koordinaten überall ist. (Sie nicht einen Punkt auf einer Kante/Ecke verwenden though)

dann nach kämmen Sie die Elemente auf dieser Fläche befestigt zugreifen können, so etwas wie:

instance.sets['facename'].elements 

Notiz, wenn Sie auf diese Elemente erhalten möchten die ODB nach einer Analyse läuft, ist es ein wenig anders:

instance.elementSets['FACENAME'].elements 

beachten Sie, dass die eingestellte Name wird auf der ODB upcased ..

+0

Thank you! Das macht den Job. –

0

Ich hatte dieses Problem vor ein paar Tagen selbst. Vielleicht liege ich falsch, aber soweit ich weiß, gibt es keine Möglichkeit, bestimmte Elemente direkt auszuwählen. Du kannst sie mit einer "Begrenzungs-Box" oder einer "Begrenzungs-Kugel" versehen oder du kannst sie durch deine Teile/Instanzen-Gesichter und Zellen erhalten. Wenn Sie die Elemente spezifischer auswählen müssen, können Sie sie nach den Knoten abrufen, mit denen sie verbunden sind. Sie können den Befehl "findAt" mit diesen Knoten verwenden und die Elemente mit dem Befehl "getElements()" abrufen.

So habe ich es gelöst und es funktioniert ganz gut. Wenn es andere Wege zu lösen gibt, werde ich mich freuen, sie zu hören, denn das ist manchmal wirklich frustrierend.

Prost

Verwandte Themen