找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 9131|回复: 86

[每日一码] 用LISP和VLISP分别实现定义一个truetype的文字样式

  [复制链接]

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-7-18 22:43:19 | 显示全部楼层 |阅读模式

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

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

×
AUTOLISP实现:

  1. ;;Style: myNewStyle
  2. ;;Font Name: Swiss 721 Bold Condensed Outline BT
  3. ;;Fontfile: swisscbo.ttf
  4. (if (not (tblsearch "STYLE" "myNewStyle"))
  5.     (entmake '((0 . "STYLE")
  6.                      (100 . "AcDbSymbolTableRecord")
  7.                      (100 . "AcDbTextStyleTableRecord")
  8.                      (2 . "myNewStyle") ;style name
  9.                      (3 . "swisscbo.ttf") ;font file
  10.                      (70 . 0)
  11.                      (40 . 0.0)
  12.                      (41 . 1.0)
  13.                      (50 . 0.0)
  14.                      (71 . 0)
  15.                     )
  16.     )
  17.     (princ "\n Style already defined")
  18. )



VLISP实现:

游客,如果您要查看本帖隐藏内容请回复

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

已领礼包: 1个

财富等级: 恭喜发财

发表于 2018-3-16 18:24:36 | 显示全部楼层

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

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2017-7-19 15:43:06 | 显示全部楼层

不错,学了一招,中文 TTF 字体这样设置,windows 7 64bit + autocad 2012 64bit 测试通过

  1. (setq msty (vla-add (vla-get-textstyles
  2.                       (vla-get-activedocument (vlax-get-acad-object))
  3.                     )
  4.                     "m_st"
  5.            )
  6. )
  7. (vla-getfont msty 'TypeFace 'Bold 'Italic 'CharSet 'P&Fam)
  8. (vla-setfont msty "新宋体" Bold Italic CharSet P&Fam)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

 楼主| 发表于 2017-7-19 14:28:29 | 显示全部楼层

QQ截图20170719142432.png
上面那个红框里面,ACAD设置的时候,其实是设置的TYPEFACE,宋体,新宋体什么的。

所以,你还要设置TYPEFACE,来区别是用的宋体还是新宋体。

对TTF字体,其实是通过

(vla-GetFont objstyle 'typeFace 'Bold 'Italic 'charSet 'PitchandFamily)  ;;获取文字样式的typeface等设置
(vla-SetFont objstyle "宋体" 'Bold 'Italic 'charSet 'PitchandFamily) ;;设置文字样式的typeface等

或者:
(vla-SetFont objstyle "新宋体" 'Bold 'Italic 'charSet 'PitchandFamily) ;;设置文字样式的typeface等
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 0 反对 1

使用道具 举报

已领礼包: 2963个

财富等级: 家财万贯

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

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2017-7-19 05:36:50 | 显示全部楼层
本帖最后由 q3_2006 于 2017-7-19 05:42 编辑

怎么知道文件名对应哪种字体...哪里能查到..SimSun..是宋体...最近有个新宋体...就不知道字体文件名是哪个..搞得人很郁闷..
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 329个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 6个

财富等级: 恭喜发财

发表于 2017-7-19 06:46:48 | 显示全部楼层
我了个去吧主动态环


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

使用道具 举报

已领礼包: 812个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 5600个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-7-19 08:46:11 | 显示全部楼层

新宋体是Nsimsun.ttf,在win系统中,宋体和新宋体是打包的,文件名是simsun.ttc,这个文件名是acad不认的,但字体装入后,acad会认其中的ttf字体,实际上应该就是一个指针。在simsun.ttc中,不仅仅有以上两个ttf,还有前面加上@字符的竖排字体,就是@simsun.ttf和@Nsimsun.ttf。如果要知道文件名,不妨先定义一个字型,然后使用(entget(tblobjname "style" "aa"))这种方法查看ttf文件名。

简单测试了一下,部分字库是没有这种可见的“指针”的,比如我这里有一个“宋体-18030”,虽然使用资源管理器能查看ttc文件名,但无法查看ttf接口,这种文件本人也没有什么办法,只能不用作罢。

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

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2017-7-19 08:52:51 | 显示全部楼层

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-7-19 09:05:11 | 显示全部楼层

QQ截图20170719090252.png


进入c:\windows\fonts目录, 详细信息显示,把显示字体文件名称标签显示出来,字体的文件名就看到了,如上图。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 37个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 106个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 1428个

财富等级: 财源广进

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

使用道具 举报

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2017-7-19 12:27:01 | 显示全部楼层
本帖最后由 q3_2006 于 2017-7-19 12:28 编辑

原来这样哈..系统小白真可怜...我查了下..新宋体也是simsun但新建字体样式并不成功...是什么原因呢..
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 22:40 , Processed in 0.423816 second(s), 67 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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