找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1099|回复: 3

[原创]:字体重定义与恢复源定义。

[复制链接]

已领礼包: 593个

财富等级: 财运亨通

发表于 2002-6-23 23:14:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
经常修改别人的图,可能自己的机器中没有图中的字体或者原图中使用了TTF字体,本程序解决决字体替代的问题,将TTF字体换用SHX字体以提高显示速度,返回图形时再恢复源字型定义。

  1. ;|
  2. 说明:safnt 重新定义图中所有字型定义,resfnt 恢复图中原始字型定义
  3.       需要XDRX_API支持,Only for 2000+
  4. |;
  5. (defun c:safnt (/ e e1 a2 oldtxtsty)
  6.   (setq a2 '()
  7.         oldtxtsty (getvar "textstyle"))
  8.   (xdrx_object_get "style")
  9.   (while (setq e (xdrx_object_next))
  10.     (setq e1 (if (/= (cdr (assoc 4 (entget (cadr e)))) "")
  11.                (strcat (cdr (assoc 3 (entget (cadr e))))
  12.                        ","
  13.                        (cdr (assoc 4 (entget (cadr e))))
  14.                )
  15.                (cdr (assoc 3 (entget (cadr e))))
  16.              )
  17.     )
  18.     (setq a2 (append (list (list (car e) e1)) a2))
  19.   )
  20.   ;;建立词典,随图保存
  21.   (vlax-ldata-put "#myaxis" "style" a2)
  22.   (while a2
  23.     (setq st
  24.            (car a2))
  25.     (command "-style"
  26.              (car st)
  27.              (if (or (wcmatch (cadr st) "*,*")
  28.                      (wcmatch (cadr st) "*ttf")
  29.                  )
  30.                "romans,hzdx"[COLOR=orangered];;此字型可自行定义[/color]
  31.                "romans"
  32.              )
  33.              ""
  34.              ""
  35.              ""
  36.              ""
  37.              ""
  38.              ""
  39.     )
  40.     [COLOR=orangered](command)[/color]
  41.     (setq a2 (cdr a2))
  42.   )
  43.   (setvar "textstyle" oldtxtsty)
  44.   (princ)
  45. )
  46. (defun c:resfnt        (/ a oldtxtsty)
  47.   (setq oldtxtsty (getvar "textstyle"))
  48.   (setq a (vlax-ldata-get "#myaxis" "style"))
  49.   (while a
  50.     (command "-style" (caar a) (cadar a) "" "" "" "" "" (if (= oldtxtsty (caar a)) ""))
  51.     (setq a (cdr a))
  52.   )
  53.   (command)
  54.   (vlax-ldata-delete "#myaxis" "style")
  55.   (setvar "textstyle" oldtxtsty)
  56.   (princ)
  57. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6530个

财富等级: 富甲天下

发表于 2002-6-24 15:59:42 | 显示全部楼层

  1. 建议修改:

  2.     (command "-style"
  3.              (car st)
  4.              (if (or (wcmatch (cadr st) "*,*")
  5.                      (wcmatch (cadr st) "*ttf")
  6.                  )
  7.                "romans,hzdx"
  8.                "romans"
  9.              )
  10.              ""
  11.              ""
  12.              ""
  13.              ""
  14.              ""
  15.              ""
  16.     )

  17. 为:

  18.     (command "-style"
  19.              (car st)
  20.              (if (or (wcmatch (cadr st) "*,*")
  21.                      (wcmatch (cadr st) "*ttf")
  22.                  )
  23.                "romans,hzdx"
  24.                "romans"
  25.              )
  26.              ""
  27.              ""
  28.              ""
  29.              ""
  30.              ""
  31.     )
  32.     (command)       ;少一个回车,解决有些字体不支持竖排。

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-24 20:42:25 | 显示全部楼层
eachy ,  整理一下提供源码下载,大家都用copy & paste也不是办法,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-6-24 21:39:41 | 显示全部楼层
多一个少一个回车和shx的竖排方式有关,用command总有
点鸡肋感,还是用entmake,不管中西文,不管竖排,一次
定出。不过我用来定义ttf时,cad崩了几次,不愿再试了,
也不知是因为entmake还是cad本身,权当只能定义shx字体。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-18 00:49 , Processed in 0.185598 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表