tianti 发表于 2011-10-11 21:30:00

利用VBA 写文字 对齐方面疑问

现在 我用 CAD VBA写一个文字“--DK31+500",插入到 坐标(100,100,0),即”--DK31+500“的左中 连到(100,100,0)点上, 代码写下

Sub txt()
    Dim mytxt As AcadTextStyle
    Dim ptinsert(2) As Double
    Dim txtobj As AcadText
      ptinsert(0) = 100: ptinsert(1) = 100: ptinsert(2) = 0
    Set txtobj = ThisDrawing.ModelSpace.addtext("--DK31+500", ptinsert, 20)
   txtobj.Alignment = acAlignmentMiddleLeft
End Sub
运行代码后 , 竟然跑到 (0,0,0)这个点上啦, 如果把txtobj.Alignment = acAlignmentMiddleLeft 这行代码去掉,显示的是”--DK31+500“的左下角是(100,100,0),   我想让 这个文本的左中 对应的是坐标是(100,100,0) ,, 请高手看看,如何更改啊?

wylong 发表于 2011-10-11 23:08:49

本帖最后由 wylong 于 2011-10-11 23:13 编辑



Sub txt()
    Dim mytxt As AcadTextStyle
    Dim ptinsert(2) As Double
    Dim txtobj As AcadText
   
    ptinsert(0) = 100: ptinsert(1) = 100: ptinsert(2) = 0
    Set txtobj = ThisDrawing.ModelSpace.AddText("--DK31+500", ptinsert, 20)
   
    txtobj.Alignment = acAlignmentMiddleLeft
   
    '加上下面此句即可
    txtobj.TextAlignmentPoint = ptinsert
End Sub

'参见以下说明:
'当 Alignment 属性设置为 acAlignmentLeft 时,该属性会自动复位为0, 0, 0,并且属性变为只读。
'对齐到 acAlignmentLeft 的文字使用 InsertionPoint 属性来放置文字。
'对齐到 acAlignmentAligned 或 acAlignmentFit 的文字同时使用 InsertionPoint 以及 TextAlignmentPoint 属性来放置文字。
'对齐到其它任何位置的文字使用 TextAlignmentPoint 属性来放置文字。

tianti 发表于 2011-10-12 12:36:42

谢谢                  
页: [1]
查看完整版本: 利用VBA 写文字 对齐方面疑问