玩软件 > AutoCAD
+

AutoCAD VBA编程初级教程(7)

2016-09-26    作者:未知    来源:网络文摘

第七课 写文字

    客观地说,ACAD写字功能不够历害,而用VBA可以使写字效率更高。比较正规的做法是把定义文字样式,用样式来控制文字的特性。我们还是用实例来学习,先看下面一段代码,它的作用是先创建一个文字样式,然后用这个文字样式写一段多行文本。

Sub txt()

Dim mytxt As AcadTextStyle '定义mytxt变量为文本样式

Dim p(0 To 2) As Double '定义坐标变量

p(0) = 100: p(1) = 100: p(2) = 0 '坐标赋值

Set mytxt = ThisDrawing.TextStyles.Add("mytxt") '添加mytxt样式

mytxt.fontFile = "c:\windows\fonts\simfang.ttf" '设置字体文件为仿宋体

mytxt.Height = 100 '字高

mytxt.Width = 0.8 '宽高比

mytxt.ObliqueAngle = ThisDrawing.Utility.AngleToReal(3, 0) '倾斜角度(需转为弧度)

ThisDrawing.ActiveTextStyle = mytxt '将当前文字样式设置为mytxt

Set txtobj = ThisDrawing.ModelSpace.AddMText(p, 1400, "{做到老,学到老}\P" & "此心自光明正大,过人远矣")

txtobj.LineSpacingFactor = 2 '指定行间距

txtobj.AttachmentPoint = 3 '右对齐(1为左对齐,2为居中)

End Sub

    我们看这条语句

Set mytxt = ThisDrawing.TextStyles.Add("mytxt")

    添加文本样式并赋值给mytxt变量,只需要一个参数:文本样式名

fontfile、height、width、ObliqueAngle是文本样式最常用的属性

Call ThisDrawing.ModelSpace.AddMText(p, 1400, "{做到老,学到老}\P" & "此心自光明正大,过人远矣")

    这条语句是写文本,需要三个参数。第一个参数p是坐标,1400是宽度,最后一个参数是文本内容,其中\p是一个回车符

    扩大字符间距用\T数字,例:\T3abc,使文字abc的间距扩大3 部,n取值范围是0.75-3

在论坛中有一个经常被同好提及的问题:如何使用文字叠加。举例说明:123\S+0.12^-0.34

\S是格式字符,^是分隔符,前面的数字在上,后面的数字在下。

\C是颜色格式字符,C后面跟一个数字表示颜色

\A是对齐方式,\A0,\A1,\A2分别表示底部对齐、中间对齐和顶部对齐

阅读:15722    评论:0
  • 相关文章
  • 热门文章
  • 相关评论
网站地图

免责申明:我要玩起网旨在提供一个相互学习交流的平台,是一个完全免费的网站,部分原创作品,欢迎转载,部分内容来自互联网,如果侵犯了您的权利请尽快通知我们!邮箱:279459762@qq.com Copyright 2018-2021我要玩起网

  湘ICP备17006802号-2
【电脑版】  【回到顶部】