Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  ANSYS
  Dynamische Knotenliste für Pfad anlegen

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
Autor Thema:  Dynamische Knotenliste für Pfad anlegen (5598 mal gelesen)
Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 04. Jun. 2009 11: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

Ich möchte mir in einem Pfad die lianearisierten Spannungen über die Breite eines Bauteils ausgeben bzw. anzeigen lassen.
Dazu muss ich zunächst die zugehörigen Knoten bestimmen bzw. einlesen. Die Knoten haben alle die gleiche x- und z-Koordinate. Die Anzahl der Knoten ergibt sich beim Programmstart, ist also veränderlich. Es sind aber auf jeden Fall mehr als 2 und maximal 1000.
In Richtung der y-Achse befinden sich die Knoten zwischen 0 und Bauteilbreite. Ich definiere mir dazu ein lokales Koordinatensystem dessen x- und z-Achse relativ zu den Knoten den Abstand 0 hat. Dann selektiere ich die Knoten mit Hilfe des NSEL Befehls. Die Knoten sollen im PREP7 der Reihe nach beginnend bei y=0 bis y=Bauteilbreite eingelesen und in eine Datei zwischengespeichert werden und dann im POST1 auch der Reihe nach wieder ausgelesen werden um den Pfad zu erstellen.
Zur Zeit sieht mein Code dazu so aus:

im PREP7:

Code:

!Definition und Aktivierung des lokalen KS
LOCAL, 13, 0, Scheibenlaenge-e1, 0, 0
CSYS, 13
! Auswahl der Knoten auf der Y-Achse im Bereich 0 bus Scheibenbreite
NSEL, S, LOC, Y, 0, Scheibenbreite
! Zaehlen der Knoten
*GET, Pfad_Knotenanzahl, NODE, , COUNT
! Kleinster Abstand von 0 in Y-Richtung
*GET, YN__Min, *GET, YN__Min, NODE, , MNLOC, Y
! 1-dimensionales Feld
*DIM, Feld, ARRAY, Pfad_Knotenanzahl
! Laufvariable
N_Lauf=YN__Min
! DO-Schleife zum einlesen der Knoten
*DO, i, 1, Pfad_Knotenanzahl
Feld(i)=N_Lauf
N_Lauf=NDNEXT(N_Lauf)
*ENDDO

! Erzeugen und öffnen einer Datei zur Speicherung der Knotenwerte
*CREATE, Knotenliste
*CFOPEN, Knotenliste,nod
! Schreiben der Knotenwerte
*VWRITE, Feld(1)
(6f6.0)
*CFCLOS
*END
CSDELE, 13




im POST1:

Code:

! Aufruf der Datei mit Knotenwerten
*USE, Knotenliste
! Pfadname und Anzahl der Punkte (= Pfad_Knotenzahl)
PATH, SPfad1, Pfad_Knotenanzahl
! Schleife über die Anzahl der Knoten
*DO, i, 1, Pfad_Knotenanzahl
! Definition der Punkte des Pfades
PPATH, i, , Scheibenlaenge-e1, Feld(i), 0
*ENDDO

PDEF, SXPfad11, S, X
PDEF, SYPfad11, S, Y

PLPATH, SXPfad11
PLPATH, SYPfad11




Leider funktioniert es so noch nicht wie ich es gerne hätte. Das NDNEXT in der DO-Schleife bezieht sich wohl nur auf die nächsthöhere Knotennummer, nicht aber auf die nächsthöhere y-Koordinate. Konkret: Der erste Knoten befindet sich bei y=0 und hat zum Beispiel die Nummer 65. Der nächste Knoten befindet sich beispielsweise bei y=4, hat aber nicht die Nummer 66, sondern z.B. die Nummer 87. Die Anzahl der Knoten
Deswegen dachte ich mir es über die Y-Koordinate zu lösen was aber bislang leider nicht geklappt hat.
Gibt es die Möglichkeit den Knoten dafür neue Nummern, von sagen wir 1 bis n, zuzuordnen die ich dann bei der Erstellung des Pfades nutzen kann? Kann man diese NDNEXT Funktion so umarbeiten, das sie nicht für die Knotennummer, sondern für den Ort des Knotens (in diesem Fall Y-Achse aufsteigend) gilt? In der Hilfe konnte ich dazu leider nichts finden.

 


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

Tortsen222
Mitglied



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

Beiträge: 499
Registriert: 01.12.2004

erstellt am: 04. Jun. 2009 11:57    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 Arno07 10 Unities + Antwort hilfreich

Du könntest die Knotennummern samt Koordinaten in ein Feld schreiben und das ganze nach den Y Koordinaten sortieren. Danach kannst Du die Knoten in einer Schleife anstatt der Knotennummer über den Zeilenindex ansprechen. Zum Beispiel so:

NSEL.....Deine Knoten

*get,nnum,node,0,count
*dim,nds,array,nnum,2
*dim,ndss,array,nnum,1

*vget,nds(1,1),node,,nlist
*do,i,1,nnum
*VGET, nds(i,2), node, nds(i,1), loc, y
*enddo
*moper,ndss,nds(1,1),sort,nds(1,2)

Jetzt hast Du in der ersten Spalte des Feldes nds die Knotennummern sortiert nach der y Koordinate (Spalte 2 im nds Feld)

------------------
Grüsse, Torsten

[Diese Nachricht wurde von Tortsen222 am 04. Jun. 2009 editiert.]

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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 04. Jun. 2009 12:31    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 Arno07 10 Unities + Antwort hilfreich

Wenn nur die Knoten des Pfades selektiert sind, geht das mit der Funktion nnear(....) und nachfolgendem Löschen des abgefragten Knotens aus der Selektion, (damit die Abfrage nicht rückwärts läuft).

------------------
Viel Erfolg wünscht
Wolfgang Schätzing

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 05. Jun. 2009 10: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

Zunächst einmal vielen Dank für eure Anregungen. Ich habe den Vorschlag von Tortsen222 aufgenommen und mein Code sieht jetzt so aus:

Im PREP7

Code:
LOCAL, 13, 0, Scheibenlaenge-e1, 0, 0
CSYS, 13
NSEL, S, LOC, Y, 0, Scheibenbreite
*GET, Pfad_Knotenanzahl, NODE, 0, COUNT
*DIM, Feld1, ARRAY, Pfad_Knotenanzahl, 2
*DIM, Feld2, ARRAY, Pfad_Knotenanzahl, 1
*VGET, Feld1(1,1), NODE, , NLIST
*DO, i, 1, Pfad_Knotenanzahl
*VGET, Feld1(i,2), NODE, Feld1(i,1), LOC, Y
*ENDDO

*MOPER, Feld2, Feld1(1,1), SORT, Feld1(1,2)
*CREATE, Knotenliste, NOD
*CFOPEN, Knotenliste
*VWRITE, Feld2
(F20.10)
*CFCLOS
*END
CSDELE, 13


Im POST1

Code:

*USE, Knotenliste
PATH, SPfad1, Pfad_Knotenanzahl
*DO, i, 1, Pfad_Knotenanzahl
PPATH, i, , Scheibenlaenge-e1, Feld2, 0
*ENDDO

PDEF, SXPfad11, S, X
PDEF, SYPfad11, S, Y

PLPATH, SXPfad11
PLPATH, SYPfad11


Jetzt erhalte ich aber die Warnmeldung „Error in format, not enough data format specifiers *CFCLOS und der Pfad wird nicht dargestellt.

Diese Meldung bezieht sich wenn ich das richtig deute auf den VWRITE Befehl. Nur was ist da falsch? Ich lege mir 2 Arrays Feld1 und Feld2 an. Feld1 hat 2 Spalten und genauso viele Zeilen wie Knoten, Feld 2 hat ebenso viele Zeilen aber nur eine Spalte. Feld1 wird sortiert nach y-Koordinaten (*MOPER) und die Werte werden im Format (Knotennummer Y-Koordinate) in das Feld2 geschrieben (*VWRITE). Von dort hole ich sie dann im POST1 wieder heraus um den Pfad zu erzeugen.
Da müsste als Format (F20.10) doch eigentlich groß genug sein? Oder schmeiße ich die beiden Felder durcheinander bzw. verstehe ich den *MOPER Befehl falsch? 

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: 05. Jun. 2009 12:00    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 Arno07 10 Unities + Antwort hilfreich

Wenn das Feld2 2 Spalten hat, muß das auch in der Formatangabe berücksichtigt werden:
(2F20.10)

Gruß, A.

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

Tortsen222
Mitglied



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

Beiträge: 499
Registriert: 01.12.2004

erstellt am: 05. Jun. 2009 12:16    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 Arno07 10 Unities + Antwort hilfreich

Du vermischt verschiedene Dinge:

- Die Knotennummern (sortiert nach der Y Koordinate) sind in der ersten sSpalte des Feldes "Feld1" gespeichert.

- Die Y Koordinaten (aufsteigend nach der Koordinate sortiert) findest Du in Spalte 2 des Feldes "Feld1"

- "Feld2" ist nur ein Hilfsfeld welches für den *moper Befehl gebraucht wird.

- der *create Befehl ist unnötig

Mit:

Code:

*CFOPEN,Knotenliste,nod
*VWRITE,Feld2(1,1)
(F20.0)
*CFCLOS

schreibst Du die Knotennummern in die Datei "Knotenliste.nod". Bei der Formatierung brauchst Du keine Nachkommastellen. Falls Dich die Koordinaten interessieren, verwendest Du eben anstatt "*VWRITE,Feld2(1,1)"  "*VWRITE,Feld2(1,2)" oder beides mit entsprechender Formatierung.

------------------
Grüsse, Torsten

[Diese Nachricht wurde von Tortsen222 am 05. Jun. 2009 editiert.]

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 05. Jun. 2009 13: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

Danke...ich hab irgendwie geah(r)nt das der Fehler bei meinem Verständnis der beiden Felder lag.   

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 05. Jun. 2009 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

Ich muss doch nochmal reinspringen: Mich interessieren für den Pfad die Koordinaten, also schreibe ich *VWRITE,Feld2(1,2) Da ich hier davon ausgehe Nachkommastellen zu haben schreibe ich als Formatierung (F20.10) Somit habe ich 20 Stellen, davon 10 Nachkommastellen.
Jetzt bekomme ich aber die Fehlermeldung
Subscript range error.  Parameter FELD2 is dimensioned as 2640 x 1,    
but location 1 x 2 is being requested
Aus der Hilfe und der Beschreibung bei Ansys http://ansys.net/?mycat=tnt_vwrite1  werde ich leider nicht schlau. Was mache ich da falsch?
Und noch zum PPATH Befehl: Ich schreibe in die Knotenliste die y-Koordinaten (zeilenweise), also hole ich sie auch aus der Knotenliste über eine DO-Schleife zeilenweise heraus, wobei ich im PPATH Befehl "Knotenliste" in die y-Koordinate einsetze anstatt Feld2 wie oben geschrieben?   

[Diese Nachricht wurde von Arno07 am 05. Jun. 2009 editiert.]

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: 05. Jun. 2009 19:23    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 Arno07 10 Unities + Antwort hilfreich

hi,
also ich find den Vorschlag von wosch am sinnvollsten. Wenn du das in ne Schleife packst und über die Anzahl der Knoten laufen läßt ist das doch ein super schlanker code.

Ach. und gibts nen grund warum du den Pfad (bzw. dessen knoten) schon im Pre7 definieren willst?

Am besten alles im Post1. D.H. mit nnear in der Schleife im Post 1 gleich den Pfad definieren. und gut ist.

Und, noch ne Frage. Warum den Pfad über alle Knoten die zwischen ymin und ymax liegen, definieren. Reicht nicht auch 2 (min(y) und max(y) ?

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 05. Jun. 2009 20:46    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 solve1,
der Grund weshalb ich die Knoten für den Pfad schon im PREP7 definieren möchte ist der, das sich auf der (y-)Achse verschiedene Materialien befinden und ich die Punkte zu einem Zeitpunkt definiere, zu dem nur das Material vorhanden ist, in dem mich die Spannungen interessieren.
Konkret geht es um eine gelochte Scheibe mit einem Bolzen. Scheibe und Bolzen sind aus unterschiedlichen Materialien.
Mich interessieren nur die Spannungen in der Scheibe auf der vertikalen Linie, die durch den Mittelpunkt des Bolzens verläuft (Lochleibung).
Wenn ich erst im POST1 die Knoten definiere habe ich das Problem, das ich von y=0 bis y=e2 Knoten habe die zu meinem Pfad gehören, dann über eine Strecke von y=Bolzendurchmesser Knoten die ich nicht dabei haben will und dann bis y=Bauteilbreite wieder Knoten die mich interessieren. Wenn die Scheibe und der Bolzen symmetrisch wären, wäre es kein Problem. Sind sie aber nicht. Obendrein sind die Abmessungen und Diskretisierung variabel. Dehalb erschien mir das derzeitige Vorgehen (Knoten im Prep7 definieren) sinnvoller.
Ich lasse mich aber gerne eines besseren belehren bzw. wenn du mir sagen kannst "Mensch, die Knoten des Bolzens kannst du ganz einfach rausfiltern, indem du das so und so machst..." 


[Diese Nachricht wurde von Arno07 am 05. Jun. 2009 editiert.]

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: 05. Jun. 2009 22:00    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 Arno07 10 Unities + Antwort hilfreich

hi,
wenn ich dich mal kurz selber zitieren darf:
Zitat:
Mensch, die Knoten des Bolzens kannst du ganz einfach rausfiltern, indem du das so und so machst..." 

Na das bekomst du doc über ein entsprechendes esel (z.B. mat-nr, type.nr..) hin. Nathürlich im Preprocessing entsprechend separat definieren.
Also angenommen du verwendest für alles sold186 dann machst dir einen type (et) für jedes Bauteil. Ist ein wirklich praktisches vorgehen um deine teile hinterher wieder separat anscprechen zu können.

und wenn du die elemete hast dann eben ein "nsle" und du hast die koten.

Sprich wenn die hürde ist die teile hinterher separat anzusprechen dann gibts diverse Möglichkeiten (auch "cm" für Komponentendefinition)

PS: ein Bild sagt mehr als tausend Worte, oder gibts da ein NDA was dem im wege steht?

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 06. Jun. 2009 02:21    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


Scheibe_mit_Bolzen000.jpg


Scheibe_mit_Bolzen001.jpg

 
An dem Satz mit dem Bild und den tausend Worten ist was dran.
Ich hab mal zwei Bilder hochgeladen. Beide vom gleichen Modell, aber mit unterschiedlicher Anzahl der Elemente in radialer Richtung (des Bolzens). Die Anzahl der Elemente wird bei jedem Programmablauf abgefragt und liegt auf jeden Fall im Bereich zwischen 2 und 1000 (also für den PATH Befehl im grünen Bereich)
Scheibe und Bolzen sind beide aus Solid45 Elementen (2D mit Mesh200, dann extrudiert mit Solid45) und haben beide den gleichen Elementtyp (2). Aber es sind zwei verschiedene Materialien und darüber kann ich sie in der Tat getrennt ansprechen. *an den Kopf klatsch* Manchmal sieht man den Wald vor lauter Bäumen nicht.
Ich würde also ein lokales Koordinatensystem an dem von mir mit einem Kreuz markierten Punkt legen und entlang der markierten Linie (y-Achse) alle zur Scheibe gehörenden Punkte so raus holen:

CSYS, 13
ESEL, S, MAT, 1
NSLE, S, ALL
NSEL, R, LOC, Y

Jetzt habe ich alle Knoten der Scheibe im entsprechenden Schnitt. Die kann ich dann mit
*GET, Pfad_Knotenanzahl, NODE, 0, COUNT
zählen.
Nur wie stelle ich es dann an, das die Knoten der Reihe nach vom Koordinatenursprung y=0 bis y=Breite „abgearbeitet“ werden?
Mit NLIST, ALL, , , COOR, Y kann ich die Knoten listen und mit der NNEAR Funktion die Knoten abarbeiten. Nur wie bekomme ich den Anfangsknoten aus der Liste in die NNEAR Funktion? Mir VGET, Knoten1, NODE,  , NLIST ?

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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 06. Jun. 2009 16: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 Arno07 10 Unities + Antwort hilfreich

Wenn der Ort des Anfangs x1,y1,z1 ist, mit
n_anf=node(x1,y1,z1)

------------------
Viel Erfolg wünscht
Wolfgang Schätzing

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 07. Jun. 2009 15: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

Die NNEAR Funktion und deren Einsatz bereitet mir noch Probleme. Mir ist klar, das die Syntax n2=nnear(n1) der Variablen n2 die Nummer des nächstliegenden Knotens von n1 zuweist. Nur wie bekomme ich das in einer Schleife hin? Ich kann, nachdem ich die Knoten selektiert und mit *GET gezählt habe, den Anfangsknoten bestimmen und dann eine Schleife über die Knotenanzahl für PPATH laufen lassen. Wie ich innerhalb dieser Schleife aber NNEAR definiere ist mir unklar. Ich habe es auch schon mit der Definition eines Arrays versucht - leider auch erfolglos.
Zur Zeit sieht es bei mir so aus:

Code:

!Definition und Aktivierung des lokalen KS
LOCAL, 13, 0, Scheibenlaenge-e1, 0, 0, , , 180
CSYS, 13
! Auswaehlen der Elemente des Materials 1 (=Scheibe)
ESEL, S, MAT, ,1
! Auswaehlen der Knoten fuer Pfad ueber Selektion der Linien
LSEL, S, LOC, X
LSEL, R, LOC, Z, 0
NSLL, S, 1
! Auflisten der gewaehlten Knoten
NLIST
! Zaehlen der Knoten und heraussuchen des Anfangsknotens
/PREP7
*GET, Pfad_Knotenanzahl, NODE, 0, COUNT
*GET, K_ANF, NODE, , MNLOC, Y
/POST1
! Pfadnamen und Anzahl der Pfadpunkte definieren
PATH, SPfad1, Pfad_Knotenanzahl
! Schleife ueber alle ausgewaehlten Knoten und Erzeugung des Pfades
*DO, i, 1, Pfad_Knotenanzahl, 1
PPATH, i, K_ANF
! Anfangsknoten wird mit NNEAR Funktion neu gesetzt?
K_ANF=NNEAR(K_ANF)
*ENDDO
CSDELE, 13

PDEF, SXPfad11, S, X
PDEF, SYPfad11, S, Y

PLPATH, SXPfad11
PLPATH, SYPfad11


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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 08. Jun. 2009 12: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 Arno07 10 Unities + Antwort hilfreich

Ich hab das Problem noch nicht richtig verstanden.
Wenn ein (linearer) Pfad vereinbart werden soll, dann muss ich doch die Knotennummern nicht kennen, sondern nur den Ort des Pfadbeginns (xa,ya,za) und den Ort des Pfadendes (xe,ye,ze) (und eventuelle Zwischenorte). (Und die Orte kenne ich aus meiner Modellgeometrie.) Damit wird der Pfad definiert.
path,name,2
ppath,1,node,xa,ya,za
ppath,2,node,xe,ye,ze
pdef,.....
prpa,.....

------------------
Viel Erfolg wünscht
Wolfgang Schätzing

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 08. Jun. 2009 13: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


ScheibemitBolzen.txt

 
Ich kenne in der Tat den Ort des Pfadbeginns/ersten Knotens. Dessen Koordinaten im CSYS13 sind (0,0,0). Außerdem Kenne ich den Ort des Pfadendes/letzten Knotens. Dessen Koordinaten sind (0,Scheibenbreite,0). Was ich aber nicht kenne bzw. was während des Programmablaufs festgelegt wird ist die Anzahl der Knoten. Die ergibt sich aus der Anzahl der Elemente in die ich die Scheibe unterteile. Diese Unterteilung wird während des Programmablaufes vom User festgelegt. Da auch die Abmessungen der Scheibe variabel sind ergeben sich die Knoten zwischen Anfang und Ende erst während des Programmablaufs. Diese Knoten will ich (auch) ermitteln und damit den Pfad schreiben.
Ich hänge mal meine Eingabedatei mit an in der Hoffnung, das es dann klar(er) wird  

[Diese Nachricht wurde von Arno07 am 08. Jun. 2009 editiert.]

[Diese Nachricht wurde von Arno07 am 08. Jun. 2009 editiert.]

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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 08. Jun. 2009 14: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 Arno07 10 Unities + Antwort hilfreich

Warum sollen die Knoten ermittelt werden?
Die braucht man nicht, um den Pfad zu definieren.
die Pfaddarstellung liefert den Wert der definierten Größe über dem Weg!

------------------
Viel Erfolg wünscht
Wolfgang Schätzing

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 08. Jun. 2009 16:49    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


ScheibemitBolzen.txt

 
Das hieße also nach dem selektieren der Knoten den Anfangs- und Endknoten als Pfad definieren

Code:
PATH, SPfad1, 2
PPATH, 1, NODE(0,0,0)
PPATH, 2, NODE(0,Breite_Scheibe,0)

und dann mit PDEF und PLPATH die grafische Ausgabe?
Ich erhalte da leider nur das Gitternetz in das der Pfad eigentlich
gezeichnet werden sollte 

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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 08. Jun. 2009 18: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 Nur für Arno07 10 Unities + Antwort hilfreich

Ich war ja gewillt, das Programm laufen zu lassen, aber ich mache natürlich kein Ratespiel mit. (In Abfragen gehören voreingestellte Werte, die benutzt werden, wenn die Abfrage mit Enter quittiert wird.)

Ob das das richtige Koordinatensystem ist, konnte ich nun auch nicht sehen. Es sollten die Knotennummern, die zur Pfaddefinition überprüft werden.

Wenn noch kein Kurvenverlauf zu sehen ist, sollte auch /yrange,... nicht benutzt werden.

------------------
Viel Erfolg wünscht
Wolfgang Schätzing

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 08. Jun. 2009 22: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


ScheibemitBolzen.txt

 
Ja sorry, ich hatte vergessen zu erwähnen mit welchen Abmessungen/Einstellungen ich die Datei laufen lasse. Ich habe jetzt mal die entsprechenden Werte voreingestellt.
/yrange habe ich deaktiviert.
Ich erhalte mit NLIST bei diesen Voreinstellungen 42 Knoten, die alle unterschiedliche Y-Koordinaten haben und im gewünschten Bereich liegen. Die Z-Koordinaten sind alle 0 (auch richtig), die X-Koordinaten dagegen liegen alle bei 0,1140, obwohl sie im aktuellen Koordinatensystem auch bei 0 liegen sollten.
Was mich aber noch mehr wundert ist, das alle Pfadwerte (S, SX und SY) für alle Knoten gleich sind (S=0,SXPfad1=-4.6857,SYPfad1=-0.95339). Die müssten eigentlich unterschiedlich sein - zu sehen auch in den Contour Plots. mir scheint das allen ausgewählten Knoten die Werte des Anfangs- bzw. Endknotens zugewiesen werden anstatt den Werten die tatsächlich an den Knoten sind.

[Diese Nachricht wurde von Arno07 am 08. Jun. 2009 editiert.]

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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 09. Jun. 2009 09: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 Arno07 10 Unities + Antwort hilfreich

Die Rechendauer ist für meinen Rechner hier zu lange.
Aber das müsste so gehen.
Die Pfadlage kann nach /pbc,path,1 im nächst folgenden Plot kontrolliert werden. Sie scheint in Ordnung.
Die Selektionen vor der Pfaddefinition sollten weggelassen oder aufgehoben werden.

------------------
Viel Erfolg wünscht
Wolfgang Schätzing

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 09. Jun. 2009 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


Beispielpfad.JPG

 
Ich habs jetzt nochmal versucht und dabei die Elementanzahl verkleinert auf 10/40/5. Die anderen Abmessungen habe ich beibehalten. Zusätzlich habe ich die Selektion der Linien ausgeschaltet. Die Selektion des Materials habe ich aber gelassen, da ich ja nur die Spannungen in der Scheibe haben will. Außerdem habe ich noch den Befehl /pbc,path,1 gesetzt. Das Ergebnis war wie vorher, also wieder keine Anzeige des Spannungsverlauf über die Breite der Scheibe, sondern der gleiche Wert überall. Der Contour Plot zeigt dann den definierten Pfad (siehe hochgeladenes Bild) und ich anhand dessen ühle ich mich bestätigt in meiner schon im letzten Beitrag geschriebenen Vermutung, das nur die  Anfangs- und Endknoten für die "Erzeugung" des Pfades herangezogen werden, nicht aber alle Knoten die dazwischen liegen. Die brauche ich aber auch, da sich die Spannungen über die Breite der Scheibe ändern. Durch die Selektion und NLIST werden die mir ja auch in einem Fenster richtig angezeigt. Deren Werte (Koordinaten oder Nummern) sind je nachdem inwieviele Elemente radial zum Loch die Scheibe unterteilt wird unterschiedlich und dementsprechend unterschiedlich viele Punkte gibt es zur Erzeugung des Pfades.

Ich habe mal ein Beispielbild zur Verdeutlichung wie es grundsätzlich aussehen soll mit hochgeladen (Beispielpfad). Im Bereich wo Sigma=0 ist befindet sich das Loch

[Diese Nachricht wurde von Arno07 am 09. Jun. 2009 editiert.]

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

Arno07
Mitglied



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

Beiträge: 57
Registriert: 02.12.2008

erstellt am: 09. Jun. 2009 12:00    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


Pfad.jpg

 
Der Countor Plot fehlte im letzten Beitrag...

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

Tortsen222
Mitglied



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

Beiträge: 499
Registriert: 01.12.2004

erstellt am: 09. Jun. 2009 12:45    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 Arno07 10 Unities + Antwort hilfreich

Das wird mein letzter Beitrag zu diesem Thema:

versuche mal
PATH, SPfad1, 2,30,20

anstatt
PATH, SPfad1, 2

------------------
Grüsse, Torsten

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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 09. Jun. 2009 13:18    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 Arno07 10 Unities + Antwort hilfreich


plalo2.txt

 
Man muss doch nicht immer mit einem komplexen Programm solche Einzelheiten abklären.
So etwas macht man mit einem kleinen Testprogramm, wie dem im Anhang.
Und siehe da, es geht!

(Es empfiehlt sich, vor der Pfaddefinition ein allsel zu setzen.)
------------------
Viel Erfolg wünscht
Wolfgang Schätzing

[Diese Nachricht wurde von wosch am 09. Jun. 2009 editiert.]

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

broiler442
Mitglied
Student


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

Beiträge: 13
Registriert: 22.01.2010

erstellt am: 22. Jan. 2010 13:47    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 Arno07 10 Unities + Antwort hilfreich

Hallo zusammen,
kann mir jemand den path-Befehl und den ppath-Befehl an sich erklären?
Also ich weiss, dass  nach path zuerst ein Name einegegeben wird, danach die Anzahl der Punkte aus denen der Pfad bestehen soll und die beiden Angaben, die darauffolgen verstehe ich leider nicht. Genauso bei ppath, zuerst kommt ja die Punktnummer, danach weiss ich nicht und darauf folgt die Koordinatenangabe des Punktes richtig? Bitte erklärt mir die beiden Begriffe.

Danke im Voraus

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