求能获取到跟style命令一样的文字样式所使用的字体名称
1、(setq D (tblnext "style" (null D))) 这个语句不能获取到windows宋体、楷体等系统字体名称,都为空,请教怎样才能获得;2、如果能获取到一样的中文字体,比如下图中的”华文楷体“,但实际windows\fonts 下的字体文件名却是这个英文名称,怎么再用windows里显示的中文名称去替换字体呢。
不明白哟,能不能再完整点呢,运行这句返回:参数类型错误: VLA-OBJECT nil
e2002 发表于 2020-8-10 12:07
大佬牛B,膜拜 本帖最后由 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]