我无法在您的属性块上尝试代码,因为名称是用未知语言写入我的系统的,所以无论如何,请尝试并告诉我。
- (defun c:Test (/ u x y z s sn i e l v ls ent o nx)
- ;; Tharwat 02. March. 2014 ;;
- (setq u (entlast))
- (if (and (setq x (getdist "\n Specify New scale factor for < X > :"))
- (setq y (getdist "\n Specify New scale factor for < Y > :"))
- (setq z (getdist "\n Specify New scale factor for < Z > :"))
- (progn (princ "\n Select Attributed Blocks to rescale ")
- (setq s (ssget "_:L" '((0 . "INSERT") (66 . 1))))
- )
- )
- (repeat (setq i (sslength s))
- (setq e (entget (setq sn (ssname s (setq i (1- i)))))
- v nil
- l (cdr (assoc 8 e))
- v (mapcar '(lambda (a) (cons (vla-get-tagstring a) (vla-get-textstring a)))
- (vlax-invoke (setq o (vlax-ename->vla-object sn)) 'getattributes)
- )
- )
- (command "_.-insert" (vla-get-effectivename o) "_none" (cdr (assoc 10 e)) "xyz" x y z "0")
- (if (not (eq u (setq ls (entlast))))
- (progn (entmod (subst (cons 8 l) (assoc 8 (entget ls)) (entget ls)))
- (setq nx ls)
- (while (and (setq nx (entnext nx)) (/= (cdr (assoc 0 (entget nx))) "SEQEND"))
- (if (eq (cdr (assoc 0 (setq ent (entget nx)))) "ATTRIB")
- (foreach j v
- (if (eq (car j) (cdr (assoc 2 ent)))
- (entmod (subst (cons 1 (cdr j)) (assoc 1 ent) ent))
- )
- )
- )
- )
- (entdel sn)
- )
- )
- )
- )
- (princ)
- )
- (vl-load-com)
|