| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys | | | | Ansys Discovery für Strömungssimulation, ein Seminar am 04.02.2025
|
Autor
|
Thema: Array mit Koordinaten aller Nodes auf einer Fläche/Area (4999 mal gelesen)
|
Sohil Mitglied
Beiträge: 10 Registriert: 21.09.2011 *MOPER,,,MAP,,,
|
erstellt am: 24. Sep. 2011 23:35 <-- editieren / zitieren --> Unities abgeben:
hallo Freunde, folgende Aufgabe bereitet mir seit Freitag mittag Kopfschmerzen: Ich möchte ein Array welches die Koordinaten aller Nodes auf einer Flächer beinhaltet(Oberfläche Volumenköper) Kriegs einfach nicht hin da mein recher bei doppelten Doschleifen abstürzt. gibs ne möglichkeit? mein versuch(nach Sheldon): *get,nnode,node,,num,max ! get number of nodes *dim,x,,nnode ! set up arrays for node locations *dim,y,,nnode *dim,z,,nnode csys,1 nsel,s,loc,x,ld/2 *dim,NMASK,array,NNUMMAX *vget,NMASK(1),node,1,nsel *dim,sel,,nnode ! set up array for select vector *vget,x(1,1),node,1,loc,x ! get coordinates *vget,y(1,1),node,1,loc,y *vget,z(1,1),node,1,loc,z *vget,sel(1),node,1,nsel ! get selected set *voper,x(1,1),x(1,1),add,arg1 ! offset locations *voper,y(1,1),y(1,1),add,arg2 *voper,z(1,1),z(1,1),add,arg3 *get,NNUMMAX,node,,num,max ! Get max node number *del,NMASK ! Delete NMASK array, if it exists *del,NARRAY ! Delete NARRAY array, if it exists *dim,NMASK,array,NNUMMAX ! Define NMASK array *dim,NARRAY,array,NNUMMAX,3 ! Define NARRAY array to hold results *vget,NMASK(1),node,1,nsel ! Get status of selected nodes ! 1 = selected ! 0 = undefined, -1 = unselected *vmask,NMASK(1) ! Use NMASK as masking array ! if NMASK(i) > 0.0, perform operation “i” ! if NMASK(i) < 0.0, do not perform on “i” *vget,NARRAY(1,1),node,1,loc,x ! Get UX for nodes only if selected *vmask,NMASK(1) ! Reactivate masking for next operation ! *VMASK only works per command *vget,NARRAY(1,2),node,2,loc,y ! GET UY for nodes only if selected *vmask,NMASK(1) *vget,NARRAY(1,3),node,3,loc,z ! GET UZ for nodes only if selected !Fill vector from 1 to NNUMMAX (node no.) *Dim,Netz_Neu,array,NNUMMAX,1 *vfil,Netz_Neu(1,1),ramp,1,1
Danke für jede Antwort Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RAL Mitglied koffeinbetriebender Taschenrechner
Beiträge: 241 Registriert: 10.01.2009 Geodreieck, Bleistift, Rechenschieber, Kaffeemaschine und Würfel
|
erstellt am: 25. Sep. 2011 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für Sohil
moin. das mit dem mask befehl ist mir noch unklar. um die knoten einer fläche auszuwählen und auszulesen folgendes script. (anmerkung: die arg1 bis arg9 sind ansys intern, die arrays nur x, y, und z zunennen ist hakelig, da ansys das evtl fehlinterpretiert) asel,s,area,,1 nsla,s,1 *GET,NCNT ,NODE , 0 , count, !NodeCouNT *dim,NDATA,array,NCNT,3 !NodeDATA *do,i,1,NCNT,1 *get,CURN ,node, ,num,min !CURrentNode *get,NDATA(i,1),node,CURN,loc,X *get,NDATA(i,2),node,CURN,loc,Y *get,NDATA(i,3),node,CURN,loc,Z nsel,u,node,,CURN *ENDDO das obige script ist ein wenig unelegant. es gibt (glaube ich) die möglichkeit über ein table-command direkt die koordinaten auszulesen. dazu die hilfe mal bei *DIM befragen. frohes schaffen ral Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hank Scorpio Mitglied Ingenieur F&E
Beiträge: 46 Registriert: 06.09.2010 ANSYS APDL 12.1
|
erstellt am: 25. Sep. 2011 11:01 <-- editieren / zitieren --> Unities abgeben: Nur für Sohil
Zitat: Original erstellt von Sohil:
Ich möchte ein Array welches die Koordinaten aller Nodes auf einer Flächer beinhaltet(Oberfläche Volumenköper)
Fläche auswählen z.B. durch asel, s, loc,... oder durch die Flächennummer. Dann folgende paar Zeilen. nsla, s, 1 !Alle Knoten auf der Fläche auswählen *get, _dim, node, , count !Anzahl der gewählten Knoten bestimmen *dim, test, array, _dim, 4 !Array mit 4 Spalten generieren *vget, test(1, 1), node, , nlist !Knotennummern in die 1. Spalte *vget, test(1, 2), node, , loc, x !x-Koordinate in die 2. Spalte *vget, test(1, 3), node, , loc, y !y-Koordinate in die 3. Spalte *vget, test(1, 4), node, , loc, z !z-Koordinate in die 4. Spalte Ergebnis: Array mit Knotennummern und -koordinaten
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wosch Ehrenmitglied V.I.P. h.c. Elektrotechniker im Ruhestand
Beiträge: 2607 Registriert: 16.12.2004 Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.
|
erstellt am: 25. Sep. 2011 19:05 <-- editieren / zitieren --> Unities abgeben: Nur für Sohil
Also, mein ANSYS versteht das nlist in Hank's Text nicht. Deshalb hier eine weitere Variante: !-------------------- nsla,s,1 *get,n_anz,node,,count *get,n_min,node,,num,min *dim,lage,array,n_anz,4 n_arb=n_min *do,i,1,n_anz lage(i,1)=n_arb lage(i,2)=nx(n_arb) lage(i,3)=ny(n_arb) lage(i,4)=nz(n_arb) n_arb=ndnext(n_arb) *enddo
------------------ Viel Erfolg wünscht Wolfgang Schätzing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sohil Mitglied
Beiträge: 10 Registriert: 21.09.2011 *MOPER,,,MAP,,,
|
erstellt am: 30. Sep. 2011 18:52 <-- editieren / zitieren --> Unities abgeben:
|
chris1009 Mitglied Ingenieur
Beiträge: 4 Registriert: 04.09.2017 Windows 10 Pro (64-Bit) Prozessor: Intel(R) Core(TM) i7-3770 CPU @ 3,40 GHz RAM: 16,0 GB ANSYS Academic Research 17.2
|
erstellt am: 04. Dez. 2017 19:10 <-- editieren / zitieren --> Unities abgeben: Nur für Sohil
Zitat: Original erstellt von Hank Scorpio: Fläche auswählen z.B. durch asel, s, loc,... oder durch die Flächennummer. Dann folgende paar Zeilen. nsla, s, 1 !Alle Knoten auf der Fläche auswählen *get, _dim, node, , count !Anzahl der gewählten Knoten bestimmen *dim, test, array, _dim, 4 !Array mit 4 Spalten generieren *vget, test(1, 1), node, , nlist !Knotennummern in die 1. Spalte *vget, test(1, 2), node, , loc, x !x-Koordinate in die 2. Spalte *vget, test(1, 3), node, , loc, y !y-Koordinate in die 3. Spalte *vget, test(1, 4), node, , loc, z !z-Koordinate in die 4. Spalte Ergebnis: Array mit Knotennummern und -koordinaten
Hallo, ich habe ein sehr ähnliches Problem, jedoch möchte ich die Knoten mittels Komponente auswählen. Habe Hanks Code daher wie folgt angepasst: cmsel,s,Komponente,node CSLIST *get, _dim, node, , count !Anzahl der gewählten Knoten bestimmen *dim, test, array, _dim, 3 !Array mit 3 Spalten generieren *vget, test(1, 1), node, , nlist !Knotennummern in die 1. Spalte *vget, test(1, 2), node, , loc, x !x-Koordinate in die 2. Spalte *vget, test(1, 3), node, , loc, y !y-Koordinate in die 3. Spalte
Bei der Auswahl der Knotennummern klappt es. Bei der Auswahl der Koordinaten habe ich jedoch den Eindruck, dass diese nichts mit der Komponente zu tun haben. Ein Fehler aufgrund des aktiven Koordinatensystems konnte ich ausschließen. Kann es sein, dass es damit zusammenhängt, dass die Knoten auf der Komponente nicht durchgängig nummeriert sind oder das die Auswahl mit cmsel aufgehoben wird? Die Koordinaten decken sich nähmlich erstaunlich genau mit anderen Knoten meines Modells. Gruß Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
chris1009 Mitglied Ingenieur
Beiträge: 4 Registriert: 04.09.2017 Windows 10 Pro (64-Bit) Prozessor: Intel(R) Core(TM) i7-3770 CPU @ 3,40 GHz RAM: 16,0 GB ANSYS Academic Research 17.2
|
erstellt am: 06. Dez. 2017 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für Sohil
Ich habe es jetzt so hinbekommen, wie ich es haben wollte, allerdings ist es in meinen Augen etwas umständlicher: cmsel, s, Komponente, node *get, n_mx, node,, num, maxd *dim, nmask, array, n_mx *vget, nmask(1), node, 1, nsel *get,n_sel,node,,count *dim, nlocdata, array, n_mx, 3 *vget, nlocdata(1,1), node, 1, nlist *vmask, nmask(1) *vget, nlocdata(1,2), node, 1, loc, x *vmask, nmask(1) *vget, nlocdata(1,3), node, 1, loc, y *dim, nlocdat2, array, n_sel, 3 *vfun, nlocdat2(1,1), comp, nlocdata(1,1) *vmask, nmask(1) *vfun, nlocdat2(1,2), comp, nlocdata(1,2) *vmask, nmask(1) *vfun, nlocdat2(1,3),comp, nlocdata(1,3) Gibt es die Möglichkeit sich den Schritt mit "vfun , , comp," zu sparen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|