修改后的vba程序如下:
Sub AlignMtext()
Dim textObj As AcadMText
Dim TextStr As String
Dim InsPoint(0 To 2) As Double
Dim TextWidth As Double
Dim TextHeight As Double
Dim pointObj As AcadPoint
Dim BS As Long
Dim TS As Long
Dim SC As Long
BS = Asc("\")
TS = Asc("S")
SC = Asc("^")
TextStr = Chr(BS) + Chr(TS) + "0.8" + Chr(SC) + "8.9"
InsPoint(0) = 10
InsPoint(1) = 10
InsPoint(2) = 0
TextWidth = 50
TextHeight = 2
Set textObj = ThisDrawing.ModelSpace.AddMText(InsPoint, TextWidth, TextStr)
textObj.AttachmentPoint = acAttachmentPointMiddleLeft
textObj.height = TextHeight
textObj.Rotation = 0
MsgBox "The AttachmentPoint is set to the default "
ZoomExtents
End Sub
全部回复(3 )
只看楼主 我来说两句-
tongmingniao
沙发
想左中对齐,可是不知道怎么回事,文字自己跑到原点那儿去了。加上一个从原点到指定点的移动语句才愿意回去。
2009-03-21 00:58:21
赞同1
-
cjj371
板凳
没有人回复,没有人愿意帮帮我吗?
2005-12-22 09:39:22
赞同0
加载更多原因:没有指定文字对齐点。textObj.TextAlignmentPoint = InsPoint
文字变量中要求上下重叠的控制字符它也不买帐,竟然给原样印出了!
原因:必须创建多行文字才能支持控制字符。
修改后的vba程序如下:
Sub AlignMtext()
Dim textObj As AcadMText
Dim TextStr As String
Dim InsPoint(0 To 2) As Double
Dim TextWidth As Double
Dim TextHeight As Double
Dim pointObj As AcadPoint
Dim BS As Long
Dim TS As Long
Dim SC As Long
BS = Asc("\")
TS = Asc("S")
SC = Asc("^")
TextStr = Chr(BS) + Chr(TS) + "0.8" + Chr(SC) + "8.9"
InsPoint(0) = 10
InsPoint(1) = 10
InsPoint(2) = 0
TextWidth = 50
TextHeight = 2
Set textObj = ThisDrawing.ModelSpace.AddMText(InsPoint, TextWidth, TextStr)
textObj.AttachmentPoint = acAttachmentPointMiddleLeft
textObj.height = TextHeight
textObj.Rotation = 0
MsgBox "The AttachmentPoint is set to the default "
ZoomExtents
End Sub
回复 举报
回复 举报