男生头像带字帅气冷酷:CAD中的中文字体变成“?”怎么办

来源:百度文库 编辑:高校问答 时间:2024/05/03 07:37:49
考到一张图,其不同图层上的中文有的变成?
重装CAD,也没用,问过CAD版本都是2002,
再放入一个很大的字体文件Fonts(165兆,肯定有该字体)也没用。
检查安装后的CAD里有该字体
请问该怎么处理
打开编辑多行文字,选择字体时就是找不到放入的字体,怎么回事?
求高手来帮忙!
各位的回答都很好,谢谢!

从你的问题看来,你的图纸原始绘制操作系统与你现在的操作系统语言不一样,比如说绘制图纸的电脑是繁体,而你的电脑是简体,则会出现这样的情况。另,如果你的字体样式名称使用了中文,或是字体名为中文(如宋体显示为“宋体”而不是“SimSun”时)也会出现这种情况。如果绘图使用多行文字输入时,不是通过修改字体样式来修改字体,而是直接在多行文字中修改字体的话,那麼只要放到另一台电脑上或是重装一次电脑,多行文字都会变成?。
尽量不要用其它字体,一般使用系统自带的字体即可,即明细体/新明细体(英文名:mingliu/Pmingliu),字体样式名称不要用中文,尽量使用英文或是拼音。请将所有的字体样式中的字体改为明细体、新明细体中的一种,字体样式名称改为英文。如果图中使用了多行文字,请将它们全部炸开为单行文字。通过如此修改,基本上可以解决图面上文字的问题,图层名或是标注样式名出现?只能一个一个的改。
在使用CAD绘图时,为了多语言操作系统间兼容,请尽量使用单行文字,各种样式名称不要用中文,尽量使用系统自带字体(不论是CAD还是Office等软件所带均不可用),并且尽量使用字体名为英文的字体,如arial、Times New Roman等。
以上回答适用於CAD多个版本,即AutoCAD 2000/200i/2002/2004/2005/2006的各种语言版。R14中没试过,如果出现此类问题可参照修改,一般应可以解决。DWG的三个版本,R14、2000、2004中通过。

  1. 很多字体都不显示中文的,如果要显示中文的话,在字体样式里面,把字体的样式修改为【宋体.TTF】字体。

  2. 但是都使用宋体的话,图纸打开会显示慢。所以我都使用tssdeng.shx,hztxt.shx两个字体来解决这个问题。

  3. 但是打开文字样式的时候,往往找不到或修改错了字体样式,所以写了一个程序,如果这个文字有【?】号,那么运行程序,选择这个文字,这个文字的【字体的样式】就修改完成了,很是快捷方便。程序如下:

  4. (defun C:kk4 ( / &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两个字体,如果没有会出现错误
    ;复制到记事本,以【.lsp】为后缀命名,autolisp加载,命令【KK4】,点击保存就可以,下次打开就不需要修改。同时程序保证修改后的文字长度不会改变,保证了图纸的美观。

缺字体。方法有二:
一是改变你“?”的字体为系统能认识的字体。如果“?”是汉字,可以将直接改成“宋体”等。
二是,看看你“?”字的字体是什么,把其名字记下后,去网上下,或从你原拷图的电脑上的字体库中去找。

变问号的字把字体改成TXT,保证没问题^_^

先看文字的属性中使用什么"文字样式",然后把文字样式中的字体改一下就行

对啊,那里面没有那种字体,要么在网上下载
不过应该没这个必要的,换一种就行了