;;程序名称:修改属性块中各属性的特性
;;执行命令:TT
;;程序功能:将选定的属性块对象中的各属性的特性,如字体、颜色等改变。
;;作者:SUNDYY
;;
(defun c:TT (/ selobjs)
(setq selobjs (ssget)) ;修改用户选择集中属性块的属性
;;(setq selobjs (ssget "X" '((0 . "INSERT"))));自动修改所有属性块的属性
(if (not selobjs)
(princ "\n没有选择对象!")
(change-att selobjs)
)
(princ)
)
(defun change-att (selobjs / ss_count ss_name ss_att)
(vl-load-com)
(setq ss_count 0)
(repeat (sslength selobjs)
(setq ss_name (ssname selobjs ss_count))
(if (and (setq ss_att (entget ss_name))
(= (cdr (assoc 0 ss_att)) "INSERT")
)
(progn
(if (= (cdr (assoc 66 ss_att)) 1)
(progn ;下面是设置属性(针对增强属性编辑器中的文字选项和特性),可以使用变量,由用户输入
(mapcar '(lambda (x)
(vla-put-layer x "text-en") ;设置层为text-en
(vla-put-color x acbylayer) ;设置颜色随层
(vla-put-stylename x "ENTXT");设置字体样式为自定义的ENTXT
(vla-put-height x 3) ;设置字体高度为3,此处可以加一个图纸比例
(vla-put-scalefactor x 0.7) ;设置宽度比例为0.7
;......
)
(safearray-value
(variant-value
(vla-getattributes
(vlax-ename->vla-object ss_name)
)
)
)
)
)
)
)
)
(setq ss_count (1+ ss_count))
)
)
(princ "\n程序已加载,输入TT命令执行。")