| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys |
Autor
|
Thema: Ermittlung ob Keypoint auf bestimmter Fläche liegt (954 mal gelesen)
|
Silenzio Mitglied Student
Beiträge: 23 Registriert: 10.04.2008
|
erstellt am: 29. Aug. 2009 13:12 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte gern wissen, ob es eine Möglichkeit gibt zu testen, ob sich ein bestimmter Keypoint auf bzw. außerhalb einer Fläche befindet. Gibt es dazu eine spezielle Funktion oder hat jemand eine Idee, wie man soetwas testen kann? Vielen Dank für die Antworten.
PS: Es handelt sich bei mir um ein ebenes Problem, die z-Koordinate spielt also keine Rolle. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arnd13 Mitglied Dipl. Ing.
Beiträge: 735 Registriert: 05.11.2008
|
erstellt am: 31. Aug. 2009 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
Eine Möglichkleit: asel,s,... !Fläche auswählen allsel,below,area *get,maxx,kp,,mxloc,x !Max und minimale Koordinaten der Fläche bestimmen *get,minx,kp,,mnloc,x !Bei vernetzter Fläche auch ...n,,mxloc,.. möglich *get,maxy,kp,,mxloc,y *get,miny,kp,,mnloc,y !*get,maxz,kp,,mxloc,z !Bei Deinem Problem nicht notwendig !*get,minz,kp,,mnloc,z ksel,s,.... !Fraglichen kp auswählen get,x_kp,kp,,loc,x get,y_kp,kp,,loc,y !get,z_kp,kp,,loc,z Abfrage_=0 *if,maxx,ge,x_kp,and,minx,le,x_kp,then Abfrage_x=1 *endif *if,maxy,ge,y_kp,and,miny,le,y_kp,then Abfrage_y=1 *endif *if,Abfrage_x,eq,1,and,Abfrage_y,eq,1,then Abfrage_=1 *msg,ui kp liegt auf der Fläche *else *msg,ui kp liegt außerhalb der Fläche *endif Gruß, A.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tschenzi Mitglied
Beiträge: 81 Registriert: 20.01.2009 Ansys Classic 11.0
|
erstellt am: 31. Aug. 2009 11:01 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
|
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 31. Aug. 2009 14:42 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
Ganz trivial ist das nicht. Es kommt jetzt darauf an, ob die Fläche geradlinig berandet ist oder nicht. Der Vorschlag von arnd klappt nur bei Flächen, die entlang konstanter Koordinaten berandet sind, für ein Parallelogramm funktioniert das schon nicht mehr. Auch bei dem Tip mit der Vektorrechnung weiß ich nicht genau, was gemeint ist. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tschenzi Mitglied
Beiträge: 81 Registriert: 20.01.2009 Ansys Classic 11.0
|
erstellt am: 31. Aug. 2009 15:09 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
Vektorrechnung? Du kannst dir doch 3 Punkte der Fläche ausgeben lassen (KP-Koorsinaten). Damit kannst du eine Ebenengleichung aufstellen. Und eben mit der vierten Koordinate kannst du schauen, ob sie auf der Ebene liegt. Vektorrechnung Klasse 12. Oder so. Ich kann hier bei Bedarf gerne eine xls-Datei verschicken. ------------------ Liebe Grüße, Tschenzi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tschenzi Mitglied
Beiträge: 81 Registriert: 20.01.2009 Ansys Classic 11.0
|
erstellt am: 31. Aug. 2009 15:11 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
|
arnd13 Mitglied Dipl. Ing.
Beiträge: 735 Registriert: 05.11.2008
|
erstellt am: 31. Aug. 2009 15:21 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
Christoph hat recht: Die Methode funktioniert nicht in allen Fällen, sorry. Zu Vektorrechnung würde mir nur einfallen, für alle Begrenzungslinien der Fläche Geradengleichungen aufzustellen und dann zu prüfen in welcher Lage der Punkt zu den Geraden liegt und wie die Geraden zueinander liegen. Danach kann geprüft werden, ob der Punkt innerhalb der Begrenzungsgeraden liegt. Das kann je nach Anzahl der begrenzenden Geraden beliebig mühselig werden. Könnte aber wahrscheinlich auch mit *gets und *do-Schleifen programmiert werden. Viel Spaß dabei! Tschenzi, Bitte definiere "Vektorrechnung" in diesem Fall etwas genauer. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RAL Mitglied koffeinbetriebender Taschenrechner
Beiträge: 238 Registriert: 10.01.2009 Geodreieck, Bleistift, Rechenschieber, Kaffeemaschine und Würfel
|
erstellt am: 31. Aug. 2009 15:22 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
der vorschlag mit der vektorrechnung (lineare algebra) ist nur ein bedingt gangbarer weg. bedingt, weil es bei polygonen sehr häßlich werden kann. eine allgemeingültige formulierung, die man z.b. in einem makro speichert und die auf jeder fläche funtioniert (unabh. von der anzahl der kanten), halte ich für nicht wirtschaftlich implementierbar. obacht bei innenwinkeln größer als 180grad. was du bei einem gradlinigen ansatzweise regelmäßigen polygon machen kannst, ist: die gesamtfläche in regelmäßige rechtecke unterteilen, und die abfrage "is on area" (s. arnd) auf die subflächen loslassen. setzt voraus, dass du die fläche in rechtecke zerlegen kannst. oder du mußt die variante von arnd auf z.b. dreiecke umschreiben, da du jede gradlinig berandete hauptfläche in dreieckige subflächen unterteilen kannst. wenn dieser weg gangbar sein sollte und du ihn zum laufen kriegst, darfst du dich *if-und-*do-schleifen-gott nennen gruß ral
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tschenzi Mitglied
Beiträge: 81 Registriert: 20.01.2009 Ansys Classic 11.0
|
erstellt am: 31. Aug. 2009 15:31 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
Was mir noch als Umweg einfallen würde: Die WP auf den Punkt positionieren, ein sehr kleines Volumen erzeugen, das Volumen durch die fragwürdige Fläche teilen und Ansys zählen lassen, ob es nach dem vsba ein Volumen mehr zu zählen gibt. Das ganze kann man sicher so programmieren, dass es nach dieser Aktion wieder aussieht wie vorher. Aber ist ,wie gesagt, ein Umweg. ------------------ Liebe Grüße, Tschenzi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Silenzio Mitglied Student
Beiträge: 23 Registriert: 10.04.2008
|
erstellt am: 31. Aug. 2009 16:59 <-- editieren / zitieren --> Unities abgeben:
Ersteinmal vielen Dank für die zahlreichen Antworten. Da es bei meinem Problem um eine Lochscheibe geht, habe ich etwas ähnliches wie arnd gemacht. ich habe einfach ein if-schleife geschrieben, die prüft, ob sich der keypoint außerhalb des kreises befindet. die schleife sieht ungefähr so aus: *IF,(x_koordinate)**2+(y_koordinate)**2,gt,(radius_loch)**2,THEN ... *ENDIF allerdings geht das halt nur bei einer lochscheibe. eine allgemeine möglichkeit wäre mir auch lieber gewesen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tortsen222 Mitglied
Beiträge: 499 Registriert: 01.12.2004
|
erstellt am: 31. Aug. 2009 17:52 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
|
Silenzio Mitglied Student
Beiträge: 23 Registriert: 10.04.2008
|
erstellt am: 31. Aug. 2009 19:12 <-- editieren / zitieren --> Unities abgeben:
|
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 01. Sep. 2009 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
Sehr gute Idee RAL. Ich glaube aber nicht, dass man sich danach *do-Schleifen Gott nennen kann, so wild ist das nicht. Ist denn die Fläche vernetzt bzw. könntest du sie ohne Probleme vernetzen? Dann hätte man Knoten und Elemente und kann sich abhängig vom Elementtyp etwas ausdenken, was (denke ich) nicht so schwierig zu programmieren ist. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Silenzio Mitglied Student
Beiträge: 23 Registriert: 10.04.2008
|
erstellt am: 01. Sep. 2009 08:57 <-- editieren / zitieren --> Unities abgeben:
|
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 01. Sep. 2009 10:01 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
|
Silenzio Mitglied Student
Beiträge: 23 Registriert: 10.04.2008
|
erstellt am: 01. Sep. 2009 12:55 <-- editieren / zitieren --> Unities abgeben:
|
MrTorque Mitglied Student
Beiträge: 70 Registriert: 05.05.2009
|
erstellt am: 01. Sep. 2009 18:05 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
Ist das wirklich so schwer? wir wäre es hiermit: ASEL... ! Fläche auswählen NSLA,S,1 ! Nodes und KP etc zur FLäche auswählen NSEL,R,NODE,,deinNode ! Aus der Auswahl den Node herausholen *GET,auffl,,NODE,NUM,MAX ! Gucken, ob noch ein Node da ist. Wenn dann auffl 0 ist, liegt der NODE nicht auf der Fläche, ansonsten schon! Gruß. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 01. Sep. 2009 19:20 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
|
MrTorque Mitglied Student
Beiträge: 70 Registriert: 05.05.2009
|
erstellt am: 01. Sep. 2009 21:14 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
|
smittytomcat Mitglied Naval Architect / Dipl.-Ing. Schiffbau, selbstständig
Beiträge: 1320 Registriert: 23.08.2005 ANSYS Bricscad Windows XP Prof 32 bit SP 3 Windoof 7 Prof 64 bit Dell Precision's Bleistift Radiergummi Dreieck Papier Dubbel etc. Taschenrechner den eigenen Kopf ...
|
erstellt am: 02. Sep. 2009 05:40 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
Moin, ich möchte nur eine kleine Ergänzung anbringen zu den vorherigen Beiträgen. ASEL... ! Fläche auswählen NSLA,S,1 ! Nodes und KP etc zur FLäche auswählen so und wenn die Fläche vernetzt ist, dann haben auch die Knoten "ihren Keypoint" : KSLN,s,1 ! damit sollten alle mit den Knoten gekoppelten Keypoints gelistet sein So, Euch allen einen guten Start in den Tag Gruß Gerd
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 02. Sep. 2009 09:03 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
Entweder ich habe das Problem falsch verstanden, oder es ist wirklich so, wie ihr es sagt. Ich dachte nicht, dass der Keypoint mit der Fläche verbunden ist, der kann doch auch einfach so allein im Raum stehen. Dann hat er keine Verbindung mit der Fläche oder irgendeinem Knoten und das was ihr vorschlagt, funktioniert nicht mehr. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Silenzio Mitglied Student
Beiträge: 23 Registriert: 10.04.2008
|
erstellt am: 02. Sep. 2009 09:08 <-- editieren / zitieren --> Unities abgeben:
also der keypoint steht ganz allein und nur für sich in der Ebene der Fläche. Wie ich schon sagte, handelt es sich bei mir um ein ebenes Problem und ich wollte abfragen, ob der alleinstehende Keypoint innerhalb der Fläche oder außerhalb liegt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ChristophN Mitglied Berechnungsingenieur
Beiträge: 773 Registriert: 13.12.2008
|
erstellt am: 02. Sep. 2009 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für Silenzio
Das Inputfile müsste funktionieren, hab es kurz getestet, da kamen richtige Ergebnisse heraus. Bevor du das einliest, musst du unter dem Parameter "Nummer" deine Keypointnummer speichern und alle Knoten der Fläche, die von Interesse ist, müssen selektiert sein. Liegt der Punkt auf der Fläche, wird dem Parameter "drauf" eine 1 zugewiesen, sonst 0. Wenn du Interesse an der Theorie dahinter hast, kann ich auch noch eine kleine Ausführung machen. Hab ich vergessen: funktioniert bisher nur für Elemente, die durch 4 Knoten definiert sind, die Dreiecksoption würde zwar auch funktionieren, man bräuchte aber noch eine zusätzliche Fallunterscheidung. Wenn das gebraucht wird, kann ich das noch verändern. [Diese Nachricht wurde von ChristophN am 02. Sep. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|