CheckInterference Пример |
Sub Example_CheckInterference() ' Этот пример создает поле и цилиндр в пространстве модели. ' Затем находит вмешательство между этими двумя телами и создает ' новое тело от этого вмешательства. ' Для простоты рассмотрения, различные цвета используются для поля, ' цилиндра и тела вмешательства. Dim color As AcadAcCmColor Set color = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16") Dim boxObj As Acad3DSolid Dim boxLength As Double, boxWidth As Double, boxHeight As Double Dim boxCenter(0 To 2) As Double boxCenter(0) = 5#: boxCenter(1) = 5#: boxCenter(2) = 0 boxLength = 10#: boxWidth = 7: boxHeight = 10# ' Создайте объект поля (3DSolid) в пространстве модели Set boxObj = ThisDrawing.ModelSpace.AddBox(boxCenter, boxLength, boxWidth, boxHeight) Call color.SetRGB(80, 100, 244) boxObj.TrueColor = color ' Определите цилиндр Dim cylinderObj As Acad3DSolid Dim cylinderCenter(0 To 2) As Double Dim cylinderRadius As Double Dim cylinderHeight As Double cylinderCenter(0) = 0#: cylinderCenter(1) = 0#: cylinderCenter(2) = 0# cylinderRadius = 5# cylinderHeight = 20# ' Создайте Cylinder (3DSolid) объект в пространстве модели Set cylinderObj = ThisDrawing.ModelSpace.AddCylinder(cylinderCenter, cylinderRadius, cylinderHeight) Call color.SetRGB(244, 150, 50) cylinderObj.TrueColor = color ' Найдите вмешательство между этими двумя телами, и создайте новое тело от этого Dim solidObj As Acad3DSolid Set solidObj = boxObj.CheckInterference(cylinderObj, True) Call color.SetRGB(200, 150, 244) solidObj.TrueColor = color ' Измените направление рассмотрения области просмотра Dim NewDirection(0 To 2) As Double NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1 ThisDrawing.ActiveViewport.direction = NewDirection ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport ZoomAll ' Вы можете теперь удалить поле и цилиндр в AutoCADе, чтобы видеть ' тело вмешательства более ясно. End Sub