>" Die Prüfung ob die Elementwahl eine Linie ist, geht doch sicher viel einfacher oder?"
Ich fasse deinen Code mal kurz zusammen: Du prüfst ob das Objekt eine Linie ist.
Frage: Wie soll man denn "prüfen ob ein Objekt eine Linie ist" einfacher gestalten
wie einfach zu prüfen ob das Element eine Linie ist?
Schreibe dir dafür irgendwann mal eine Funktion dafür, die wirst du öfter benötigen
und dann siehst du die ganzen Schritte nicht mehr, aber gemacht werden müssen die..)
Außer man erlaubt Mehrfach-Objektwahl, dann nutzt man SSGET und dort kann man bereits
für die Auswahl einen Filter festlegen (ssget '((0 . "LINE"))). Stichwort: Auswahlsatz/SelectionSet
Viel einfacher geht nicht, man kann es aber schöner/kürzer gestalten wenn man nicht:
>" (ich programmiere immer vollständig mit allen setq etc.)"
>"Elegant wäre doch, wenn sich eine Einzelwahl wiederholt, bis das gewählte Element eine Linie ist"
>"oder auch wenn nichts gewählt wird. while, cond... ich kriege es einfach nicht hin."
Schreibe dir den Ablauf ordentlich auf (so gut es dir mit dem jetzigen Wissen möglich ist),
dann baue die benötigte Funktion zusammen (Denn es gibt diese nicht als native Funktion, da muß man selber ran)
Zum testen nimmst du einen einfachen code damit alle anderen potentiellen Fehler deines Codes ausgeschlossen sind,
also erstelle eine Funktion die mit (alert (cdr(assoc 8 entitylist))) einfach nur den Layer anzeigt.
Da es um die Objektwahl, verklicken und Wiederholung geht, interessiert der rest ja nicht in dem Moment.
PS: Bitte formatiere deinen Code etwas, ist ansonsten unnötig schwer zu lesen.
Code:
(while (setq EL (car(entsel "\nBitte wählen Sie eine Linie: "))) ; solange etwas gewählt wird
(if (= "LINE" (strcase(cdr(assoc 0 (setq EL (entget EL)))))) ; Objekttyp LINE ?
(progn ; dann mach
(princ (strcat "\nLinie referenziert Layer \"" (cdr(assoc 8 EL)) "\""))
) ; ansonsten
(princ "\nObjektwahl verworfen, es sind nur LINIEN-Objekte zulässig!\n")
)
)
bis das gewählte Element eine Linie ist oder
auch wenn nichts gewählt wird. while, cond... ich kriege es einfach nicht hin."
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP