(defun C:PLBOX-Multi (/ AUSWAHL INDEX ELEM XYMIN XYMAX MINX MAXX MINY MAXY DATA A) (vl-load-com) (if (and (or (and (setq AUSWAHL (ssget "I")) (> (sslength AUSWAHL) 0)) (and (setq AUSWAHL (ssget)) (> (sslength AUSWAHL) 0)) ) (or (setq A (getreal " Randabstand : ")) (setq A 0.0) ) ) (progn (setq INDEX -1) (repeat (sslength AUSWAHL) (vla-getboundingbox (vlax-ename->vla-object (ssname AUSWAHL (setq INDEX (1+ INDEX))) ) 'XYMIN 'XYMAX ) (setq DATA (cons (list (vlax-safearray->list XYMIN) (vlax-safearray->list XYMAX) ) DATA ) ) ) (setq MINX (eval (cons 'min (mapcar 'caar DATA)))) (setq MINY (eval (cons 'min (mapcar 'cadar DATA)))) (setq MAXX (eval (cons 'max (mapcar 'caadr DATA)))) (setq MAXY (eval (cons 'max (mapcar 'cadadr DATA)))) (command "_.rectang" (mapcar '- (list MINX MINY) (list A A)) (mapcar '+ (list MAXX MAXY) (list A A)) ) ) ) (princ) )