Mich würde mal interessieren, wie ihr eine Lösung mit entsel anstellt, die das entsprechende Objekt auch markiert. Wie folgt habe ich es mal gelöst.
Code:
(vl-load-com)
(defun selectObject (abfrage objType / lst)
(setvar 'errno 0)
(while (/= (getvar 'errno) 52)
(if (and (setq ent (entsel abfrage))
(= objType (cdr (assoc 0 (entget (car ent)))))
)
(apply
'(lambda (e)
(if (vl-position (car e) lst)
(progn (setq lst (vl-remove (car e) lst)) (redraw (car e) 4))
(progn (setq lst (cons (car e) lst)) (redraw (car e) 3))
)
)
(list ent)
) (if (null lst)
(progn
(if (null ent)
(princ (strcat "\n keine [" objType "] gewählt "))
(princ (strcat "\n Das war ein [" (cdr (assoc 0 (entget (car ent)))) "]"))
)
)
(car lst)
)
)
)
)
(defun c:foo ( / ent)
(if (= 'STR (type (setq ent (selectObject "\nWähle ein Objekt: " "LINE"))))
(princ "\n Versuchs noch einmal! ")
(princ (strcat "\n Die Länge der Linie ist " (rtos (vla-get-length (vlax-ename->vla-object ent)) 2 2)))
)
(princ)
)
------------------
Gruss Dirk
http://cadplayerlounge.blogspot.se
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP