最近很多用户都提出了cass字体出现“?”或者是乱码的情况,这边给大家分享一个实例:CASS刚启动的时候,所有功能正常,用个几分钟出现了鼠标悬停提示乱码的现象。
乱码提示截图
正常提示截图
发现问题
提示的文字出现乱码,就先检查一下字体。拿到实例数据之后,在命令行输入style,回车后在下图的对话框中,发现了一个字体“左倾宋体”,这个字体对应的字体名“SimSun-ExtB”,是一个自定义的字体。
这个字体是用命令创建的,宽度因子0.8的左倾宋体引用simsunb.ttf,定义语句如下:
(defun c:X1 () ;外边线
;(setvar 'userr1 500)
(setvar "cmdecho" 0)
(if (= zipanduan nil)
(progn
(command "-style" "STANDARD" "simsunb.ttf" 0 0.8 0 "n" "n")
(setq zipanduan t)
)
)
(setq chklay (tblsearch "layer" "JMKC-外边线"))
(if (= chklay nil)
(c:jmm)
)
(command "layer" "T" "JMKC-外边线" "ON" "JMKC-外边线" "")
(command "_clayer" "JMKC-外边线")
(c:X)
(princ)
)
解决方法(一)
既然是字体出了问题,那么重新定义字体,我不会用命令定义字体,就用了自己的土办法:命令行输入style,按下图步骤重新定义了一个左斜宋体。
以下两个图的操作步骤,都可以解决哈。
有兴趣自己都动手试试,我亲自验证过了!
操作方法一
操作方法二
解决方法(二)
在反复测试中发现win10的simsun.ttc包括宋体和新宋体,不识别simsunb.ttf,但win7的话就没问题。那么在win10中重新定义字体。
定义语句如下:
defun c:X1 () ;外边线
;(setvar 'userr1 500)
(setvar "cmdecho" 0)
(if (= (Tblsearch "style" "宋体") nil)
(progn
(vl-load-com)
(setq ThisDrawing (vla-get-activedocument (vlax-get-acad-object)))
(Setq TextStyles (vla-get-TextStyles ThisDrawing))
(Setq TextStyle (vla-add TextStyles "宋体"))
(vla-SetFont TextStyle "宋体" :vlax-false :vlax-false 1 0)
)
)
(command "-style" "STANDARD" "宋体" 0 0.8 0 "n" "n")
(makelay "JMKC-外边线" 30 )
(c:X)
(princ)
)
总结:这个问题不常见,但遇到的人往往不知所措,各种baidu也没有解决方法。Win10系统中,识别CAD字体问题比较多。以前的文章里也有介绍,大家遇到字体乱码,不显示等问题,优先考虑用style命令,重新指定。
ps:如果是字体出现“?”的解决方法:
用style命令,查看库体有没有感叹号,或者库体名不对,然后设置字体即可解决。
全部评论