Hallo Jan,
Die Fehlermeldung in der Befehlszeile, die beim Ausführen deiner Zeile erscheint sagt dir eigentlich ziemlich genau, wo der Fehler liegt. <Punkt oder Optionstitel wird benötigt> Du übergibst jedoch einen Elementnamen. Du musst nicht rechnen, sondern einen Punkt auf der Linie übergeben, das Lot sucht die Funktion dann selbst.
(setq li (cadr (entsel)) sollte funktionieren.
Hier im Forum oder auch in Rund um AutoCAD wurden bereits öfter die Vorzüge und Nachteile der (command-Programmierung diskutiert. Deine Aufgabenstellung ist ein typisches Beispiel dafür, dass man auf das (command verzichten und den Punkt errechnen sollte. Hast du das getan, kannst du die Linie auch mit (entmake..) erstellen.
Man kann dadurch, dass man einen Punkt übergibt nie 100% sicher sein, dass AutoCAD auch tatsächlich die von dir gedachte Linie zur Lotberechnung heranzieht. Befinden sich in der Nähe viele Objekte oder ist irgendein Objektfang eingeschaltet kann es zu vollkommen falschen Ergebnissen kommen, da AutoCAD irgendein anderes Zeichnungselemnt in der Nähe gewählt hat.
Bei Fragen ...
Grüße Holger
------------------
Holger Brischke
(defun - Lisp over night!
AutoLISP-Programmierung für AutoCAD
Da weiß man, wann man's hat!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP