-
命令【style】,在字體樣式里面查看并統計字體。
-
用autolisp程序插件查看使用的字體,代碼如下:
-
- (defun C:tes ( / &n2 &ss1 fontname ss1 ss2 txt txts txtstyle)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(if (null vlax-dump-object) (vl-load-com) )
(setq txts (vla-get-textstyles (vla-get-activedocument (vlax-get-acad-object))))
(setq &ss1 '())
(vlax-for txt txts
(setq &ss1 (cons (vla-get-name txt) &ss1))
);取得文字樣式集合
(setq ss1 '() ss2 '())
(while (setq txt (car &ss1))
(setq &ss1 (cdr &ss1) TxtStyle (vla-Item txts txt))
(if (/= (setq fontname (vla-get-fontfile txtStyle)) "");1;得到字體名稱
(progn;;1
(if (null (setq &n2 (findfile fontname)));2;先搜索CAD里面的字體
(setq &n2 (findfile (strcat "C:\WINDOWS\Fonts\" fontname)));搜索不到的話,搜索系統里面的字體
);if;2;搜索字體
(setq ss1 (cons fontname ss1))
(if &n2;21;如果有這個字體
(setq ss2 (cons fontname ss2))
);if;21
);progn;1
);if;1
(if (/= (setq fontname (vla-get-bigfontfile TxtStyle)) "");3;得到大字體的名稱
(progn;;3
(if (null (setq &n2 (findfile fontname)));搜索大字體
(setq &n2 (findfile (strcat "C:\WINDOWS\Fonts\" fontname)));如果沒有就搜索系統里面的字體
);搜索字體
(setq ss1 (cons fontname ss1))
(if &n2;31;如果有找到這個字體
(setq ss2 (cons fontname ss2))
);if;31
);progn;3
);if;3
);while
(if (> (length ss1) 0) (progn (princ "n圖紙里面使用的字體: ") (princ ss1) ))
(if (> (length ss2) 0) (progn (princ "nfonts文件夾里面的字體有: ") (princ ss2) ))
(princ)
);復制到記事本,以【.lsp】為后綴命名,autolisp加載,命令【TES】,在命令行查看使用的字體。
- (defun C:tes ( / &n2 &ss1 fontname ss1 ss2 txt txts txtstyle)