 - ;; tt(重复图块移位) 2015-12-10
- (defun c:tt ()
- (defun dxf (code s1) (cdr (assoc code (entget s1))))
- (setvar "osmode" 0)
- (if (and (setq p1 (getpoint "\n请输入第一角: "))
- (setq p2 (getcorner p1 "\n请输入第二角: "))
- (setq ss (ssget "w" p1 p2 '((0 . "INSERT"))))
- )
- (progn
- (setq i -1
- ss-m (ssadd)
- )
- (while (setq s1 (ssname ss (setq i (1+ i))))
- (if (not (ssmemb s1 ss-m))
- (progn
- (setq lst (list '(0 . "INSERT")
- (cons 10 (DXF 10 s1))
- (cons 2 (DXF 2 s1))
- (cons 41 (DXF 41 s1))
- (cons 50 (DXF 50 s1))
- )
- ss1 (ssget "w" p1 p2 lst)
- )
- (if (> (sslength ss1) 1)
- (progn
- (setq ss1 (ssdel s1 ss1))
- (command "select" ss1 ss-m "")
- (setq ss-m (ssget "P"))
- )
- )
- )
- )
- )
- (if (> (sslength ss-m) 0)
- (progn
- (setq p0 (getpoint p2 "\n移动至...")
- i 0
- )
- (repeat (sslength ss-m)
- (setq s1 (ssname ss-m i))
- (setq p10 (cdr (assoc 10 (entget s1))))
- (command "move" s1 "" p10 p0)
- (command "line" p10 p0 "")
- (setq i (1+ i))
- )
- )
- )
- )
- )
- (princ)
- )
|