 - ;尾号递增
- (defun c:tt ()
- (setvar "CMDECHO" 0)
- (vl-load-com)
- (setq n 1)
- (setq str (if (= (type str) 'STR) str ""))
- (setq str (getstring (strcat "\n文字前缀" str ": ")))
- (while (setq pt (getpoint "\n封闭区域内一点: "))
- (setq s1 (entlast) ss (ssadd))
- (command "boundary" pt "")
- (while (setq s1 (entnext s1)) (ssadd s1 ss))
- (if (> (sslength ss) 0) (progn
- (setq i -1 plst (list))
- (repeat (sslength ss)
- (setq en (ssname ss (setq i (1+ i))))
- (vla-getboundingbox(vlax-ename->vla-object en) 'p1 'p2)
- (setq plst (append plst (list(vlax-safearray->list p1)(vlax-safearray->list p2))))
- )
- (command "_.ERASE" ss "")
- (setq p1 (apply 'mapcar (cons 'min plst)))
- (setq p2 (apply 'mapcar (cons 'max plst)))
- ; (setq p1 (list (apply 'min (mapcar 'car plst)) (apply 'min (mapcar 'cadr plst))))
- ; (setq p2 (list (apply 'max (mapcar 'car plst)) (apply 'max (mapcar 'cadr plst))))
- (setq pm (mapcar '(lambda (a b) (/ (+ a b) 2)) p1 p2))
- (command "_.TEXT" "M" pm 300 "" (strcat str (itoa n)))
- (setq n (1+ n))
- ))
- )
- (setvar "CMDECHO" 1)
- (princ)
- )
 - ;;加边框
- (defun c:ttt ()
- (setvar "CMDECHO" 0)
- (vl-load-com)
- (setq bx (getdist "\nEnter Around Space 输入四周间隔: "))
- (while (progn (princ "\n选择加框物体: ") (setq ss (ssget)))
- (setq i -1 plst (list))
- (repeat (sslength ss)
- (setq en (ssname ss (setq i (1+ i))))
- (vla-getboundingbox(vlax-ename->vla-object en) 'p1 'p2)
- (setq plst (append plst (list(vlax-safearray->list p1)(vlax-safearray->list p2))))
- )
- (setq p1 (apply 'mapcar (cons 'min plst)))
- (setq p2 (apply 'mapcar (cons 'max plst)))
- (setq p1 (mapcar '- p1 (list bx bx)))
- (setq p2 (mapcar '+ p2 (list bx bx)))
- (command "_.RECTANG" p1 p2)
- )
- (setvar "CMDECHO" 1)
- (prin1)
- )
|