找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1317|回复: 19

[求助] 请问怎样用entmake 建立 "新宋体" 的字型?

[复制链接]
发表于 2017-8-5 08:40:56 | 显示全部楼层 |阅读模式

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

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

×
请问怎样用entmake 建立 "新宋体" 的字型?求指点
(TBLSEARCH "style" "aa")
((0 . "STYLE") (2 . "aa") (70 . 0) (40 . 0.0) (41 . 1.0) (50 . 0.0) (71 . 0) (42 . 2.5) (3 . "") (4 . ""))

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

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-8-5 15:37:46 | 显示全部楼层
下面命令创建一个 myNewStyle 样式,字体用 新宋体,你可以借鉴修改下。

  1. (defun c:tt ()
  2.   (if (not (tblsearch "STYLE" "myNewStyle"))
  3.     (entmake '((0 . "STYLE")
  4.                (100 . "AcDbSymbolTableRecord")
  5.                (100 . "AcDbTextStyleTableRecord")
  6.                (2 . "myNewStyle")        ;style name
  7.                (3 . "")        ;font file
  8.                (70 . 0)
  9.                (40 . 0.0)
  10.                (41 . 1.0)
  11.                (50 . 0.0)
  12.                (71 . 0)
  13.                (-3 ("ACAD" (1000 . "NSimSun") (1071 . 34353)))
  14.               )
  15.     )
  16.     (princ "\n Style already defined")
  17.   )
  18.   (princ)
  19. )



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

使用道具 举报

已领礼包: 28个

财富等级: 恭喜发财

发表于 2017-8-5 10:13:05 | 显示全部楼层
(3 . "")明明是新宋体

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

使用道具 举报

已领礼包: 496个

财富等级: 日进斗金

发表于 2017-8-5 11:08:41 | 显示全部楼层
本帖最后由 fangmin723 于 2017-8-5 11:12 编辑

(defun c:tt ()
        (setq textstyles (vla-add (vla-get-TextStyles (vla-get-ActiveDocument (vlax-get-acad-object))) "宋 宽0.7 高3"))
        (vla-SetFont textstyles "宋体" :vlax-false :vlax-false 1 0)
        (vlax-put-property textstyles "Height" 3)
        (vlax-put-property textstyles "Width" 0.7)
)

评分

参与人数 1D豆 +2 收起 理由
/db_自贡黄明儒_ + 2 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-8-5 14:36:14 | 显示全部楼层

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

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-8-5 15:25:03 | 显示全部楼层
本帖最后由 marting 于 2017-8-5 15:31 编辑

宋体和新宋体都是一个字体文件定义的,不同的typeface,要用vlisp的vla-setfont 。

要用ENTMAKE,用添加扩展实体数据

下面做个测试

设置了“新宋体”的样式定义,entget数据定义是:


  1. 命令: (entget obj)
  2. ((-1 . <图元名: -24f378>) (0 . "STYLE") (330 . <图元名: -24f3e8>) (5 . "11") (100 .
  3. "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord") (2 . "Standard")
  4. (70 . 0) (40 . 0.0) (41 . 1.0) (50 . 0.0) (71 . 0) (42 . 2.5) (3 . "") (4 . ""))

复制代码


既然定义了,那么数据一定是保存在文字样式记录里面的,那么接着查看下扩展实体定义


  1. 命令: (entget obj '("*"))
  2. ((-1 . <图元名: -24f378>) (0 . "STYLE") (330 . <图元名: -24f3e8>) (5 . "11") (100 .
  3. "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord") (2 . "Standard")
  4. (70 . 0) (40 . 0.0) (41 . 1.0) (50 . 0.0) (71 . 0) (42 . 2.5) (3 . "") (4 . "")
  5. (-3 ("ACAD" (1000 . "NSimSun") (1071 . 34353))))

复制代码


所以,扩展实体数据里面,就是vla-setfont定义的那些。

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

使用道具 举报

已领礼包: 197个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-8-5 17:45:09 | 显示全部楼层
本帖最后由 ll_j 于 2017-8-5 21:27 编辑

又折腾了一会,有以下收获:
1、在组码3中使用字体名也是可以定义的,但不是字体文件名,应该是字体系统显示名(TYPEFACE),虽然可以定义,但这是有缺陷的,就是在acad中显示的字体名是有感叹号的。
2、中文字体应该直接在扩展数据中使用系统显示的字体名(如“新宋体”、“@黑体”等),不要使用由字体定义检索得到的西文名称(如“simsun”)。
3、在扩展数据在使用TYPEFACE,不要带扩展名。

附上修改后的程序,有兴趣的可以测试完善:
  1. ;;sn-acad定义字体名
  2. ;;tfa-windows系统显示字体名
  3. (defun mkts (sn tfa)
  4.   (if (not (tblsearch "STYLE" sn))
  5.     (entmake
  6.       (list '(0 . "STYLE")
  7.             '(100 . "AcDbSymbolTableRecord")
  8.             '(100 . "AcDbTextStyleTableRecord")
  9.             (cons 2 sn)
  10.             '(70 . 0)
  11.             '(40 . 0.0)
  12.             '(41 . 1.0)
  13.             '(50 . 0.0)
  14.             '(71 . 0)
  15.             (list -3 (list "ACAD" (cons 1000 tfa)))
  16.       )
  17.     )
  18.     (princ "\n Style already defined")
  19.   )
  20. )

评分

参与人数 1D豆 +5 收起 理由
/db_自贡黄明儒_ + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-8-5 18:24:23 | 显示全部楼层

长老,ACAD定义字体名是指的什么?

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-8-5 18:25:26 | 显示全部楼层

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-8-5 18:31:54 | 显示全部楼层

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-8-5 18:35:51 | 显示全部楼层

命令: (mkts "myts" "新宋体")
nil

打开STYLE对话框,没有新字形创建呢?

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-8-5 18:41:45 | 显示全部楼层

先打开文字样式对话框看看字体名中有没有“T新宋体”,再看看这个样式名是不是定义过,我这里是正常的。
命令: (mkts "kt" "@楷体_gb2312")
((0 . "STYLE") (100 . "AcDbSymbolTableRecord") (100 .
"AcDbTextStyleTableRecord") (2 . "kt") (70 . 0) (40 . 0.0) (41 . 1.0) (50 .
0.0) (71 . 0) (-3 ("ACAD" (1000 . "@楷体_gb2312"))))

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-8-5 18:51:09 | 显示全部楼层

新宋体应该是每个中文WINDOWS都有的吧,我这里肯定有的

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 03:49 , Processed in 0.359127 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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