Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  surfaces definieren über python script

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  surfaces definieren über python script (426 mal gelesen)
felix0685
Mitglied
Wissenschaftlicher Mitarbeiter

Sehen Sie sich das Profil von felix0685 an!   Senden Sie eine Private Message an felix0685  Schreiben Sie einen Gästebucheintrag für felix0685

Beiträge: 9
Registriert: 17.06.2021

erstellt am: 17. Jun. 2021 12:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

ich beschäftige mich mit der Simulation von Kristallplastizitäten in Abaqus.

Der Workflow sieht so aus, dass ich über Neper eine Tesselierung erstelle (Referen Volumen Element mit unterschiedlichen Kornstrukturen) und diese über gmsh vernetze, ein Input file erzeuge und dieses dann in Abaqus importiere. Dann kann ich den einzelnen Körner Materialkennwerte zuweisen und weiter machen...

Soweit funktioniert das ganz gut, allerdings stehe ich derzeit vor dem Problem, dass ich gerne Flächen definieren möchte um Randbedingungnen zu setzen, da das ganze automatisiert werden am besten über ein script.

Da das Modell ein Würfel ist, sollte dies kein wirkliches Problem darstellen. Ich kann alle Knoten in einer Ebene auswählen über den Befehl "getByBoundBox()", das klappt. Allerdings benötige ich die für das aufbringen von Drücken etc.

Kennt einer zufällig einen befehl ähnlich zu "getBoundBox" nur um eine Fläche auszuwäheln um eine Surface zu definieren?

ich habe mir den Macro recorder schon angeschaut, allerdings komm ich dort derzeit nicht wirklich weiter, da ich eine Liste der Elemente brauche und daran scheitert es.

vielen Dank

Felix

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3554
Registriert: 04.08.2005

Abaqus

erstellt am: 18. Jun. 2021 10:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für felix0685 10 Unities + Antwort hilfreich

Du kannst mit einer Box Elemente einsammeln und von denen dann mit getExteriorFaces() die externen Flächen abgreifen.

Alternative:
Wenn dein Mesh ein Würfel ist und du alle Elementflächen einer Seite haben möchtest, kannst du auch alle äußeren Oberflächen des gesamten Netzes abgreifen und dann in einer Schleife die Normalenrichtung prüfen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mefh
Mitglied



Sehen Sie sich das Profil von Mefh an!   Senden Sie eine Private Message an Mefh  Schreiben Sie einen Gästebucheintrag für Mefh

Beiträge: 45
Registriert: 04.03.2015

erstellt am: 21. Jun. 2021 09:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für felix0685 10 Unities + Antwort hilfreich

Man kann auf faces auch direkt über die Koordinaten bestimmen:

f = mdb.models[modelName].rootAssembly.instances[partName].faces.findAt( (x, y, z) )
fI = f.index
mdb.models[modelName].rootAssembly.Set( name='Set-Face', faces=mdb.models[modelName].rootAssembly.instances[partName].faces[fI:fI+1], ))

Alternativ gibt
mdb.models[modelName].rootAssembly.instances[partName].faces[i].pointOn
eine Koordinate auf der Fläche zurück.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz