| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Addition von relativen Koordinatenangaben (1317 mal gelesen)
|
mundal Mitglied Techniker
 
 Beiträge: 320 Registriert: 14.02.2005
|
erstellt am: 07. Feb. 2009 12:19 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen, etwas zum Knobeln am WE !! ;-) Ich habe einem fixen Koordinatenpunkt, nennen wir ihn P1 (Koordinate 10,10). Diesem Punkt sollen relative Koordinatenangaben "aufaddiert". Kann dies LISP ? Beispiel: --------- (setq endpunkt ( + p1 @100<45)) Dass diese Lispzeile nicht funktioniert ist mir bewusst. Sie soll lediglich mein Problem darstellen. Gruß Franz
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer

 Beiträge: 9808 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 07. Feb. 2009 14:35 <-- editieren / zitieren --> Unities abgeben:          Nur für mundal
Zitat: Original erstellt von mundal: Ich habe einem fixen Koordinatenpunkt, nennen wir ihn P1 (Koordinate 10,10). Diesem Punkt sollen relative Koordinatenangaben "aufaddiert". Kann dies LISP ? Beispiel: --------- (setq endpunkt ( + p1 @100<45))
Hallo Franz, natürlich kann Lisp mit Koordinaten umgehen, es ist eine dafür prädestinierte Programmiersprache. Allerdings muss man auch die notwendigen Lisp-Funktionen kennen (stehen alle in der Online-Hilfe - Ich hab sie mal alle sorgfältig durchgelesen und folgende Funktione für dich rausgesucht - das war aber keine Knobelei ;) Also wenn es LISP werden soll, dann so: Addition kartesischer Koordinaten:
Code: (setq endpunkt (mapcar '+ p1 '(70.71 70.71 0.0)))
Addition polarer Koordinaten: Für Umrechnung von kartesischen Koordinaten nach Polarkoordinaten gibt es eine fertige Funktion namens Polar.
Code: (setq endpunkt (Polar p1 (angtof "45" 0) 100.0))
besser ist es natürlich, Winkel gleich in Rad anzugeben
Code: (setq endpunkt (Polar p1 (/ Pi 4) 100.0))
------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de [Diese Nachricht wurde von CAD-Huebner am 07. Feb. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archtools Mitglied
  
 Beiträge: 991 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 07. Feb. 2009 18:19 <-- editieren / zitieren --> Unities abgeben:          Nur für mundal
Zitat: Original erstellt von CAD-Huebner: [QUOTE]Original erstellt von mundal: Ich habe einem fixen Koordinatenpunkt, nennen wir ihn P1 (Koordinate 10,10). Diesem Punkt sollen relative Koordinatenangaben "aufaddiert". Kann dies LISP ? Beispiel: --------- (setq endpunkt ( + p1 @100<45))
Hallo Franz, natürlich kann Lisp mit Koordinaten umgehen, es ist eine dafür prädestinierte Programmiersprache. Allerdings muss man auch die notwendigen Lisp-Funktionen kennen (stehen alle in der Online-Hilfe - Ich hab sie mal alle sorgfältig durchgelesen und folgende Funktione für dich rausgesucht - das war aber keine Knobelei ;) Also wenn es LISP werden soll, dann so: Addition kartesischer Koordinaten:
Code: (setq endpunkt (mapcar '+ p1 '(70.71 70.71 0.0)))
[...] [/QUOTE]Hallo Udo, mit dieser Antwort provozierst Du natürlich jede Menge Fehlermeldungen und reichlich Frust beim Fragesteller. Das Problem ist, dass uns der OP mit seiner Fragestellung zeigt, dass er erstens nicht weiss, was eine beliebige Programmiersprache machen kann, dass er aber zweitens auch nicht die mathematischen Grundlagen kennt, die hinter den AutoCAD-Begriffen "absolute" und "relative" Koordinaten stehen. Das fängt doch schon damit an, dass die Angabe relativer Koordinaten in AutoCAD prinzipiell bereits eine Vektoraddition ist. "@3,4" beschreibt eine Koordinate, die sich per Vektoraddition aus den Koordinaten des Punkts "@" (für den mitlesenden Fragesteller: das Symbol "@" steht in AutoCAD für den zuletzt eingegebenen Punkt) und den Koordinaten "3,4" ergibt. Die Mathematik kennt keine "relativen" Koordinaten. Bei obiger Frage eines völligen Laien halte ich Deine Verwendung des Beispiels mit "mapcar" für irrwitzig überzogen. Da muss erst mal eine grundlegende Einführung in das Wesen von Vektoren im kartesischen oder polaren Koordinatensystem her, und dann muss man erklären, dass Vektoren bzw Punktkoordinaten in Lisp in Listen gespeichert werden. Und dann muss man erklären, wie Vektoren mathematisch richtig addiert werden, und wie man das dann in Lisp umsetzt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mundal Mitglied Techniker
 
 Beiträge: 320 Registriert: 14.02.2005
|
erstellt am: 07. Feb. 2009 18:30 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen, ich kann durchaus sagen dass mir der erste Beitrag weitergeholfen hat. Über Winkelfunktionen berechne ich nun die Werte die zu addieren sind. Sicher geht das noch einfacher, aber mir ist auf jeden fall geholfen. Deshalb nochmals Danke an den Verfasser des ersten Beitrages. Gruss Franz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mundal Mitglied Techniker
 
 Beiträge: 320 Registriert: 14.02.2005
|
erstellt am: 07. Feb. 2009 18:33 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |