代码改变世界

VB编程设置AutoCAD单行文本格式

2011-06-18 19:54  精诚所至 金石为开  阅读(1128)  评论(0编辑  收藏  举报
  • 格式化单行文本

文本对象除了具有其它实体对象的公共属性之外,可以用一下属性修改文本对象的显示格式,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