- 积分
- 475
- 明经币
- 个
- 注册时间
- 2012-5-16
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
求高手解决~~! 现在的效果是:选择的尺寸或者文字只能更改图块属性初始建立的那个属性参照尺寸填入块中时,只取整数。
理想效果是能设定想要更改的目标属性, 标注填入时,取两位小数~~
(defun c:nmn(/ p sn en p1 nam ty e1 e2 st p2 p3 p4 ss );
(command "undo" "g")
(setq os (getvar "osmode") blp (getvar "blipmode"))
(setvar "blipmode" 0)
(setvar "osmode" 0)
(graphscr)
(if (null text0)(setq text0 ""))
(canzhao)
(while (setq p (entsel "请选取需要更改属性的图块~!"))
(setq sn (car p) en (entget sn) p1 (to 10) nam (to 2) ty (to 0))
(if (or (= "规格" ty)(= "INSERT" ty)(= "DIMENSION" ty))
(if (or (= "规格" ty)(= "DIMENSION" ty))
(progn ;; 将文字改为参照的文字内容
(setq e1 (subst (cons 1 st) (assoc 1 en) en))
(entmod e1)
);progn
(progn ;; 将属性改为参照的文字内容
(setq e1 (entget (entnext (cdr (car en)))))
(setq e1 (subst (cons 1 st) (assoc 1 e1) e1))
(entmod e1)(entmod en)
(if (or (eq nam "规格")(eq nam "规格1"))(progn
(setq e2 (entget (entnext (cdr (car e1)))))
(setq e2 (subst (cons 1 st) (assoc 1 e2) e2))
(entmod e2)(entmod en)
))
);progn
)
(progn
(princ "n**所选物体是")
(princ (cdr (assoc 0 en)))
(princ ", 不是文字或图块,请重新选择.**n")
)
)
)
(setvar "osmode" os)
(setvar "blipmode" blp)
(terpri)
(command "undo" "end"))
|
|