Ein herzliches Grüßgott von meiner Seite!
Ich bin auf der Suche nach Hilfe!
Ich habe bereits ein lisp gebaut unter Verwendung der LeeMac BoundingBox-Routine, um einen Kreis um das Zentrum eines (oder mehrerer) ausgewählter Objekte/s zu erstellen:
(defun c:circ ( / s l )
(and (setq s (ssget "_:L"))
(setq l (LM:ssboundingbox s))
(command "circle" s ""
"_non" (apply 'mapcar (cons '(lambda ( a b ) (/ (+ a b) 2.0)) l))
20
)
)
(princ)
)
;; Selection Set Bounding Box - Lee Mac
;; Returns a list of the lower-left and upper-right WCS coordinates of a
;; rectangular frame bounding all objects in a supplied selection set.
;; s - [sel] Selection set for which to return bounding box
(defun LM:ssboundingbox ( s / a b i m n o )
(repeat (setq i (sslength s))
(if
(and
(setq o (vlax-ename->vla-object (ssname s (setq i (1- i)))))
(vlax-method-applicable-p o 'getboundingbox)
(not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list o 'a 'b))))
)
(setq m (cons (vlax-safearray->list a) m)
n (cons (vlax-safearray->list b) n)
)
)
)
(if (and m n)
(mapcar '(lambda ( a b ) (apply 'mapcar (cons a b))) '(min max) (list m n))
)
)
(vl-load-com) (princ)
Meine Frage ist nun: Wie kann ich alle Elemente auswählen, die innerhalb dieses Kreises liegen?
Konkret werde ich im späteren Verlauf den radius des Kreises von 0 weg hochiterieren, so lange, bis ich 2 linien und einen Kreis vollständig umschlossen habe!
Vielen Dank im Voraus und liebe Grüße!
Norbert
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP