找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 936|回复: 8

[每日一码] 设置字体样式

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2019-1-25 11:54:26 | 显示全部楼层 |阅读模式

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

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

×
  1. ;;设置 ttf 字体

  2. (defun xd::setfont (name tname width / ts st flst n)
  3.   (if (and (not (tblsearch "style" name))
  4.            (setq flst (apply 'append (xdrx_get_fonts t)))
  5.            (setq n (car        (vl-member-if
  6.                           '(lambda (x) (equal (strcase x) (strcase tname)))
  7.                           flst
  8.                         )
  9.                    )
  10.            )
  11.       )
  12.     (progn
  13.       (setq ts (vla-get-textstyles
  14.                  (vla-get-activedocument (vlax-get-acad-object))
  15.                )
  16.             st (vla-add ts name)
  17.       )
  18.       (vla-setfont st n :vlax-false :vlax-false 1 0)
  19.       (vla-put-width st width)
  20.       t
  21.     )
  22.   )
  23. )
  24. ;;设置  shx 字体,大字体+英文字体
  25. (defun xd::setefont (name bigfont fontfile width / ts st)
  26.   (if (not (wcmatch bigfont "*.shx"))
  27.     (setq bigfont (strcat bigfont ".shx"))
  28.   )
  29.   (if (not (wcmatch fontfile "*.shx"))
  30.     (setq fontfile (strcat fontfile ".shx"))
  31.   )
  32.   (if (and (not (tblsearch "style" name))
  33.            (findfile bigfont)
  34.            (findfile fontfile)
  35.       )
  36.     (progn
  37.       (setq ts (vla-get-textstyles
  38.                  (vla-get-activedocument (vlax-get-acad-object))
  39.                )
  40.             st (vla-add ts name)
  41.       )
  42.       (vla-put-bigfontfile st bigfont)
  43.       (vla-put-fontfile st fontfile)
  44.       (vla-put-width st width)
  45.       t
  46.     )
  47.   )
  48. )



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

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-1-25 13:15:40 | 显示全部楼层
谢谢大师分享代码,xdrx_get_fonts新函数?有详细用法吗?谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2019-1-25 14:04:38 | 显示全部楼层
本帖最后由 st788796 于 2019-1-25 14:08 编辑

xdrx_get_fonts 可以获取系统中安装的字体名称

1 获取系统中安装的字体名称(本地名称,中文系统中如 宋体、黑体、仿宋、微软雅黑 ...)

  1. (xdrx_get_fonts)
复制代码

2 获取系统中安装的字体的详细信息,子表形式 (字体名称 字体英文名称 字体文件名)

  1. (xdrx_get_fonts t)
复制代码

3 有字体文件获取该字体文件中的字体名称
a)对 TTF  字体,返回(字体本地名称 字体英文名)
  1. (xdrx_get_fonts "bell.ttf")
复制代码

b)对 TTC 字体,返回表,可能为 ((字体名1 字体英文名1) (字体名2 字体英文名2) ...)
  1. (xdrx_get_fonts "simsun.ttc")
复制代码

4 用本地名称获取英文名称及字体文件名
  1. (xdrx_get_fonts "宋体")
复制代码

5 由英文名称获取本地名称,返回表 (字体英文名称 本地名称1 本地名称2 ...)
  1. (xdrx_get_fonts "simsun")
复制代码


在中文Windows系统中,字体英文名是区分大小写的,程序中要严格按注册的大小写名称设置才能成功
测试

_$ (xdrx_get_fonts "simsun")
("SimSun" "@宋体" "宋体" "simsun.ttc")
_$ (xdrx_get_fonts "simsun.ttc")
(("@宋体" "SimSun") ("@新宋体" "NSimSun") ("宋体" "SimSun") ("新宋体" "NSimSun"))
_$ (xdrx_get_fonts "宋体")
("SimSun" "simsun.ttc")
_$ (xdrx_get_fonts "bell.ttf")
("Bell MT" "Bell MT")

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2019-1-25 14:10:11 | 显示全部楼层
st788796 发表于 2019-1-25 14:04
xdrx_get_fonts 可以获取系统中安装的字体名称

1 获取系统中安装的字体名称(本地名称,中文系统中如 宋 ...

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2019-1-25 14:14:21 | 显示全部楼层
XDRX API 1.24 中包含此函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6056个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 2107个

财富等级: 金玉满堂

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

使用道具 举报

已领礼包: 1667个

财富等级: 堆金积玉

发表于 2019-1-26 12:36:03 | 显示全部楼层
谢谢大师分享代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 401个

财富等级: 日进斗金

发表于 2019-1-27 18:25:09 | 显示全部楼层
自动替换缺的图纸?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 03:54 , Processed in 0.401327 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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