Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  2D Axialsymmetrisch - FindAt - Surface - Python

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:  2D Axialsymmetrisch - FindAt - Surface - Python (1555 mal gelesen)
Flexi
Mitglied



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

Beiträge: 23
Registriert: 25.09.2014

erstellt am: 25. Sep. 2014 11:17    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,

mit Abaqus/CAE bin ich seit einigen Monaten recht gut vertraut.
Allerdings stehe ich bei der Pythonprogrammierung sowie Subroutinenerstellung noch am Anfang.

Zu meinem aktuellen Problem:
Ich möchte einen Zylinder modellieren und diesem Surfaces zuweisen. Da es sich um einen axialsymm. Körper handelt, habe ich ein 2D Modell (Rectangle) erstellt und ihm bei der Netzerstellung DCAX4-Elemente zugewiesen.

Skript.py:

print ' '
print 'Erstellen der Geometrie'
print ' '

#***************************************************************************************
# Modellparameter
#
# Einheiten:
#    Laengeneinheit    [mm]
#***************************************************************************************
innenradius =  0.0
aussenradius = 10.0
hoehe = 80.0

elementanzahl = 20
verfeinerung  = 5.0

#***************************************************************************************
# Erstellung der Geometrie
#***************************************************************************************
mdb.models[modelName].ConstrainedSketch(name='__profile__', sheetSize=aussenradius)
mdb.models[modelName].sketches['__profile__'].sketchOptions.setValues(viewStyle=AXISYM)
mdb.models[modelName].sketches['__profile__'].ConstructionLine(point1=(0.0, -50.0), point2=(0.0, 150.0))
mdb.models[modelName].sketches['__profile__'].rectangle(point1=(innenradius, 0.0), point2=(aussenradius, hoehe))
mdb.models[modelName].Part(name=partName, dimensionality=AXISYMMETRIC, type=DEFORMABLE_BODY)
mdb.models[modelName].parts[partName].BaseShell(sketch= mdb.models[modelName].sketches['__profile__'])
del mdb.models[modelName].sketches['__profile__']

#***************************************************************************************
# Erstellung des Netzes
#
# Elementtypen axialsymmetrisch, MassDiffusionStep
# linear: DCAX4
# quadratisch: DCAX8

Edges kann ich rel. einfach via findAt zuweisen. Aber kann ich dem Körper nun surfaces (surface sets) zuordnen? könnte ich bspw die äußere Kante (Symmetrie --> Mantelfläche) als surface definieren?!

Ich hoffe ich konnte euch die Rahmenbedingungen hinreichend erklären und jemand hat einen Tipp...

Viele Grüße

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: 26. Sep. 2014 09:22    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 Flexi 10 Unities + Antwort hilfreich

Du kannst Surfaces erstellen und wählst dabei in axialsymmetrischen Modellen die Edges des Körpers aus.

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

Flexi
Mitglied



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

Beiträge: 23
Registriert: 25.09.2014

erstellt am: 26. Sep. 2014 09:26    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

Hmm... , keiner der eine Antwort, Frage oder einen Korrekturvorschlag hat?!

Über die rpy habe ich folgendes bekommen:

mdb.models['Model-1'].rootAssembly.Surface(name='Surf-Mantel', side1Edges=
    mdb.models['Model-1'].rootAssembly.instances['Zylinder'].edges.getSequenceFromMask(
    ('[#2 ]', ), ))

Nur möchte ich dies über Python ansprechen können.
Kann ich also einfach edges via FindAt definieren, ggf. ganze sets aus edges und diese dann
als surface definieren?

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

Flexi
Mitglied



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

Beiträge: 23
Registriert: 25.09.2014

erstellt am: 26. Sep. 2014 09:41    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

Ahh, Sorry, habe deine Info nicht gelesen.
Teste es gleich mal aus und gebe eine Rückmeldung.
Danke!

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

Flexi
Mitglied



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

Beiträge: 23
Registriert: 25.09.2014

erstellt am: 26. Sep. 2014 15:25    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,

habe folgenden Code verwendet:

surfMantel  = mdb.models[modelName].rootAssembly.Surface(side1Edges=mdb.models[modelName].rootAssembly.instances[partName].edges.findAt(10.0,40.0,0.0), name='Surf-Mantel')

Ausgangspunkt war:
.
.
Erstellung - Sets
#***************************************************************************************
mdb.models[modelName].rootAssembly.Set(name='Set-All', faces=mdb.models[modelName].rootAssembly.instances[partName].faces.getSequenceFromMask(mask=('[#1 ]', ), ))

surfMantel  = mdb.models[modelName].rootAssembly.Surface(side1Edges=mdb.models[modelName].rootAssembly.instances[partName].edges.getSequenceFromMask(mask=('[#6 ]', ), ), name='Surf-Mantel)
.
.

Ich muss findAt doch immer in 3D angeben, oder?!

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



Architekt (d/m/w)
<...
Anzeige ansehenArchitektur
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: 29. Sep. 2014 10:20    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 Flexi 10 Unities + Antwort hilfreich

Bei findAt ist axialsymmetrisch die z-Komponente null.

Auf Assembly-Ebene holst du dir eine Edge z.B. so:

Code:
x = mdb.models['Model-1'].rootAssembly.instances['Part-1-1'].edges.findAt((15.0, 20.0, 0))

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