明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2712|回复: 3

[例程]使用尺寸--引线标注

[复制链接]
发表于 2002-5-28 21:00:00 | 显示全部楼层 |阅读模式
Public Sub CreateLeader()

    ThisDrawing.ActiveTextStyle.fontFile = "c:\windows\fonts\simsun.ttf"
   
    Dim leaderObj As AcadLeader
    Dim points(0 To 8) As Double
    Dim xPnt As Variant, I As Integer
    Dim leaderType As Integer
    Dim annotation As AcadObject
   
    '选择用来确定引线的点数组
    xPnt = ThisDrawing.Utility.GetPoint(, " 选择第 1个点: ")
    points(0) = xPnt(0): points(1) = xPnt(1): points(2) = xPnt(2)
    For I = 1 To 2
        xPnt = ThisDrawing.Utility.GetPoint _
               (xPnt, "选择第" & I + 1 & "点: ")
        points(3 * I) = xPnt(0)
        points(3 * I + 1) = xPnt(1)
        points(3 * I + 2) = xPnt(2)
    Next
   
    '定义引线的形式
    leaderType = acLineWithArrow         '带箭头的直线段
    'leaderType = acSplineWithArrow
    '不使用标注注释
    'Set annotation = Nothing
        
    '在模型空间创建引线标注
    Set leaderObj = ThisDrawing.ModelSpace.AddLeader _
                    (points, annotation, leaderType)
                        
'---------------------------------------------------------
    Dim mtxtObj As AcadMText
    Dim Width As Double
    Dim mtxtStr As String
    Dim inspnt1(0 To 2) As Double
    Dim inspnt2 As Variant
   
    '确定多行文字的书写宽度
    Width = ThisDrawing.Utility.GetReal("选择文字书写宽度: ")
    '从AutoCAD的命令行输入文字
    mtxtStr = ThisDrawing.Utility.GetString(True, "输入标注文字: ")
   
    'On Error Resume Next
    'inspnt2 = ThisDrawing.Utility.GetPoint(xPnt, "选择文字插入点:")
    'If Err <> 0 Then
    '    inspnt1(0) = xPnt(0): inspnt1(1) = xPnt(1) + 3.5: inspnt1(2) = xPnt(2)
    '    Set mtxtObj = ThisDrawing.ModelSpace.AddMText(inspnt1, Width, mtxtStr)
    'Else
    '    Set mtxtObj = ThisDrawing.ModelSpace.AddMText(inspnt2, Width, mtxtStr)
    'End If
    'mtxtObj.Height = 7
   
    '创建多行文字对象
    'Dim insertPnt(0 To 2) As Double
    'insertPnt(0) = xPnt(0): insertPnt(1) = xPnt(1) + 3.5: insertPnt(2) = xPnt(2)
    xPnt(1) = xPnt(1) + 3.5
    Set annotation = ThisDrawing.ModelSpace.AddMText _
                      (xPnt, Width, mtxtStr)
    '设置多行文字的高度
    annotation.Height = 7
   
    'insPnt = annotation.insertionPoint
    'insPnt(1) = insPnt(1) + 3.5
    'annotation.insertionPoint = insPnt
   
   
    'ZoomAll
'-----------------------------------------------------------
    'leaderObj.ArrowheadType = acArrowOpen
    'leaderObj.TextGap = 3
    'leaderObj.TextHeight = 7 不支持该属性
    leaderObj.ArrowheadSize = 10      '设置箭头的尺寸
    'leaderObj.VerticalTextPosition = acVertCentered
   
End Sub
发表于 2005-1-19 21:15:00 | 显示全部楼层
这个工具不是太理想,要求输入的太多,能不能改一下,点选插入点,放置点,输入文字,结束。文字在引线的上方,下划线自动和文字宽度对齐,这样的功能好做吗?
发表于 2013-3-8 16:01:42 | 显示全部楼层
谢谢供应,修改下来用用。
发表于 2013-3-8 17:09:50 | 显示全部楼层
谢谢楼主,收藏 使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 15:21 , Processed in 0.192461 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表