CAD 线性标注 vba

Sub KUANGAOBZ()
    Dim D(0 To 2) As Double
    Dim YD(0 To 2) As Double
    Dim ZD(0 To 2) As Double '极坐标半径中点
    Dim ptText&, ptText1&
    ptText = KuanTB.text
    D(0) = Val(TextBox5.text): D(1) = Val(TextBox6.text) - Val(GaoTB.text) - 200: D(2) = 0
    YD(0) = Val(TextBox5.text) + Val(KuanTB.text): YD(1) = Val(TextBox6.text) - Val(GaoTB.text) - 200: YD(2) = 0
     '计算中点坐标
    ZD(0) = (D(0) + YD(0)) / 2
    ZD(1) = (D(1) + YD(1)) / 2
    ZD(2) = (D(2) + YD(2)) / 2
   AddDimRotatedCTxt D, YD, ZD, 0
     Dim D1(0 To 2) As Double
    Dim YD1(0 To 2) As Double
    Dim ZD1(0 To 2) As Double '极坐标半径中点

ptText1 = GaoTB.text
    D1(0) = Val(TextBox5.text) + Val(KuanTB.text) + 200: D1(1) = Val(TextBox6.text) - Val(GaoTB.text): D1(2) = 0
    YD1(0) = Val(TextBox5.text) + Val(KuanTB.text) + 200: YD1(1) = Val(TextBox6.text): YD1(2) = 0
     '计算中点坐标
    ZD1(0) = (D1(0) + YD1(0)) / 2
    ZD1(1) = (D1(1) + YD1(1)) / 2
    ZD1(2) = (D1(2) + YD1(2)) / 2
   AddDimRotatedCTxt D1, YD1, ZD1, 90 * 3.141592 / 180#
   
End Sub
Public Function AddDimRotated(ByVal pt1 As Variant, ByVal pt2 As Variant, ByVal pt3 As Variant, ByVal pt4 As Variant) As AcadDimAligned
    Set AdimObj = ThisDrawing.ModelSpace.AddDimRotated(pt1, pt2, pt3, pt4)
      AdimObj.color = acGreen '标注颜色
      AdimObj.ArrowheadSize = 50 '标注箭头、引线箭头和钩线的尺寸
      AdimObj.TextHeight = 120 '指定标注或公差的文字高度
      AdimObj.ExtensionLineExtend= 50 '尺寸界线超出尺寸线的距离。
      AdimObj.ExtensionLineOffset = 100 '尺寸界线偏移起点的距离
End Function
Public Function AddDimRotatedCTxt(ByVal pt1 As Variant, ByVal pt2 As Variant, ByVal pt3 As Variant, ByVal pt4 As Variant) As AcadDimAligned
    Dim dimObj As AcadDimRotated
    Set dimObj = AddDimRotated(pt1, pt2, pt3, pt4)
End Function

*--------------------------------------------------------

 

 

'Sub biaozhu()
' Dim dimObj As AcadDimRotated
'Set dimObj = ThisDrawing.ModelSpace.AddDimRotated(D, YD, ZD, 0)
'       dimObj.color = acGreen '标注颜色
'       dimObj.ArrowheadSize = 8 '标注箭头、引线箭头和钩线的尺寸
'dimObj.TextHeight = 7 '指定标注或公差的文字高度
'dimObj.DecimalSeparator = "."'公制标注的小数点分隔符
'/'dimObj.UnitsFormat = acDimLScientific'指定除角度外的所有尺寸标注的单位格式。
'/'dimObj.FractionFormat = acDiagonal
'/'dimObj.FractionFormat = acHorizontal
'/'dimObj.FractionFormat = acNotStacked
'/'dimObj.TextOverride = "200"
'/'dimObj.TextPrefix = "L-"
'/'dimObj.TextSuffix = "长度"
'/'dimObj.TextRotation = 3.14159 / 4
'/'dimObj.Arrowhead1Block = "arrowBlk1" /'使用一个已定义的块取代第1个箭头
'/'dimObj.Arrowhead1Type = acArrowDefault /'定义箭头的显示形式
'/'dimObj.Arrowhead2Type = acArrowNone
'/'dimObj.DimLine1Suppress = True /'抑制第1个箭头的显示
'/'dimObj.DimLine2Suppress = True /'不抑制第2个箭头的显示(默认)
'/'dimObj.DimensionLineExtend = 30'尺寸界线超出尺寸线的距离。
'/'dimObj.ExtensionLineExtend = 5
'/'dimObj.TextGap = 3.5
'/'dimObj.TextInsideAlign = True
'/'dimObj.TextOutsideAlign = True
'/'dimObj.TextInside = True
'/'dimObj.TextMovement = acMoveTextAddLeader
'/'dimObj.VerticalTextPosition = acVertCentered
'/'dimObj.HorizontalTextPosition = acHorzCentered
'/'dimObj.DimLineInside = True
'/'dimObj.ForceLineInside = False
'/'dimObj.LinearScaleFactor = 10
'/'dimObj.ExtensionLineOffset = 10'尺寸界线偏移起点的距离
'/'dimObj.ToleranceJustification = acTolTop
'dimObj.ToleranceHeightScale = 0.9
'dimObj.TolerancePrecision = acDimPrecisionFour
'dimObj.ToleranceDisplay = acTolBasic
'dimObj.ToleranceUpperLimit = 0.002
'dimObj.ToleranceLowerLimit = 0.001
'/'dimObj.ToleranceSuppressLeadingZeros = True
'/'dimObj.ToleranceSuppressZeroInches = True
'/'dimObj.ToleranceSuppressZeroFeet = True
'/'dimObj.ExtLine1Suppress = True
'/'dimObj.Arrowhead1Type = acArrowOpen90
'dimObj.Fit = acArrowsOnly
'End Sub

*--------------------------------

'Sub Example_AddDimRotated()
'    ' 该示例在模型空间中创建水平和垂直标注。
'    Dim LineObj As AcadLine
'    Dim point1(0 To 2) As Double
'    Dim point2(0 To 2) As Double
'    Dim location(0 To 2) As Double
'    Dim rotAngle As Double
'    ' 定义标注
'    point1(0) = 0#: point1(1) = 0#: point1(2) = 0#
'    point2(0) = 5#: point2(1) = 5#: point2(2) = 0#
'    location(0) = 0#: location(1) = 0#: location(2) = 0#
'    '绘制直线
'    Set LineObj = ThisDrawing.ModelSpace.AddLine(point1, point2)
'    LineObj.color = acRed
'    ' 在模型空间中创建水平标注
'    rotAngle = 0
'    rotAngle = rotAngle * 3.141592 / 180#       ' 转换为弧度
'    Set dimObj = ThisDrawing.ModelSpace.AddDimRotated(point1, point2, location, rotAngle)
'    dimObj.color = acGreen
'    ' 在模型空间中创建垂直标注
'    rotAngle = 90
'    rotAngle = rotAngle * 3.141592 / 180#        ' 转换为弧度
'    Set dimObj = ThisDrawing.ModelSpace.AddDimRotated(point1, point2, location, rotAngle)
'    dimObj.color = acGreen
'    ThisDrawing.Application.ZoomExtents
'End Sub

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个完整的DXF线性标注组,包含线性标注的各个属性: ``` { "type": "LINEAR_DIMENSION", "start_point": [0, 0], "end_point": [5, 0], "location": [2.5, 0.5], "text": "5.0", "text_direction": [1, 0], "text_height": 0.2, "text_rotation": 0, "ext_line_1_start": [0, 0.5], "ext_line_1_end": [-0.5, 0.5], "ext_line_2_start": [5, 0.5], "ext_line_2_end": [5.5, 0.5], "dim_line_start": [2.5, 0], "dim_line_end": [2.5, 0.5], "dim_line_type": "SOLID", "dim_line_weight": 0.25, "ext_line_1_type": "SOLID", "ext_line_1_weight": 0.25, "ext_line_2_type": "SOLID", "ext_line_2_weight": 0.25 } ``` 其中,各个属性的含义如下: - `type`: 标注类型,此处为线性标注。 - `start_point`: 标注线的起点坐标。 - `end_point`: 标注线的终点坐标。 - `location`: 标注文字的位置坐标。 - `text`: 标注文字内容。 - `text_direction`: 标注文字方向。 - `text_height`: 标注文字高度。 - `text_rotation`: 标注文字旋转角度。 - `ext_line_1_start`: 标注线外侧的第一条线的起点坐标。 - `ext_line_1_end`: 标注线外侧的第一条线的终点坐标。 - `ext_line_2_start`: 标注线外侧的第二条线的起点坐标。 - `ext_line_2_end`: 标注线外侧的第二条线的终点坐标。 - `dim_line_start`: 标注线上的第一条线的起点坐标。 - `dim_line_end`: 标注线上的第一条线的终点坐标。 - `dim_line_type`: 标注线的类型。 - `dim_line_weight`: 标注线的线宽。 - `ext_line_1_type`: 标注线外侧的第一条线的类型。 - `ext_line_1_weight`: 标注线外侧的第一条线的线宽。 - `ext_line_2_type`: 标注线外侧的第二条线的类型。 - `ext_line_2_weight`: 标注线外侧的第二条线的线宽。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值