cad字体显示问号怎么办

如题所述

CAD图纸打开后,文字显示问号?教你个一键显示字体的技巧

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-08-14
你自己随意在CAD上写个字,然后选中你刚才写好的字,这时再用格式刷刷?号,问题点解决。记得采纳哦!本回答被提问者采纳
第2个回答  2016-09-10

    cad打开图纸,字体显示问号,是缺少字体的缘故。

    有的图纸不缺少字体也会有问号,说明字体匹配不正确,只有修改字体样式才可以正确显示。

    使用程序来修改字体样式是最好的办法。

    autolisp代码如下,不清楚怎么保存autolisp的可以直接下载附件。

    (defun C:TT2 ( / &k1 &kw1 &n1 &ss1 cd1 cd2 fontname 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))))
     (princ "\n请选择带?的字体")
     (if (setq &kw1 (ssget '((0 . "TEXT,MTEXT"))))
      (progn
       (setq &ss1 '() &n1 0)
       (while (setq &k1 (ssname &kw1 0))
        (setq &kw1 (ssdel &k1 &kw1))
        (setq txt (cdr (assoc 7 (entget &k1))))
        (if (= &n1 0)
         (setq &ss1 (cons txt &ss1))
         (if (null (member txt &ss1)) (setq &ss1 (cons txt &ss1)) )
        )
        (setq &n1 (1+ &n1))
       );while
       (setq &n1 nil)
       (while (setq txt (car &ss1))
        (setq &ss1 (cdr &ss1) TxtStyle (vla-Item txts txt))
        (if (and (/= (setq fontname (vla-get-fontfile txtStyle)) "") (/= fontname "tssdeng.shx")) ;1;得到字体名称
         (progn;;1
          (setq &n1 (vla-get-width TxtStyle));取得宽度因子
          (setq cd1 (caadr (textbox (list '(0 . "TEXT") (cons 1 "文字长度") '(40 . 200) (cons 41 &n1) (cons 7 txt) '(51 . 0)))));取得文字长度
          (vla-put-fontfile TxtStyle "tssdeng.shx");字体修改为tssdeng.shx,这个字体要保证字体库里面有;或者修改为其它字体
          (setq cd2 (caadr (textbox (list '(0 . "TEXT") (cons 1 "文字长度") '(40 . 200) (cons 41 &n1) (cons 7 txt) '(51 . 0)))));取得修改后的文字长度
          (setq &n1 (* &n1 (/ cd1 cd2)))
          (vla-put-width TxtStyle &n1);修改宽度因子,保持文字长度不变
         );progn;1
        );if;1
        (if (or (and (/= (setq fontname (vla-get-bigfontfile TxtStyle)) "") (/= fontname "hztxt.shx")) (= fontname "")) ;3;得到大字体的名称
         (progn;;3
          (setq &n1 (vla-get-width TxtStyle));取得宽度因子
          (setq cd1 (caadr (textbox (list '(0 . "TEXT") (cons 1 "文字长度") '(40 . 200) (cons 41 &n1) (cons 7 txt) '(51 . 0)))));取得文字长度
          (vla-put-bigfontfile TxtStyle "hztxt.shx");修改大字体为hztxt.shx,同时要保证CAD字体库里面有这个字体;或者修改为其它字体
          (setq cd2 (caadr (textbox (list '(0 . "TEXT") (cons 1 "文字长度") '(40 . 200) (cons 41 &n1) (cons 7 txt) '(51 . 0)))));取得修改后的文字长度
          (setq &n1 (* &n1 (/ cd1 cd2)))
          (vla-put-width TxtStyle &n1);修改宽度因子,保持文字长度不变
         );progn;3
        );if;3
       );while
       (if (/= &n1 nil) (command "REGEN"));刷新图元
      )
     )
     (princ)
    );必须有tssdeng.shx,hztxt.shx两个字体,如果没有会出现错误

    打开cad,命令【appload】加载程序,命令【TT2】,选择带问号的字体,空格,就修改了字体样式。

相似回答