View Single Post
  #3  
Old 10-11-2017, 15:56
mtracy mtracy is offline
Member
 
Join Date: Jun 2012
Location: Niceville, Florida
Posts: 31
Default

Ok, just for giggles here's what I got. Find the radius of any arc.

With the shape tool select the nodes that make up the Arc or curve segment, run the macro and it tells you what the radius is.

Sub FindRadius()
Dim n As Node, x1 As Double, y1 As Double, x2 As Double, y2 As Double, os As ShapeRange, x#, y#, w#, h#
ActiveDocument.Unit = cdrInch
Optimization = True
ActiveSelection.Copy
ActiveLayer.Paste
Set os = ActiveSelectionRange

If os.Count <> 1 Then MsgBox ("Select one shape and run macro again!")
ActiveShape.Curve.Nodes.First.GetPosition x1, y1
ActiveShape.Curve.Nodes.Last.GetPosition x2, y2
If x2 <> x1 Then k = -1 Else myangle = -90: GoTo here:
With os(1)
.RotationCenterX = x1
.RotationCenterY = y1
End With
myangle = Atn((y2 - y1) / (x2 - x1)) * 180 / 3.14159265358979
here:
os(1).Rotate k * myangle

os.GetSize w, h
MsgBox Round((h / 2) + (w * w) / (h * 8), 3)
ActiveSelection.Delete
Optimization = False
Application.Refresh

End Sub
__________________
Myron Tracy
Accent Signs
Reply With Quote