Dim i As Double 'BY icax-cooltie
a = 0.5
b = 1
Dim tempC(0 To 2) As Double
Dim tempCir As AcadCircle
Dim r As Double
Set tempCir = ThisDrawing.ModelSpace.AddCircle(tempC, r + 0.1)
Dim ip As Variant
Dim dis As Double
Do
i = (a + b) / 2
tempC(0) = l1.StartPoint(0) + (l1.EndPoint(0) - l1.StartPoint(0)) * i
tempC(1) = l1.StartPoint(1) + (l1.EndPoint(1) - l1.StartPoint(1)) * i
r = l1.Length * i
tempCir.Delete
Set tempCir = ThisDrawing.ModelSpace.AddCircle(tempC, r)
ip = tempCir.IntersectWith(L2, acExtendThisEntity)
dis = Sqr((ip(0) - ip(3)) ^ 2 + (ip(1) - ip(4)) ^ 2)
If dis > 60 Then
b = i
Else
a = i
End If
Loop Until Abs(dis - 60) < 0.00001