提供个简单的例子,你可以参考一下。

- [FONT=courier new]
- Sub Test()
- On Error Resume Next
- Dim pPt(0 To 7) As Double
- Dim sPt As Variant
- sPt = ThisDrawing.Utility.GetPoint(, "指定起点: ")
- If Err Then Exit Sub
- pPt(0) = sPt(0): pPt(1) = sPt(1)
- Dim ePt As Variant
- ePt = ThisDrawing.Utility.GetPoint(sPt, "指定终点: ")
- If Err Then Exit Sub
- sPt = ThisDrawing.Utility.PolarPoint(sPt, ThisDrawing.Utility.AngleFromXAxis(sPt, ePt), 2.5) '用于设置箭头长度
- pPt(2) = sPt(0): pPt(3) = sPt(1)
- pPt(4) = ePt(0): pPt(5) = ePt(1)
- Dim sText As String
- sText = ThisDrawing.Utility.GetString(0, "输入标高值: ")
- If sText = "" Then Exit Sub
- Dim iPt As Variant
- iPt = ePt
- Dim TextObj As AcadText
- Set TextObj = ThisDrawing.ModelSpace.AddText(sText, iPt, ThisDrawing.GetVariable("TEXTSIZE"))
- TextObj.GetBoundingBox sPt, ePt '用于计算文本长度
- iPt = ThisDrawing.Utility.PolarPoint(iPt, 0, (ePt(0) - sPt(0)) / 2 + 1)
- iPt = ThisDrawing.Utility.PolarPoint(iPt, 3.1415927 / 2, 1) '设置文本与线的间隔为1mm
- TextObj.Alignment = acAlignmentBottomCenter
- TextObj.TextAlignmentPoint = iPt
- pPt(6) = pPt(4) + ePt(0) - sPt(0) + 2: pPt(7) = pPt(5)
- Dim lwpLineObj As AcadLWPolyline
- Set lwpLineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(pPt)
- lwpLineObj.SetWidth 0, 0, 1 '设置箭头的大小
- End Sub
- [/FONT]
|