Autor
|
Thema: Verschiebungen auf einzelne Konten aufbringen (1842 mal gelesen)
|
Jeremy Mitglied
Beiträge: 129 Registriert: 04.02.2009
|
erstellt am: 28. Apr. 2010 14:09 <-- editieren / zitieren --> Unities abgeben:
Hallo, folgenden Situation: ich habe ein Bauteil mit einer beliebigen Kontur (2D). Dieses Bauteil hat ein Material und ist vernetzt. Jetzt muss ich die Randbedingungen setzen. Die Randbedingungen erhalte ich in Form von Verschiebungswerten entlang der Bauteilkontur von einem Bildanalyseprogramm (also ein Zahlenquartett: x, y, ux, uy; d.h. Punkt mit Verschiebung in x- und y-Richtung). Folgende Frage: 1) Wie kann ich die Knoten eines Netzes mit Hilfe eine Python-Scripts gezielt ansprechen? Geht das nur bei einem orphan mesh? 2) Kann ich Knoten in der Umgebung eines Punktes mit den Koordinaten (x, y) suchen lassen? 3) Gibt es alternative Vorschläge? Ich bin für alle Vorschläge dankbar. Gruß Jeremy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3554 Registriert: 04.08.2005 Abaqus
|
erstellt am: 28. Apr. 2010 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für Jeremy
Evtl. ist es andersrum einfacher: - lege alle BC-Knoten in ein Set und schreibe die .inp - lies die Knotennummern mit einem Script aus - ermittle die Koordinaten für jeden Knoten (steht ja bei *Node) - berechne/interpoliere die aufzubringende Verschiebung mit deinem Zahlenquartet - schreibe die Werte für jede Richtung in eine Liste/Datei, die du dann mit *Boundary und *Include dazuholen kannst Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jeremy Mitglied
Beiträge: 129 Registriert: 04.02.2009
|
erstellt am: 28. Apr. 2010 17:08 <-- editieren / zitieren --> Unities abgeben:
Hallo Mustaine, das klingt gut. Ich habe gehofft, dass ich alle Knotenummern mit deren Koordinanten über eine Python-Befehl aus der cae-Datei lesen kann. Einen solchen Befehl scheint es für CAE nicht zu geben. Danke für deine Antwort. Die Knotennummern mit einen Scripts auszulesen, meinst du aus der inp zu lesen, oder?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jeremy Mitglied
Beiträge: 129 Registriert: 04.02.2009
|
erstellt am: 30. Apr. 2010 10:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum, ich habe an meinem oben geschilderten Problem noch etwas herumgetüftelt und eine sehr simple Methode gefunden, die Knotennummer und Knotenkoordinaten aus einem Netz herauszulesen. Das Ergebnis ist ein sehr einfaches Python-Script, das ich hier zur Verfügen stellen möchte: Beispiel: Es ist eine CAE-Modell mit einem 2D-Part (Part-1) vorhanden. Dieses Part findet man im Strukturbau unter "Part-1-1" im Assembly. Um die Knoten und deren Koordinaten zu erfahren, nutze man folgenden Code: Code:
#Zugriff auf das Modell mit Namen "Model-1" m = mdb.models['Model-1']#Zugriff auf den Zusammenbau a = m.rootAssembly #Zugriff auf die Kopie 1 des Part-1 im Zusammenbau i = m.rootAssembly.instances['Part-1-1'] #Schleife über alle Knoten und Ausgabe ihrer Nummern und Koordinaten for k in range(len(i.nodes)): #i.nodes = eine Liste(?) mit den Verweisen auf die Knoten #k läuft von 0 bis (AnzKnoten-1) print 'KnotenNr.:', k+1 #k+1 ist die Knotennummer print 'KnotenPos:', a.getCoordinates(i.nodes[k]) #k ist Zählvariable
Weitere Infos dazu auch im Scripting Reference Manual 5.1.8 (CAE 6.8) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |