楼主是想用VBA实现此功能吧。可以按以下方法实现
VBA中的ARC对象包含startpoint,endpoint,center,totalangle等属性。首先求出弧所包含的弦的中点,然后计算自中心至弦中点的角度值(自X轴起),利用polarpoint方法求出弧的中点(注意:当弧所包含的角度大于180度时,应计算自弦中点至中心的线段的角度),实现程序如下:
Public Sub middlearc() Dim myarc As AcadArc Dim pt1 As Variant, pt2 As Variant, ptcent As Variant, pnt As Variant, ptint As Variant Dim starang As Double, endang As Double, midang As Double, totalang As Double, radiu As Double Dim util As Object Dim mospace As AcadModelSpace Dim ptxmid(0 To 2) As Double
Set mospace = ThisDrawing.ModelSpace Set util = ThisDrawing.Utility
util.GetEntity myarc, pnt, "请选择圆弧" '以下获得各属性 pt1 = myarc.StartPoint: pt2 = myarc.EndPoint: ptcent = myarc.center: radiu = myarc.Radius starang = myarc.StartAngle: endang = myarc.EndAngle: totalang = myarc.TotalAngle '计算弦中点 ptxmid(0) = (pt1(0) + pt2(0)) / 2#: ptxmid(1) = (pt1(1) + pt2(1)) / 2# '获得自中心至弦中点线段的角度 midang = util.AngleFromXAxis(ptcent, ptxmid) '当弧所包含的角度大于180度时,获得自弦中点至中心的线段角度 If totalang > 3.1415926 Then midang = util.AngleFromXAxis(ptxmid, ptcent) End If '计算弧的中点 ptint = util.PolarPoint(ptcent, midang, radiu)
msgbox "弧中点坐标为:X=“ & ptint(0) & " " & "Y=" & ptint(1) '将中点用点进行标记 Set ptsign = mospace.AddPoint(ptint)
End Sub |