格式化多行文字

AutoCAD ActiveX/VBA

 
格式化多行文字
 
 
 

新的文字将自动使用当前文字样式的特征。默认文字样式是 STANDARD。用户可以通过格式化个别字符和对 Text 对象应用特性来替代默认的文字样式,也可以使用本节介绍的方法指定格式或特殊字符。

方向选项(例如样式、对正、宽度和旋转)可以影响多行文字边框内的所有文字,而不是只影响特定的字或字符。使用 AttachmentPoint 特性修改多行文字的对正方式,使用 Rotation 特性控制文字边界的旋转角度。

使用 StyleName 特性设置新文字的默认字体和格式特征。创建文字时,可以从现有的样式列表中选择要使用的样式。用户修改某个部分应用了字符格式的 MText 对象的样式时,样式将应用到整个对象,但字符的某些格式可能无法保留。例如,如果一种 TrueType 样式更改为使用 SHX 字体或使用其他的 TrueType 字体,将导致整个对象的文字使用新字体,而所有的字符格式都会丢失。

格式选项(例如下划线、堆叠文字或字体)可以应用到段落中的个别单词或字符。用户可以修改颜色、字体和文字高度,还可以修改文字的字符间距或是增加字符的宽度。

使用大括号 ({ }) 可以仅对括号内的文字应用格式修改。用户最多可以设置八层深度的括号。

用户也可以在行或段落中输入控制代码的 ASCII 等价值来表示格式或特殊字符,例如公差和标注符号。

以下控制字符可用来创建图解中的文字。(关于此字符串的 ASCII 等价值,请参见以下图解。)

{{\H1.5x; Big text} \A2; over text\A1;/\A0; under text}

有关设置多行文字格式的详细信息,请参见《用户手册》中的“设置多行文字中字符的格式”。

使用控制字符格式化文字

本例创建并格式化 MText 对象。

Sub Ch4_FormatMText()
    Dim mtextObj As AcadMText
    Dim insertPoint(0 To 2) As Double
    Dim width As Double
    Dim textString As String
      
    insertPoint(0) = 2
    insertPoint(1) = 2
    insertPoint(2) = 0
    width = 4
      
    ' 定义控制字符的 ASCII 字符
    Dim OB As Long ' Open Bracket {
    Dim CB As Long ' Close Bracket }
    Dim BS As Long ' 反斜杠 \
    Dim FS As Long ' 正斜杠 /
    Dim SC As Long ' 分号 ;
    OB = Asc("{")
    CB = Asc("}")
    BS = Asc("\")
    FS = Asc("/")
    SC = Asc(";")
      
    ' 将以下控制字符和文字字符
    ' 指定给字符串:
    ' {{\H1.5x; Big text}\A2; over text\A1;/\A0; under text}
      
    textString = Chr(OB) + Chr(OB) + Chr(BS) + "H1.5x" _
    + Chr(SC) + "Big text" + Chr(CB) + Chr(BS) + "A2" _
    + Chr(SC) + "over text" + Chr(BS) + "A1" + Chr(SC) _
    + Chr(FS) + Chr(BS) + "A0" + Chr(SC) + "under text" _
    + Chr(CB)
      
    ' 在模型空间中创建文字对象
    Set mtextObj = ThisDrawing.ModelSpace. _
               AddMText(insertPoint, width, textString)
    ZoomAll
End Sub