- 格式化单行文本
文本对象除了具有其它实体对象的公共属性之外,可以用一下属性修改文本对象的显示格式,Alignment设置文本水平或垂直对齐;InsertionPoint设置文本的插入点;ObliqueAngle设置文本的倾斜角度;Rotation设置文本对象的旋转角度;ScaleFactor设置文本的比例系数;TextAlignmentPoint设置文本的对齐点;TextGenerationFlag设置文本为反向显示、头向下显示或同时以两种方式显示。
- 修改单行文本
可以用文本对象的方法来编辑、修改文本对象,ArrayPolar创建圆形阵列;ArrayRectangular创建二维或三维矩形阵列;Copy复制文本对象;Delete删除文本对象;Mirror镜像文本对象;Move移动文本对象;Rotate旋转文本对象。下面的程序创建一行文字“AutoCAD二次开发”,从AutoCAD文档界面由左向右移动。
Private Sub Command1_Click()
Dim textobj As AcadText
Dim textstring As String
Dim insertionpoint(0 To 2) As Double
Dim height As Double
Dim typeface As String
Dim bold As Boolean
Dim italic As Boolean
Dim charset As Long
Dim pitchandfamily As Long
textstring = "AutoCAD二次开发"
insertionpoint(0) = 0: insertionpoint(1) = 0: insertionpoint(2) = 0
height = acadapp.ActiveDocument.height / 3
acadapp.ActiveDocument.ActiveTextStyle.GetFont typeface, bold, italic, charset, pitchandfamily
typeface = "宋体"
acadapp.ActiveDocument.ActiveTextStyle.SetFont typeface, bold, italic, charset, pitchandfamily
Set textobj = acadapp.ActiveDocument.ModelSpace.AddText(textstring, insertionpoint, height)
ZoomAll
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
Dim i As Integer
For i = 0 To acadapp.ActiveDocument.Width Step acadapp.ActiveDocument.Width / 20
point1(0) = i: point1(1) = 0: point1(2) = 0
point2(0) = point1(0) + acadapp.ActiveDocument.Width / 20: point2(1) = 0: point2(2) = 0
textobj.Move point1, point2
textobj.Update
Next i
End Sub