AutlLisp版本:Visual LISP 2024 (zh)
写在前面:AutoCAD中文字样式、图层名称不区分大小写,即不能创建一个大写、一个小写两个文字样式或图层。
三种方法分别为:
示例:
代码块
ts
自动换行
复制代码
1
(command "_.-STYLE" "Test1" "iso.shx,bigfont.shx" "A" "N" "0.0" "0.75" "0" "N" "N" "N")
复制成功
"_.34;表示调用未经自定义的原始命令
优点:可以设置注释性、垂直性,且仅需要一行,推荐。
示例:
代码块
ts
自动换行
复制代码
12345678910111213141516
;STYLE
(setq #listS (list '(0 . "STYLE")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbTextStyleTableRecord") ;子类名称
'(2 . "Test2") ;样式名
'(70 . 0) ;二进制数,标准flag:4-垂直,16-注释性,20-垂直+注释性
'(40 . 0.0) ;高度:0为不固定
'(41 . 0.75) ;宽度因子
'(50 . 0) ;倾斜角度(弧度制)
'(71 . 0) ;二进制数,颠倒反向:2-反向,4-颠倒,6-颠倒反向
'(42 . 500.0) ;历史记录:上次使用的字高
'(3 . "C:\\Program Files\\Autodesk\\AutoCAD 2024\\Fonts\\iso.shx") ;小字体路径
'(4 . "C:\\Program Files\\Autodesk\\AutoCAD 2024\\Fonts\\bigfont.shx") ;大字体路径
) ;l
) ;s
(entmakex #listS)
复制成功
可通过tbl函数查看:
代码块
ts
自动换行
复制代码
12345
(tblsearch "STYLE" "Test2")
((0 . "STYLE") (2 . "Test2") (70 . 16) (40 . 0.0) (41 . 0.75) (50 . 0.0) (71 . 0) (42 . 500.0) (3 . "C:\\Program Files\\Autodesk\\AutoCAD 2024\\Fonts\\tssdeng.shx") (4 . "C:\\Program Files\\Autodesk\\AutoCAD 2024\\Fonts\\bigfont.shx"))
(tblobjname "STYLE" "Test2")
<图元名: 1f4851d3970>
复制成功
可通过entmod修改文字样式,以修改字体为例:
代码块
ts
自动换行
复制代码
123
(setq #epS (entget (tblobjname "STYLE" "Test2")))
(setq #pFILE (findfile "./Fonts/tssdeng.shx")) ;获得字体文件路径
(entmod (subst (cons 3 #pFILE) (assoc 3 #epS) #epS))
复制成功
代码块
ts
自动换行
复制代码
1234567891011121314
(defun gen_textstyle (/)
(setq #vDOC (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq #voTXTSTYLES (vla-get-TextStyles #vDOC))
(setq #voTOBJECT (vla-add #voTXTSTYLES "Test3")) ;选择或新建文字样式,AutoCad中文字样式不区分大小写
(setq #pFILE (findfile "./Fonts/iso.shx")) ;获得字体文件路径
(vla-put-FontFile #voTOBJECT #pFILE) ;shx字体
(setq #pFILE (findfile "./Fonts/bigfont.shx")) ;获得字体文件路径
(vla-put-BigFontFile #voTOBJECT #pFILE) ;大字体
(vla-put-Height #voTOBJECT 0.0) ;高度
(vla-put-Width #voTOBJECT 0.75) ;宽度因子
(vla-put-ObliqueAngle #voTOBJECT 0.0) ;倾斜角度
(vla-put-TextGenerationFlag #voTOBJECT 0) ;颠倒反向
(vla-put-ActiveTextStyle #vDOC (vla-get-ActiveTextStyle #vDOC)) ;重置当前活动文字样式,避免AutoLISP机制上文字样式设置可能未生效问题
) ;d
复制成功
缺点:不可控制注释性、垂直性,不推荐。
欢迎留言并发表您的见解!

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删