| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys |
Autor
|
Thema: minimaler Knotenabstand (871 mal gelesen)
|
ANSYSAnwender24 Mitglied
Beiträge: 16 Registriert: 29.03.2017
|
erstellt am: 29. Mrz. 2017 14:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich habe folgendes Problem. Ich habe mir einige Knoten meines Modells selektiert. Den Knoten mit der kleinsten Knotennummer habe ich mit *GET,NnumMin,NODE,,Num,MIN bestimmt. Die restlichen Knotennummern habe ich mit einer Do-Schleife und dem Befehl *get,nextnode%i%,Node,nextnode%i-1%,NXTH ermittelt. Von allen selektierten Knoten habe ich mir die x-, y- und z-Koordinate bestimmen lassen. Darauffolgend habe ich einen Knoten MP mit den Koordinaten x_Koord_Mp, y_Koord_Mp und z_Koord_Mp gesetzt. Nun möchte ich von dem Knoten MP den kleinsten Abstand zu meinen selektierten Knoten herausfinden. Das möchte ich mit einer Do-Schleife und einer If-Bedingung anstellen, Code siehe unten. Das Ergebnis was mir die IF-Bedingung ausspuckt ist falsch, ich habe mir die Abstände unter Parameter -> Scalar Parameter anzeigen lassen. Deshalb möchte ich euch fragen, wie meine If-Bedingung aussehen muss, damit ich das richtige Ergebnis bekomme. Ich bin für eure Hilfe sehr dankbar. Code: !Abstand MP zu Knoten mit kleinster Knotennummer *set,AbstandMP%0%,sqrt((x_Koord_MP-x_Koord_NnumMin)**2+(y_Koord_MP-y_Koord_NnumMin)**2+(z_Koord_MP-z_Koord_NnumMin)**2) !Abstand MP zu den anderen Knoten *Do,p,1,Nnum-1,1 *set,AbstandMP%p%,sqrt((x_Koord_MP-x_Koord_nextnode%p%)**2+(y_Koord_MP-y_Koord_nextnode%p%)**2+(z_Koord_MP-z_Koord_nextnode%p%)**2) *IF,AbstandMP%p-1%,LE,AbstandMP%p%,Then b=AbstandMP%p-1%/2, *ELSE b=AbstandMP%p%/2 *ENDIF *enddo *stat,b Gruß Benjamin
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: 29. Mrz. 2017 18:25 <-- editieren / zitieren --> Unities abgeben: Nur für ANSYSAnwender24
Der Quelltext würde sich besser lesen lassen, wenn die Funktion DISTND(N1,N2) Distance between nodes N1 and N2 benutzt wird. (Wenn das Problem mit einem Beispielcode dargestellt wird, sehe ich es mir an.) ------------------ Viel Erfolg wünscht Wolfgang Schätzing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ANSYSAnwender24 Mitglied
Beiträge: 16 Registriert: 29.03.2017
|
erstellt am: 29. Mrz. 2017 19:53 <-- editieren / zitieren --> Unities abgeben:
Die Funktion DISTND funktioniert in dem Fall nicht, da mir nur der Wert des Abstandes gezeigt wird und nicht mit einem Parameter abgespeichert wird, den ich später weiterverwenden kann. Mein Problem ist, dass ich mehrere Abstände habe und den minimalsten Abstand suche und keine Ahnung habe wie ich das anstellen soll. 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: 30. Mrz. 2017 08:03 <-- editieren / zitieren --> Unities abgeben: Nur für ANSYSAnwender24
|
ANSYSAnwender24 Mitglied
Beiträge: 16 Registriert: 29.03.2017
|
erstellt am: 30. Mrz. 2017 09:46 <-- editieren / zitieren --> Unities abgeben:
Als Beispiel würde ich 4 Knoten nehmen und einen Knoten MP dessen geringster Abstand zu den 4 Knoten gesucht ist. x_Koord_1=6 y_Koord_1=3 z_Koord_1=5 x_Koord_2=5 y_Koord_2=10 z_Koord_2=7 x_Koord_3=7 y_Koord_3=4 z_Koord_3=6 x_Koord_4=3 y_Koord_4=9 z_Koord_4=4 !Der Knoten MP befindet sich in der Mitte der 4 Knoten *get,nx1,node,,MNLOC,x *get,nx2,node,,MXLOC,x *get,ny1,node,,MNLOC,y *get,ny2,node,,MXLOC,y *get,nz1,node,,MNLOC,z *get,nz2,node,,MXLOC,z x_Koord_MP=(nx2+nx1)/2 y_Koord_MP=(ny2+ny1)/2 z_Koord_MP=(nz2+nz1)/2 *DO,p,1,4,1 *set,Abstand%p%,sqrt((x_Koord_MP-x_Koord_%p%)**2+(y_Koord_MP-y_Koord_%p%)**2+(z_Koord_MP-z_Koord_%p%)**2) *enddo !Ansys berechnet jetzt 4 Abstände, welcher ist der kleinste und wie bestimme ich ihn? 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: 30. Mrz. 2017 10:27 <-- editieren / zitieren --> Unities abgeben: Nur für ANSYSAnwender24
Hier eine Variante: /prep7 n,1,6,3,5 n,2,5,10,7 n,3,7,4,6 n,4,3,9,4 !Der Knoten MP befindet sich in der Mitte der 4 Knoten mp=5 n,mp,5,6.5,5.5 *do,p,1,4 abstand%p%=distnd(mp,p) *enddo minabst=1000 !sehr große Zahl *do,p,1,4 *if,abstand%p%,lt,minabst,then minabst=abstand%p% nnr=p *endif *enddo !geringster KnotenAbstand zum Knoten mp minabst=minabst !Nummer des Knoten mit dem geringsten Abstand nnr=nnr
------------------ Viel Erfolg wünscht Wolfgang Schätzing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ANSYSAnwender24 Mitglied
Beiträge: 16 Registriert: 29.03.2017
|
erstellt am: 30. Mrz. 2017 12:23 <-- editieren / zitieren --> Unities abgeben:
Sehr geehrter Herr Schätzing, vielen Dank für Ihre Antwort. Es hat funktioniert. Damit bekomme ich den minimalsten Abstand heraus. Ihr Code hat mir sehr geholfen. Mit freundlichen Grüßen Benjamin
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: 31. Mrz. 2017 18:52 <-- editieren / zitieren --> Unities abgeben: Nur für ANSYSAnwender24
Wenn nur der nächstliegende Knoten gefunden werden soll, geht das auch mit der Funktion "node": n,1,6,3,5 n,2,5,10,7 n,3,7,4,6 n,4,3,9,4 !Der Knoten MP befindet sich in der Mitte der 4 Knoten mp=5 n,mp,5,6.5,5.5 !der zum Knoten mp nächstliegende Knoten soll gefunden werden nsel,u,,,mp nnr=node(nx(mp),ny(mp),nz(mp)) nsel,a,,,mp minabst=distnd(mp,nnr) !geringster KnotenAbstand zum Knoten mp minabst=minabst !Nummer des Knoten mit dem geringsten Abstand nnr=nnr ------------------ Viel Erfolg wünscht Wolfgang Schätzing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|