(command "_.line" pkt "'lot" li) / Lisp
tappenbeck 20. Jan. 2004, 11:11

ich möchte eine linien von einem punkt (pkt) auf eine linie (li) zeichnen. mit (command "_.line" pkt "'lot" li) klappt das irgendwie nicht ! mache ich etwas falsch oder muss ich den lotfußpunkt immer alternativ berechnen ????

(setq pkt (getpoint))
(setq li (car (entsel)))

vielen dank im voraus.

gruß Jan :-)

Brischke 20. Jan. 2004, 11:30

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

marvin101010 20. Jan. 2004, 11:34

muss da jetzt auch meinen senf dazu geben...

jan...lass es sein!!!
wenn es auch nur ansatzweise eine möglichkeit gibt (command "...) zu umgehen, dann TU ES!!!!!!
ein wenig geometrie...eine prise nachdenken mit einem schuss (entmake ...) und schon hast du eine blitzsaubere lösung, die immer funktioniert.
probier es aus und du wirst es nicht bereuen.