谁能帮我添加一下 多选物体绘制包围框并标注包围框
谁能帮我把这个代码更改一下,多选物体绘制包围框并标注包围框。{:1_1:};;框选物体画框 By Gu_xl 明经通道 2014.05.12(defun c:mBox (/ BOX INTERSECT RECTANG SS N L A L1 FLAG B C)(defun box (e / p1 p2 p3 p4 obj) (setq obj (vlax-ename->vla-object e)) (vla-GetBoundingBox obj 'p1 'p3) (setq p1 (vlax-safearray->list p1) p3 (vlax-safearray->list p3) p2 (list (car p1) (cadr p3) (caddr p1)) p4 (list (car p3) (cadr p1) (caddr p1)) ) (if (= "SPLINE" (cdr (assoc 0 (entget e)))) (progn (SETQ lst (mapcar '(lambda (a b) (vlax-curve-getClosestPointToProjection e a b t) ) (list p1 p2 p3 p4) '((1.0 0 0) (0 -1.0 0) (-1.0 0 0) (0 1.0 0)) ) ) (list (apply 'mapcar (cons 'min lst)) (apply 'mapcar (cons 'max lst)) ) ) (list p1 p3) ))(defun intersect (a b) (if (or (and (<= (caar a) (caar b) (caadr a)) (<= (cadar a) (cadar b) (cadadr a)) ) (and (<= (caar a) (caar b) (caadr a)) (<= (cadar a) (cadadr b) (cadadr a)) ) (and (<= (caar a) (caadr b) (caadr a)) (<= (cadar a) (cadadr b) (cadadr a)) ) (and (<= (caar a) (caadr b) (caadr a)) (<= (cadar a) (cadar b) (cadadr a)) ) ) (list (apply 'mapcar (cons 'min (append a b))) (apply 'mapcar (cons 'max (append a b))) ) ))(defun rectang (a b) (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(8 . "0") '(62 . 1) '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1) (cons 10 a) (list 10 (car a) (cadr b)) (cons 10 b) (list 10 (car b) (cadr a)) ) ))(if (setq ss (ssget)) (progn (repeat (setq n (sslength ss)) (setq l (cons (box (ssname ss (setq n (1- n)))) l)) ) (setq l (vl-sort l '(lambda (a b) (if (equal (caar a) (caar b) 1e-3) (if (equal (cadar a) (cadar b) 1e-3) (if (equal (caadr a) (caadr b) 1e-3) (< (cadadr a) (cadadr b)) (< (caadr a) (caadr b)) ) (< (cadar a) (cadar b)) ) (< (caar a) (caar b)) ) ) ) ) (setq a (car l) l (cdr l) ) (while l (setq l1 nil flag nil ) (while l (setq b (car l) l (cdr l) ) (if (setq c (intersect a b)) (setq a c flag t ) (setq l1 (cons b l1)) ) ) (setq l (reverse l1)) (if (not flag) (progn (rectang (car a) (cadr a)) (setq a (car l) l (cdr l) ) ) ) (if (not l) (rectang (car a) (cadr a)) ) ) ))(princ))
这是从Gu_xl的个人空间复制过来的。帮忙添加一下并标注。 GU版主你好,多选物体绘制包围框能不能添加一下并标注包围框再提取到EXCEL。 没太明白你的意图
页:
[1]