请问 如何得到当前打开的图形中的所有字体名,以及它是否使用大字体的信息
本帖最后由 作者 于 2003-5-14 11:43:54 编辑我是想这样,别人拿来的图,很多字体我没有,我想用LISP得到有哪些字样式是普通(如XX宋体)我用宋体替代. 哪些是单线字,我用HZTXT等代替。 这样,既替换了字体,又没有太大的改变文字大小位置关系等。
供參考
;;(TABLE "STYLE")(defun TABLE (S / NAME ENT D R)
(while (setq D (tblnext S (null D)))
(setq NAME (cdr (assoc 2 D)))
(setq ENT (entget (tblobjname "STYLE" NAME)))
(setq
R (cons (list NAME (cdr (assoc 3 ENT)) (cdr (assoc 4 ENT))) R)
)
)
)
;;只对改动指定的文字样式
(defun CH_TXTSTYLE (TextStyleName FontName BigFontName / TxtStyle Doc)
(setq TxtStyle (vla-Item
(vla-get-textstyles
(setq Doc (vla-get-activedocument
(vlax-get-acad-object)
)
)
)
TextStyleName
)
)
(if (= (strcase (substr FontName (- (strlen FontName) 3) 4))
".TTF"
)
(vla-put-fontfile
TxtStyle
(strcat (getenv "Windir") "\\fonts\\" FontName)
)
(progn
(vla-put-fontfile TxtStyle FontName)
(vla-put-bigfontfile TxtStyle BigFontName)
)
)
(vla-regen Doc acallviewports)
(vlax-release-object Doc)
(vlax-release-object TxtStyle)
(princ)
)
;;示例:将文字样式设为TTF字体-宋体
;;(CH_TXTSTYLE "STANDARD" "SIMSUN.TTF" "")
没人回答? 我顶!
页:
[1]