sctw 发表于 2020-8-9 17:17:43

求能获取到跟style命令一样的文字样式所使用的字体名称

1、(setq D (tblnext "style" (null D))) 这个语句不能获取到windows宋体、楷体等系统字体名称,都为空,请教怎样才能获得;
2、如果能获取到一样的中文字体,比如下图中的”华文楷体“,但实际windows\fonts 下的字体文件名却是这个英文名称,怎么再用windows里显示的中文名称去替换字体呢。


e2002 发表于 2020-8-10 12:07:11




sctw 发表于 2020-8-10 17:47:13

不明白哟,能不能再完整点呢,运行这句返回:参数类型错误: VLA-OBJECT nil

maiko 发表于 2020-8-10 23:54:19

e2002 发表于 2020-8-10 12:07


大佬牛B,膜拜

wkq004 发表于 2020-9-25 16:23:11

本帖最后由 wkq004 于 2020-9-25 16:26 编辑


(setq textStyleName "中等线体") ;_字体样式名
(setq fontFileName "方正中等线简体.ttf") ;_字体文件名
(entmake (append
   '((0 . "STYLE") (100 . "AcDbSymbolTableRecord") (100 . "AcDbTextStyleTableRecord"))
   (list (cons 2textStyleName))
   '((70 . 0) (40 . 1) (41 . 1))
(list (cons 3 (strcat (getenv "Windir") "\\fonts\\" fontFileName) )) ;(3 . "宋体.ttf")
)
)         
;;命令: (tblsearch "style" "中等线体"); ;返回不了除"宋体"外的汉字字体名
;;((0 . "STYLE") (2 . "中等线体") (70 . 0) (40 . 0.0) (41 . 1.0) (50 . 0.0) (71 . 0) (42 . 2.5) (3 . "") (4 . ""))
;;(vla-get-FontFile (vla-get-ActiveTextStyle (vla-get-ActiveDocument (vlax-get-acad-object))));返回不了除"宋体"外的汉字字体名
;;(setvar "TEXTSTYLE" textStyleName) ;_当前字体样式
;;(setq styleObj (vla-get-ActiveTextStyle (vla-get-ActiveDocument (vlax-get-acad-object))))

(setq styleObj (vlax-ename->vla-object (tblobjname "style" textStyleName)))
(vla-Getfont styleObj 'typeface 'bold 'italic 'charset 'pitchandfamily)
(print typeface) ;_返回中文字体名

页: [1]
查看完整版本: 求能获取到跟style命令一样的文字样式所使用的字体名称