Jiangzl 发表于 2009-2-10 15:18:43

批量修改字体至仿宋体和单线体的程序

;改变当前图形中的所有文字样式的字体以为"仿宋_GB2312"或者单线体
(defun c:chTextsy(/ AcadObject AcadDocument TextColl num i SItem sname)
(setvar "cmdecho" 0)
(VL-LOAD-COM)
(initget "A S");定义关键字
(setq c(getkword "\n选择文字类型:仿宋体(A)单线体(S)<S>:"))
(if(= c nil)
    (setq c "S")
    )
(setq AcadObject(vlax-get-acad-object)
      AcadDocument(vla-get-ActiveDocument Acadobject)
      TextColl(vla-get-TextStyles AcadDocument)
)
(setq num(vla-get-Count TextColl))
(setq i 0)
(While (<= i (- num 1))
         (setq SItem(vla-Item TextColl i))
         (setq sname(vla-get-Name SItem))
       (cond
((= c "A")
         (Command "_style" sname "仿宋_GB2312" "" 0.71 "" "N" "N"))
         ((= c "S")
         (CH_TXTSTYLE sname "fst.shx" "hztxt.shx")))
         ;;(Command "_style" sname "仿宋_GB2312" "" 0.71 "" "N" "N");;;(CH_TXTSTYLE TextStyleName FontName BigFontName)
         (setq i(+ i 1))
   
         )
(Princ "\n共有:")(princ i)(princ "种文字样式被改变!")
(princ)
)

smxalsen 发表于 2009-11-2 15:59:57

晕,这么专业,有没有可以直接加载的东西
页: [1]
查看完整版本: 批量修改字体至仿宋体和单线体的程序