我同意pBe-您最好的选择是将外部参照放置在锁定的图层上,并进一步教育您的同事不要移动外部参照。
下面是一个简短的程序,用于将所有外部参照移动到原点:
- (defun c:x2or ( / def enx inc lst sel )
- (while (setq def (tblnext "block" (null def)))
- (if (= 4 (logand 4 (cdr (assoc 70 def))))
- (setq lst (vl-list* "," (cdr (assoc 2 def)) lst))
- )
- )
- (if
- (and lst
- (setq sel
- (ssget "_X"
- (list '(0 . "INSERT")
- (cons 2 (apply 'strcat (cdr lst)))
- )
- )
- )
- )
- (repeat (setq inc (sslength sel))
- (setq enx (entget (ssname sel (setq inc (1- inc)))))
- (entmod (subst '(10 0.0 0.0 0.0) (assoc 10 enx) enx))
- )
- )
- (princ)
- )
|