Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  SPOS/SNEG bei 3D-Elementen?

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:  SPOS/SNEG bei 3D-Elementen? (2444 / mal gelesen)
DDsDDe
Mitglied



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

Beiträge: 102
Registriert: 04.02.2009

erstellt am: 01. Mrz. 2018 13:34    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 miteinander!

Ich arbeite an einem Modell mit Tie-constraints und erhalte folgende Fehlermeldung:

Code:
***ERROR: UNDERLYING ELEMENT 6 INSTANCE ENDBEAM-1 CAN NOT HAVE SPOS AS A FACE IDENTIFIER

Info zum selben Element :

Code:
Element: ENDBEAM-1.6
  Type: C3D8R
  Material: C24
  Section: ALL.Section-ASSEMBLY_ENDBEAM-1_ALL, Homogeneous Solid Section, Thickness = 0
  Connect: 95, 6, 5, 96, 91, 2, 1, 92
  Results: Integration Point values not available


Ich kenne SPOS (und SNEG) nur wenn Schalenelemente verwendet werden, in meinem Modell sind aber nur 3D Elemente verwendet. Im Forum habe ich unter http://ww3.cad.de/foren/ubb/Forum254/HTML/001578.shtml dieses bestätigt gefunden.

Falls es damit zu tun hat: ich erzeuge die Surface-sets mit python unter Verwendung einer bounding box-Abfrage. Gibt es hier eine Unterscheidung zwischen und muss ich die Box eventuell von "aussen nach innen" erzeugen?

Ueber einen Ausweg wuerde ich ich freuen!

lg!
DDsDDe

------------------
--
nix zu sehen

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: 01. Mrz. 2018 16:59    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 DDsDDe 10 Unities + Antwort hilfreich

Wie sehen denn die Python-Befehle aus, mit denen die Surface erzeugt wird?

[Diese Nachricht wurde von Mustaine am 01. Mrz. 2018 editiert.]

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

DDsDDe
Mitglied



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

Beiträge: 102
Registriert: 04.02.2009

erstellt am: 02. Mrz. 2018 09:35    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!

Ich lasse eine Schleife ueber den Part laufen da ich an mehreren Stellen eine ähnliche Surface generiere. Der Teil zur Surface sieht aber so aus:

Code:

# 1 die Koordinaten der Box (je ein mm grösser als die Kante der Partitionen sind)
current_surface_bounding = (sidebeam_width - 1.0, 0.0 - 1.0, pos_a-1.0, sidebeam_width+ 1.0, sidebeam_height + 1.0, pos_b+1.0)

# 2 der Name des derzeitigen Parts
current_part = mdb.models[name_model].parts[part_name]

# 3 die Edges des derzeitigen Parts
current_edges = current_part.edges

# 4 die Edges die innerhalb der Bounding Box liegen
edges = current_edges.getByBoundingBox(current_surface_bounding[0], current_surface_bounding[1], current_surface_bounding[2], current_surface_bounding[3], current_surface_bounding[4], current_surface_bounding[5])

# 5 der Name der Surface wird definiert
current_surface_name = name_partition.__add__('-').__add__(str(iterator))

# 6 die eigentliche surface wird kreiert
current_part.Surface(side1Edges=edges, name=current_surface_name)


Wichtig sind wahrscheinlich nur die Punkte 1, 3, 4 und 6.
In dem Beispiel werden die Surfaces ueber die Edges definiert. Ist das "sauber" (bin kein Profi im Abaqus-python-script-Befehls-Umfeld)?

Lg!

------------------
--
nix zu sehen

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: 02. Mrz. 2018 14:44    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 DDsDDe 10 Unities + Antwort hilfreich

Um was geht es hier? Sind das Wire oder Kanten von Flächen oder Solids? Oder was anderes?

Hast du schonmal in der GUI eine Surface mit den Kanten erstellt und geschaut was in die .rpy geschrieben wird?

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

DDsDDe
Mitglied



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

Beiträge: 102
Registriert: 04.02.2009

erstellt am: 02. Mrz. 2018 16:37    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

Hi!

Es sind Solids und die Edges werden ausgewählt.
In CAE wird die so generierte Surface angezeigt, ich sehe keinen Unterschied zu einer Surface, die ich zB direkt in CAE erzeugt habe.


Ich werde versuchen, ein Minimi-Beispiel zusammen zu stellen, bei dem diese Surface durch das Script generiert wird, und danach hochladen. Komme nun leider nicht mehr dazu.

Danke jedenfalls fuer die Hilfe/Interesse!
DDsDDe

------------------
--
nix zu sehen

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

DDsDDe
Mitglied



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

Beiträge: 102
Registriert: 04.02.2009

erstellt am: 05. Mrz. 2018 08:54    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


SPOS-base-not_working.cae.txt

 
Hallo!

Hier das Beispiel von dem ich letzte Woche geschrieben hatte (bitte das .txt entfernen).

Der Part "sidebeam" hat zwei Surfaces definiert, wobei einmal die oben beschriebene Variante verwendet wurde (also ueber edges), zum zweiten ueber faces (oben nicht beschrieben).


Folgende Befehle kreieren diese Surface(s):

Code:
# 1 - Surface_from_Edges
current_surface_bounding = (44.0, -1.0, 1199.0, 46.0, 221.0, 1246.0)
current_edges = mdb.models['basis_v1'].parts['sidebeam'].edges.getByBoundingBox(current_surface_bounding[0], current_surface_bounding[1], current_surface_bounding[2], current_surface_bounding[3], current_surface_bounding[4], current_surface_bounding[5])
mdb.models['basis_v1'].parts['sidebeam'].Surface(side1Edges=current_edges, name='Surface_from_Edges')

Code:
# 2 - Surface from Faces
current_surface_bounding = (44.0, -1.0, 1199.0, 46.0, 221.0, 1246.0)
current_faces = mdb.models['basis_v1'].parts['sidebeam'].faces.getByBoundingBox(current_surface_bounding[0], current_surface_bounding[1], current_surface_bounding[2], current_surface_bounding[3], current_surface_bounding[4], current_surface_bounding[5])
mdb.models['basis_v1'].parts['sidebeam'].Surface(side1Faces=current_faces, name='Surface_from_Faces')

Assembly, Meshing und Loads sind gemacht, geben prinzipiell aber wenig Sinn. Der Job "basis_v1" kann aber direkt gestartet werden.

Das Modell, wie ich es hochgeladen habe, bringt die Fehlermeldung "UNDERLYING ELEMENT ... INSTANCE ... CAN NOT HAVE SPOS AS A FACE IDENTIFIER". Wenn die Surface "Surface_from_Edges" löscht, läuft der Job aber durch.

Was ich eben nicht verstehe ist, warum die erste Variante nicht funktioniert. Im Handbuch [1] steht

Zitat:
On three-dimensional or two-dimensional or axisymmetric edges, you can use the following arguments:
    side1Edges
    side2Edges


und wenn ich das richtig deute so sollte diese Variante 1 eigentlich funktionieren?

Jedenfalls, die Definition ueber Faces funktioniert (Variante 2), ich werde mein Script entsprechend umschreiben. Trotzdem bleibt das Rätseln ...


lg!
DDsDDe


[1] http://abaqus.software.polimi.it/v6.14/books/ker/default.htm?startat=pt01ch45pyo05.html

------------------
--
nix zu sehen

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: 05. Mrz. 2018 09:58    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 DDsDDe 10 Unities + Antwort hilfreich

Ich stelle erstmal die Sinnfrage: Wozu brauchst du eine Surface an Kanten von Solids?

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

DDsDDe
Mitglied



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

Beiträge: 102
Registriert: 04.02.2009

erstellt am: 05. Mrz. 2018 11:24    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

Ich brauche die Surface, wie diese erstellt wird, ist erstmals egal.

In meinem Fall die Surface, die von den Edges eingeschlossen wird, und so habe ich mdb.models['basis_v1'].parts['sidebeam'].Surface(side1Edges=current_edges, name='Surface_from_Edges') verstanden. Sollte dies nicht so sein, was hat die Möglichkeit, Edges zu einer Surface zusammenzufuehren, fuer einen Sinn?

------------------
--
nix zu sehen

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: 05. Mrz. 2018 11:56    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 DDsDDe 10 Unities + Antwort hilfreich

Ich glaube du hast da einen kleinen Denkfehler. Wenn du die Kanten in eine Surface packst, ergibt sich daraus nicht die Fläche die sie einschließen.
Bei deinem Versuch wären die Kanten die Surface. Das macht bei Solids i.d.R. keinen Sinn.

Du möchtest eine geometrische Fläche identifizieren und diese dann für irgendwas nutzen oder in eine Surface überführen. Wenn du die Fläche brauchst, dann gibt es mehrere Methoden diese zu bekommen (findAt, getClosest, boundingBox, etc.). Wenn du die Kanten trotzdem nutzen möchtest um an die Fläche zu kommen, brauchst du die Kanten nicht in eine Surface packen. Entweder du verwendest deren ID oder du legst sie in einem normalen Set ab.

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

DDsDDe
Mitglied



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

Beiträge: 102
Registriert: 04.02.2009

erstellt am: 05. Mrz. 2018 12:37    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

Zitat:
Original erstellt von Mustaine:
Ich glaube du hast da einen kleinen Denkfehler. Wenn du die Kanten in eine Surface packst, ergibt sich daraus nicht die Fläche die sie einschließen.
Bei deinem Versuch wären die Kanten die Surface. Das macht bei Solids i.d.R. keinen Sinn.

Genau das habe ich durch die Diskussion mitbekommen ;). Variante 2 mit den Faces ist natuerlich sinnvoller. Und funktioniert auch!


Zitat:
Original erstellt von Mustaine:
Du möchtest eine geometrische Fläche identifizieren und diese dann für irgendwas nutzen oder in eine Surface überführen. Wenn du die Fläche brauchst, dann gibt es mehrere Methoden diese zu bekommen (findAt, getClosest, boundingBox, etc.). Wenn du die Kanten trotzdem nutzen möchtest um an die Fläche zu kommen, brauchst du die Kanten nicht in eine Surface packen. Entweder du verwendest deren ID oder du legst sie in einem normalen Set ab.
Wie ich aus meinen Edges die Surface bekomme, ist mir noch immer nicht ganz klar. Nachdem die andere Variante aber funktioniert, mache ich mir darueber Gedanken, wenn es soweit ist.


Mustaine, vielen Dank jedenfalls fuer die Diskussion und den "Schubser" in die richtige Richtung!
DDsDDe

------------------
--
nix zu sehen

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