客观地说,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:windowsfontssimfang.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
在论坛中有一个经常被同好提及的问题:如何使用文字叠加。举例说明:123S+0.12^-0.34
S是格式字符,^是分隔符,前面的数字在上,后面的数字在下。
C是颜色格式字符,C后面跟一个数字表示颜色
A是对齐方式,A0,A1,A2分别表示底部对齐、中间对齐和顶部对齐
相关文章
- 2021-09-08BIM技术丛书Revit软件应用系列Autodesk Revit族详解 [
- 2021-09-08全国专业技术人员计算机应用能力考试用书 AutoCAD2004
- 2021-09-08EXCEL在工作中的应用 制表、数据处理及宏应用PDF下载
- 2021-08-30从零开始AutoCAD 2014中文版机械制图基础培训教程 [李
- 2021-08-30从零开始AutoCAD 2014中文版建筑制图基础培训教程 [朱
- 2021-08-30电气CAD实例教程AutoCAD 2010中文版 [左昉 等编著] 20
- 2021-08-30电影风暴2:Maya影像实拍与三维合成攻略PDF下载
- 2021-08-30高等院校艺术设计案例教程中文版AutoCAD 建筑设计案例
- 2021-08-29环境艺术制图AutoCAD [徐幼光 编著] 2013年PDF下载
- 2021-08-29机械AutoCAD 项目教程 第3版 [缪希伟 主编] 2012年PDF