|
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