IntersectWith Пример |
Sub Example_IntersectWith() ' Этот пример создает линию и круг и находит точки, в которых они ' пересекаются. 'Создайте линию Dim lineObj As AcadLine Dim startPt(0 To 2) As Double Dim endPt(0 To 2) As Double startPt(0) = 1: startPt(1) = 1: startPt(2) = 0 endPt(0) = 5: endPt(1) = 5: endPt(2) = 0 Set lineObj = ThisDrawing.ModelSpace.AddLine(startPt, endPt) 'Создайте круг Dim circleObj As AcadCircle Dim centerPt(0 To 2) As Double Dim radius As Double centerPt(0) = 3: centerPt(1) = 3: centerPt(2) = 0 radius = 1 Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPt, radius) ZoomAll 'Найдите перекрестные точки между линией и кругом Dim intPoints As Variant intPoints = lineObj.IntersectWith(circleObj, acExtendNone) 'Печатайте все перекрестные точки Dim I As Integer, j As Integer, k As Integer Dim str As String If VarType(intPoints) <> vbEmpty Then For I = LBound(intPoints) To UBound(intPoints) str = "Перекрестная Точка[" & k & "] is: " & intPoints(j) & "," & intPoints(j + 1) & "," & intPoints(j + 2) MsgBox str, , "IntersectWith Пример" str = "" I = I + 2 j = j + 3 k = k + 1 Next End If End Sub