-
- Private AcadApp As Object
- Private DocApp As Object
- Private ModelApp As Object
- Private Sub Class_Initialize()
- On Error Resume Next
- Set AcadApp = GetObject(, "AutoCAD.application")
- If Err Then
- Err.Clear
- Set AcadApp = CreateObject("AutoCAD.application")
- If Err Then
- MsgBox Err.Description
- Exit Sub
- End If
- End If
- AcadApp.Visible = True
- Set DocApp = AcadApp.activedocument
- Set ModelApp = DocApp.modelspace
- End Sub
- Public Sub 水平标注(ByVal 开始点 As 点类, ByVal 结束点 As 点类, ByVal 标注文字位置 As Double, Optional 标注内容 = " ")
- Dim cor(2) As Double
- Dim pnt(2) As Double
- Dim dot(2) As Double
- Dim obj As Object
- pnt(0) = 开始点.X_坐标
- pnt(1) = 开始点.Y_坐标
- dot(0) = 结束点.X_坐标
- dot(1) = 结束点.Y_坐标
- cor(0) = (开始点.X_坐标 + 结束点.X_坐标) / 2
- cor(1) = 标注文字位置
- Set obj = ModelApp.addDimrotated(pnt, dot, cor, 0)
- obj.layer = "标注线"
- If 标注内容 " " Then obj.TextString = 标注内容
- If 标注内容 = "NULL" Then obj.TextString = " "
- obj.Update
- End Sub
- Public Sub 垂直标注(ByVal 开始点 As 点类, ByVal 结束点 As 点类, ByVal 标注文字位置 As Double, Optional 标注内容 = " ")
- Dim obj As Object
- Dim pnt(2) As Double
- Dim dot(2) As Double
- Dim cor(2) As Double
- pnt(0) = 开始点.X_坐标
- pnt(1) = 开始点.Y_坐标
- pnt(2) = 0
- dot(0) = 结束点.X_坐标
- dot(1) = 结束点.Y_坐标
- dot(2) = 0
- cor(0) = 标注文字位置
- cor(1) = (开始点.Y_坐标 + 结束点.Y_坐标) / 2
- cor(2) = 0
- Set obj = ModelApp.addDimrotated(pnt, dot, cor, 1.57)
- obj.layer = "标注线"
- If 标注内容 " " Then obj.TextString = 标注内容
- If 标注内容 = "NULL" Then obj.TextString = " "
- obj.Update
- End Sub
几年前编的,R14下调用,现在看起来很搞笑 |