 - (defun c:bk (/ num1 num2 enn ena en num xn snum s_all xn1 xn3 bn b1)
- (setvar "cmdecho" 0) ;关闭引用显示
- (setvar "Tilemode" 0)
- (setq num2 0)
- (setq en (car (entsel "\n选择图框块:")))
- (if (/= en nil)
- ;------------------------
- (progn
- (if (= (cdr (assoc 0 (entget en))) "INSERT") ;获得图元类型
- ;--------------------------
- (progn
- ;------------------------------------------------------------ 选择视口框
- (while (< num2 1)
- (setvar "Tilemode" 1)
- (setq ena (car (entsel "\n选择对象:")))
- (if (/= ena nil)
- (if (= (cdr (assoc 0 (entget ena))) "INSERT")
- ;获得图元类型
- (progn
- ;; ---------------------------------------------- 切换到 布局
- (setvar "Tilemode" 0)
- ;;; 复制块 视口 ----------------- (对象 nn1 块基点xn 第二点 xn1=xnx+300 对象数量 nu
- (setq b1 (getvar "osmode")) ;取得捕捉设置
- (setvar "osmode" 0) ;关闭对象捕捉
- (setq xn (cdr (assoc 10 (entget en)))) ;块基点xn
- (setq snum 1) ;计算起始值 = 1
- ;;; (setq s_all 0)
- (setq xn1 (list (+ (car xn) 300) (cadr xn)))
- (command "copy" en "" xn xn1)
- (setq en (entlast))
- (setq xn (cdr (assoc 10 (entget en))))
- ;选择复制生成的 块nn1
- (setq
- xn3
- (list (+ (car xn1) 262.75) (- (cadr xn1) 174.5))
- )
- (command "_-vports" xn1 xn3)
- (command "_.MSPACE")
- (command "zoom" "o" ena "") ;模型空间对象视口中最大化
- (command "_.PSPACE")
- (setvar "osmode" b1) ;恢复对象捕捉
- )
- (print "请选择块")
- )
- (setq num2 2) ; 如果选择视口框 为空 则 退出程序
- )
- ;-------------------------------------- 选择视口块
- ) ;while
- )
- )
- (print "请选择块") ; /= "INSERT"
- )
- ----------------------------
- )
- )
|