Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Surface mit findAt erstellen und DatumsPoint finden

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:  Surface mit findAt erstellen und DatumsPoint finden (3089 mal gelesen)
gultimore
Mitglied


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

Beiträge: 9
Registriert: 23.07.2010

erstellt am: 23. Jul. 2010 10: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

Hallo

ich bin gerade dabei, mich das erstellen von Simulationen mit Hilfe von Python einzuarbeiten. Leider stoße ich immer wieder auf Probleme, zu denen ich keine Antwort finde.

Am Schluss findet ihr einen Ausschnitt aus der Simulation, die ich gerade versuche zu erstellen. D.h. ich will das Aufheizen eines Ringes simulieren. Derzeit behelfe ich mich aber immer noch sehr stark mit Vorschlägen, die mir die CAE liefert, anstatt unabhängig von der programmieren zu können.

Folgende Probleme habe ich aktuell:
1.) Ich will gerne Oberflächen erstellen. Ich lese mir die vorhanden Flächen mit "s = RingPart.faces" aus und suche mir die passende Fläche mit "s.findAt()". Leider kann ich die dadurch gefunden Fläche nicht verwenden, um eine Oberfläche mit "RingPart.Surface()" zu erstellen. Entweder erhalte ich "Feature creation failed." oder "TypeError: keyword error on side1Faces", je nachdem, wie ich die Fläche übergebe.

2.) Ein ähnliches Problem habe ich, wenn ich meinen Ring Partitionieren will. Mit "Hparti=RingPart.DatumPointByCoordinate" erstelle ich mir einen Datumspunkt, an dem ich den Ring Partitionieren will. Wie kann ich diesen Punkt weiter verwenden? Wenn ich Hparti8 verwende, erhalte ich wieder entweder ein "Feature creation failed." oder "TypeError: keyword error on point".

Code:

from abaqus import *
from abaqusConstants import *
from caeModules import *
from driverUtils import executeOnCaeStartup

RingModel=mdb.models['Model-1']

R_I=25.0
R_A=35.0
H=15.0

RingSession=session.Viewport(name='Viewport: 1', origin=(0.0, 0.0), width=168.,height=129.)
RingSession.makeCurrent()
RingSession.maximize()

RingScetch = RingModel.ConstrainedSketch(name='__profile__',sheetSize=200.0)
g, v, d, c = RingScetch.geometry, RingScetch.vertices, RingScetch.dimensions, RingScetch.constraints


RingScetch.setPrimaryObject(option=STANDALONE)
RingScetch.ConstructionLine(point1=(0.0, -100.0), point2=(0.0, 100.0))
RingScetch.FixedConstraint(entity=g[2])
RingScetch.rectangle(point1=(R_I, H), point2=(R_A, 0.0))


RingPart = RingModel.Part(name='Ring', dimensionality=THREE_D,type=DEFORMABLE_BODY)

RingPart.BaseSolidRevolve(sketch=RingScetch, angle=90.0, flipRevolveDirection=OFF)


s = RingPart.faces
#side1Faces = s.getSequenceFromMask(mask=('[#8 ]', ), )
#gefFace = s.findAt((R_I+1,H,1),(R_I+2,H,2))
gefFace = s.findAt((R_I+1,H,1))

#RingPart.Surface(side1Faces=gefFace, name='Surf-1')
#RingPart.Surface(side1Faces=[gefFace], name='Surf-1')


HpartiCoords=(R_I,5,0)
Hparti=RingPart.DatumPointByCoordinate(coords=(HpartiCoords))

e, v, d, c = RingPart.edges, RingPart.vertices, RingPart.datums,RingPart.cells
gefCelle=c.findAt(((R_I+R_A)/2,0.1,1))
gefEdge=e.findAt((R_I,H/2,0))
#RingPart.PartitionCellByPlaneNormalToEdge(edge=gefEdge, cells=gefCelle, point=d[2])
#RingPart.PartitionCellByPlaneNormalToEdge(edge=gefEdge, cells=gefCelle, point=Hparti)
RingPart.PartitionCellByPlaneNormalToEdge(edge=gefEdge, cells=gefCelle, point=[Hparti])


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

femchen
Mitglied
wiss. MA


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

Beiträge: 166
Registriert: 25.06.2009

erstellt am: 23. Jul. 2010 13:43    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 gultimore 10 Unities + Antwort hilfreich

1.) Für die Faces bei der Partition mußt Du eine Sequenz angeben:

RingPart.Surface(side1Faces=s[gefFace.index:gefFace.index+1], name='Surf-1')

Bei Bedarf kann man sich diese Sequenz aus mehreren Teilen bauen z.B.:
sequenz = faces[1:2] + faces[4:6] + ...


2.) Du must den Datumpunkt über seine Id angeben:

RingPart.PartitionCellByPlaneNormalToEdge(edge=gefEdge, cells=gefCelle, point==RingPart.datums[Hparti.id]))

3.) Statt findAt solltest Du besser getClosest verwenden, um nicht in evtl. Probleme mit Rundungsfehlern zu laufen.

[Diese Nachricht wurde von femchen am 23. Jul. 2010 editiert.]

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

gultimore
Mitglied


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

Beiträge: 9
Registriert: 23.07.2010

erstellt am: 23. Jul. 2010 15:50    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

Vielen Dank 
Hast mir viel geholfen und vor allem dein zweiter Tipp hat wohl eine ganze Reihe meiner Probleme gelöst.

Ist den eine Sequenz irgendwas eigenständiges. Als ich danach gesucht habe, habe ich es nur als Oberbegriff für Listen, Tupels usw. gefunden.

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



Referent (m/w/d) Planung & Projekte im Flugbetrieb

Unser Flughafen ist ein Treffpunkt für Menschen aus aller Welt. Wir sind das logistische Herz NRWs und verbinden das Rheinland mit mehr als 120 spannenden Reisezielen in Europa und darüber hinaus. Im #TeamCGN zählen Wertschätzung, Verantwortung, Nachhaltigkeit, Innovationsfreude und Teamgeist. Gemeinsam entwickeln wir die Mobilität von morgen.

Wir bieten Ihnen eine spannende ...

Anzeige ansehenProjektmanagement
femchen
Mitglied
wiss. MA


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

Beiträge: 166
Registriert: 25.06.2009

erstellt am: 24. Jul. 2010 23: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 gultimore 10 Unities + Antwort hilfreich

Mit Sequenz meinte ich das "SequenceFromMask"-Format, das Abaqus hier erwartet.

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