Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  ANSYS
  Knoten auf Bauteiloberfläche ansprechen

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys
  
Python-Scripting in Ansys Discovery – Nur was für Nerds?, ein Fachartikel
Autor Thema:  Knoten auf Bauteiloberfläche ansprechen (1875 mal gelesen)
pst2009
Mitglied



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

Beiträge: 11
Registriert: 01.04.2009

erstellt am: 01. Apr. 2009 11:51    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 versuche gerade in AnsysWB die Druckbelastung einer einfachen Platte zu simulieren. Da der Druck auf die Plattenoberfläche nicht konstant, sondern über eine Richtungskoordinate verschieden ist, habe ich einen Befehl eingefügt und die Plattenoberfläche als Komponente definiert.

In meinem Befehl erzeuge ich mir zuerst mit cmsel ein node-set der komponente. Dann wähle ich mit esln alle Elemente aus, die einen Knoten in meinem node-set haben. Dann durchfahre ich eine Schleife für jedes Element und darin ist nocheinmal eine Schleife für jeden Knoten des Elements.

Meine Frage ist jetzt: Wie kann ich nur die vier (bzw. drei) Knoten an der Bauteiloberfläche (also nur die Knoten auf meiner Komponente) aber von jedem Element einzeln ansprechen? Wenn ich den Befehl nsle benutze, spricht er immer alle 8 Knoten des gerade angewählten Elements an.

Vielen Dank schon mal,
Philipp

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

arnd13
Mitglied
Dipl. Ing.


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

Beiträge: 735
Registriert: 05.11.2008

erstellt am: 01. Apr. 2009 11:55    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 pst2009 10 Unities + Antwort hilfreich

Nach dem nsle noch den Befehl
cmsel,r,'Komponente'
einfügen.

Gruß, A.

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

pst2009
Mitglied



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

Beiträge: 11
Registriert: 01.04.2009

erstellt am: 01. Apr. 2009 12:09    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 für die schnelle Antwort. Es scheint aber nicht zu funktionieren. Es werden in der inneren Schleife immer noch alle 8 Knoten des Elements angesprochen...

ich hab hier mal meinen code:

/prep7

csys,12 ! Hier Nummer des Koordinatensystems eingeben

cmsel,s,KW_Druck,node  ! Hier Name der Komponente eingeben

! Minimale / maximale X-Werte herausfinden

*get,xmax,node,0,mxloc,x
*get,xmin,node,0,mnloc,x
xlaenge=xmax-xmin

esln

*dim,druck,array,4,1

*get,anzahl,elem,0,count      ! "anzahl" = Anzahl der Oberflächenelemente (= Schleifenlänge)
*get,aktuell,elem,0,num,min    ! "aktuell" = hier: Element mit niedrigster Elementnummer (= erstes Element in Schleife)

*do,i,1,anzahl

    esel,s,,,aktuell
    nsle,s
    cmsel,r,KW_Druck

      ! Vorbereitung der Knotenschleife

    *get,anzahl2,node,0,count
    *get,aktuell2,node,0,num,min

      ! Schleife über alle Knoten des Elements

    *do,j,1,anzahl2

        *get,wert1,node,aktuell2,loc,x
        *get,wert2,node,aktuell2,loc,y
        *get,wert3,node,aktuell2,loc,z
       
        *if,wert1,gt,0,and,wert1,le,18,then
       
        dr = -200/xmax*wert1 + 200 !200MPa
       
        *elseif,wert1,le,0,and,wert1,ge,-72,then
       
        dr = -200/xmin*wert1 + 200
       
        *endif
 
        druck(j,1)=dr

        aktuell2=ndnext(aktuell2)
       
    *enddo

      ! Setzen der Randbedingung

    *if,anzahl2,eq,3,then

        sfe,aktuell,1,PRES,druck(1,1),druck(2,1),druck(3,1)

    *elseif,anzahl2,eq,4,then

        sfe,aktuell,1,PRES,druck(1,1),druck(2,1),druck(3,1),druck(4,1)

    *else

        *msg,error,aktuell,anzahl2
        Element %G hat %G Knoten ! So nicht vorgesehen!!!!

    *endif

      ! Nächsthöhere Elementnummer selektieren

    aktuell=elnext(aktuell)

*enddo
allsel
/solu

kann mir jemand weiterhelfen? Ich wüsste nicht, wo der Fehler ist.
Gruß,
Philipp

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

arnd13
Mitglied
Dipl. Ing.


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

Beiträge: 735
Registriert: 05.11.2008

erstellt am: 01. Apr. 2009 12:28    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 pst2009 10 Unities + Antwort hilfreich

Der code sieht eigentlich richtig aus.

Welchen Elementtyp verwendest Du? Möglicherweise hat Dein Element Mittelknoten, dann sind 8 Knoten auf der Oberfläche.

Sonst prüfe mal Deine Komponente KW_Druck. Ist das wirklich eine Knotenkomponente (cmlist)? Sind nur die Knoten an der Bauteiloberfläche enthalten (nplo)?

Gruß, A.

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

solve1
Mitglied
Berechnungsingenieur


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

Beiträge: 624
Registriert: 27.05.2008

Ansys APDL
Ansys WorkBench

erstellt am: 01. Apr. 2009 19:14    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 pst2009 10 Unities + Antwort hilfreich

hi,
wenn du wirklich das hier vorhast
Zitat:
..der Druck auf die Plattenoberfläche nicht konstant, sondern über eine Richtungskoordinate verschieden ist

dann finde ich eigentlich nicht das dein code richtig ausschaut. Wenn ichs richtig verstanden habe wilst du deinen druck als funktion des Ortes aufbringen. Wenn du in der Ansys Hilfe mal unter
"tabular boundary conditions" nachschaust dann findest du sicher Hinweie.

Wenns immer die selbe druckverteilung ist, gehts am einfachsten wenn du in CL den "function editor" benutzt und dann das log file kopierst. In WB einfügen fertig.

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

solve1
Mitglied
Berechnungsingenieur


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

Beiträge: 624
Registriert: 27.05.2008

Ansys APDL
Ansys WorkBench

erstellt am: 06. Apr. 2009 09:53    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 pst2009 10 Unities + Antwort hilfreich


pressure_map.png


platte_druck.txt


platte_db.txt

 
hab noch ein schickes Bsp gefunden. Datei "platte_druck" starten (vorher beide nat. in *.inp umbenennen).
Ach so, zu sehen ist eine Druckverteilung gemaeß:

p(x,z)=sin(a*x)+cos(b*z)

[Diese Nachricht wurde von solve1 am 06. Apr. 2009 editiert.]

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)2024 CAD.de | Impressum | Datenschutz