Autor
|
Thema: elementweise Zuweisung der Materialrichtungen (1169 mal gelesen)
|
carsten1983 Mitglied Doktorand
Beiträge: 125 Registriert: 11.10.2007
|
erstellt am: 16. Okt. 2007 10:31 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte jedem Element im Bauteil eine eigene Materialrichtung zuweisen. Mein Plan sah vor dies mittels eines Pythonscrips zu tun (siehe Anhang). Laut Abaqus Scripting Reference Manual(40.5.2)kann ich als Regionzur Zuweisung auch Elemente angeben (jedenfalls interpretiere ich das so). Nun funktioniert das bei mir aber nicht. Wenn ich versuche eine Materialrichtung mittels "part.unassignMaterialOrientation(0)" zu löschen, sagt der Interpreter, dass keine Materialrichtungszuweisungen vorhanden sind. Was dann ja soviel heißen dürfte wie, die Zuweisung hat nicht funktioniert. Das Script führt zwar die Zuweisung der Materialrichtung ohne zu meckern aus, aber ohne erkennbares Resultat. Meine Fragen: 1.Hat jemand schonmal direkt Elementen eine Materialrichtung zugewiesen oder immer nur geometrischen Einheiten? 2.Sieht jemand in dem angheängten Auszug des Scripts einen Grund warum es nicht funktioniert? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nicksen Mitglied wissenschaftlicher Mitarbeiter
Beiträge: 239 Registriert: 04.05.2007
|
erstellt am: 17. Okt. 2007 08:41 <-- editieren / zitieren --> Unities abgeben: Nur für carsten1983
Hallo carsten1983, es gibt die Moeglichkeit jedem Element ein eigenes Koordinatensystem zuzuweisen und dieses dann fuer die Materialorientierung zu nutzen. Schau dir im Keyword- Handbuch mal den Abschnitt *ORIENTATION an dort gibt es eine Option DEFINITION=OFFSETTONODES. Dort findest du auch, wie du die Zeilen im *.inp file zu schreiben hast. Skizzen am Ende dieses Abschnittes zeigen dir, welche Punkte du fuer die Definition der Richtungen angeben musst. Fuer 3D Analysen klappt das ziemlich gut, aber Vorsicht ist bei ebenen Elementen geboten. Die Angabe der lokalen Punkte (a,b und c) fuer die Orientierung bezieht sich auf die numerischen Knotennummern. Das sind die Nummern, welche in der jeweiligen Elementbeschreibung zu finden sind. Es ist bei ebenen Elementen moeglich, dass die Nummerierung an einzelnen Elementen Unterschiede aufweist. Wenn du die Orientierungen im inp-file eingetragen hast, dann kannst du im cae einen Job erstellen und als Quelle nicht "model" sondern "file" waehlen bzw. das Modell importieren. Anschließend schaltest du die Materialorientierungen ein und vergleichst, ob alle Richtungen in Ordnung sind. Achtung: Bei mir war es stets so, dass ich die Orientierungen erst nach einer Rechnung im Visualisierungsmodus anschalten konnte. Falls du eine Moeglichkeit kennst, die das schon VOR der Rechnung fertigbringt, dann wuerde ich mich ueber einen Tip freuen! Vielleicht konnte ich dir ein wenig weiterhelfen. Mit dem python- Zeug kann ich leider nichts sagen. Hier sollte ein anderer in die Bresche springen. beste Grueße und viel Erfolg Nixxon ------------------ ========== == Dingsen == ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten1983 Mitglied Doktorand
Beiträge: 125 Registriert: 11.10.2007
|
erstellt am: 17. Okt. 2007 09:29 <-- editieren / zitieren --> Unities abgeben:
Danke erstmal für die Antwort. Hmm ich glaube die Sache mit einer input Datei werd ich noch im Hinterkopf behalten für den Fall, dass ich das überhaupt nicht mit dem Script hinkriege. Ich bin zwar nicht 100%ig darauf festgelegt, aber es gehört halt zu einem kleinen Programm. Und da wär es mir lieb, wenn ich nur mit Python hantieren muss und nicht noch mit ner .inp Datei. Zu der Sache mit der Visualisierung der Orientierungen VOR der Rechnung, kann ich dir nur sagen, dass ich auch noch keine andere Möglichkeit gefunden habe. Also erst rechnen und dan schauen. 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: 17. Okt. 2007 16:40 <-- editieren / zitieren --> Unities abgeben: Nur für carsten1983
Zitat: Original erstellt von carsten1983: Zu der Sache mit der Visualisierung der Orientierungen VOR der Rechnung, kann ich dir nur sagen, dass ich auch noch keine andere Möglichkeit gefunden habe. Also erst rechnen und dan schauen.
Nach einem Datacheck musstest du die odb auch schon öffnen und dir den Anfangszustand anschauen können. Zu dem Problem generell: Schau dir mal in v6.7 das *Distribution an. Eventuell geht da was. Ansonsten ist es vielleicht auch möglich die Elemente mit dergleichen Orientierung in ein Elset schreiben zu lassen und das dann zu verwenden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten1983 Mitglied Doktorand
Beiträge: 125 Registriert: 11.10.2007
|
erstellt am: 19. Okt. 2007 13:12 <-- editieren / zitieren --> Unities abgeben:
Ich hab mal ne neue Fassung des Scripts zu Elementweise Zuweisung der Materialorientierung angehängt. Diese funktioniert nun scheinbar. Das heißt ich kann losrechnen und kann mir die Orientierungen dann plotten lassen. Also ich zieh mal ein Resümé. Ich hab 2 Fehler drin gehabt. 1. Das Keyword "set" bei assignMateriaOrientation war falsch und wurde durch "region" ersetzt. (aber er hat nicht gemeckert? ) 2. der Zugriff auf die Koordinatensysteme dort erfolgte falsch. Im ersten Fall wurde nur ein Feature object und kein Datum object angesprochen. Aber da hat der Interpreter sich auch nicht gemeldet(wahrscheinlich weils in dem selben Befehl war). Vielleicht nützt noch jemand außer mir das Script was. Und danke nochmal für alle die mir helfen wollten. mfg Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adaptiveMesh Mitglied
Beiträge: 67 Registriert: 25.05.2006
|
erstellt am: 19. Okt. 2007 16:51 <-- editieren / zitieren --> Unities abgeben: Nur für carsten1983
Hallo, ich habe noch zwei Anmerkungen zu Deinem Skript. Anstelle von aktuelleCsysNummer.reverse() und dem Zugriff aktuelleCsysNummer[0] hättest Du (aus syntaktischer Sicht) auch direkt aktuelleCsysNummer[-1] verwenden dürfen. Semantisch ist das Vorgehen falsch (und unsicher). datum ist Teil des repository, welches vom Typ dictonary ist. Du hast keine Gewähr dafür, dass das letzte Objekt der (ungeordneten) Menge, die dictonary repräsentiert, das von Dir gerade erzeugte ist. Dass einige Konstruktoren weder ein handle noch das erzeugte Objekt zurückgeben scheint ein Designfehler der abaqus-Bibliotheken zu sein. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |