一键去除AutoCAD图形乱码的问题

写这篇文章之前,我们首先来普及一些知识点:

AutoCAD可使用的字体文件主要分为两类:一类是CAD自定义的*.shx字体;一类是操作系统中的*.ttf字体,如宋体、黑体等。

两类字体都可以自行添加:1、SHX字体可以直接复制到CAD安装目录下的fonts目录下。2、通过安装字库或将*.ttf文件复制到c:\windows\fonts\目录下可以添加TTF字体。

TTF字体通常可以单独使用,下拉框选用即可。而SHX文件则是形文件,通常分为两种,字形和符号形。

字形又分两种,大字形和小字形,其中大字形定义的是双字节的亚洲文字,如简体中文(hztxt.shx、tssdchn.shx、gbcbig.shx)、日文韩文等。小字形一般为西方文字,包括字母、符号(txt.shx、simplex.shx)等,也称为常规字体文件。

符号形,顾名思义就是用于插入特殊符号、图形或定义线型中的图形,如ltypeshp.shx,aaa.shx,gdt.shx等。

1、形符号是可以直接插入到图中的,我们首先要用load命令载入形文件(*.shx),将字体中符号读出来,然后用shape命令插入符号,插入时指定相应符号名称,便可以将一个符号形(SHAPE)实体插入当前图中。

2、用于定义线型,很多复杂的线型都是利用符号形定义的,线型定义时将符号形(常见的如ltypeshp.shx)。

虽然都是SHX文件,但是不同类型的字体不能随意替换,即便是同类型的字体文件也不能随意替换,即便是同名的字体文件有时候也不完全相同。例如设计院使用较多的txt.shx和hztxt.shx有的带有钢筋符号,有的就不带。因此建议在进行图纸交流的时候,最好附上使用的字体文件。

 

tssdeng.shx这个字体主要用于解决cad图纸中不显示钢筋符号的问题;tssdchn.shx字体是专为autocad软件而开发的一款字体文件,缺少这个字体,有些设计图纸就不能正常显示;hztxt是CAD常用字体之一,也叫单线矢量仿宋体。您如果在使用过程中,你可能有些图形中原来使用的中文字体不是该名称,你可以通过修改图形中的字形并将大字体名称更改为该名称;或者,如果你的图形文件实在太多,那就将该字体复制后更改为你所需的字体名称(重命名)。HZTXT字体,文件体积虽小,但可以解决字体无法正确显示的大问题。

 

我们在使用CASS软件打开设计院提供的图纸时往往会看到乱码显示的,这里教大家编写一个小代码,通过一键实现解决乱码的问题。

1、lm.lsp代码内容,拷贝如下代码保存为lm.lsp,用于后面的加载;

(defun c:lm()

 (setvar 'cmdecho 0)

  (vl-load-com)
  (vlax-for for-item (vla-get-textstyles
		       (vla-get-activedocument
			 (vlax-get-acad-object)
		       )
		     )
    (if	(and
	  (not (wcmatch	(vla-get-fontfile for-item) ;simplex.shx
			"SIMPLEX*"
	       )
	  )
	  (not (wcmatch	(vla-get-fontfile for-item) ;complex.shx
			"COMPLEX*"
	       )
	  )

	  (not (wcmatch	(vla-get-fontfile for-item) ;宋体
			"SimSun*"
	       )
	  )
	  (not (wcmatch	(vla-get-fontfile for-item) ;黑体
			"SIMHEI*"
	       )
	  )

	  (not (wcmatch	(vla-get-fontfile for-item) ;楷体
			"SIMKAI*"
	       )
	  )
	  (not (wcmatch	(vla-get-fontfile for-item) ;新宋体
			"NSimSun*"
	       )
	  )
	  (not (wcmatch	(vla-get-fontfile for-item) ;仿宋体
			"SIMFANG*"
	       )
	  )


	)
      (progn
	(vla-put-fontfile for-item "tssdeng.shx")

	(vla-put-bigfontfile for-item "hztxt.shx")

      )


    )
  )
  (vla-regen (vla-get-activedocument (vlax-get-acad-object))
	     1
  )
 (command "PURGE" "a" "" "n")
 (setvar 'cmdecho 1)
  (prompt
    "\n*** 文字样式已统一修改为【Tssdeng.shx + Hztxt.shx】***\n"
  )
  (princ)
)

2、将相应的形体文件 https://download.csdn.net/download/DiXinWang/12628117 和lm.lsp拷贝到CAD目录support目录下

3、修改CAD安装目录support下的启动文件acad2012doc.lsp(这里以2012平台为例),在最后一行添加如下代码:

(load "lm.lsp")

4、每次启动图形,如果遇到乱码的问题直接使用命令 lm 即可修正这个问题。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值