|
Rotate3D Пример |
Sub Example_Rotate3D()
'Этот пример создает поле в пространстве модели.
'Затем вращает поле вокруг оси.
Dim boxObj As Acad3DSolid
Dim length As Double, width As Double, height As Double
Dim center(0 To 2) As Double
'Определите поле
center(0) = 5#: center(1) = 5#: center(2) = 0
length = 5#: width = 7: height = 10#
'Создайте объект поля (3DSolid) в пространстве модели
Set boxObj = ThisDrawing.ModelSpace.AddBox(center, length, width, height)
'Измените направление рассмотрения области просмотра
Dim NewDirection(0 To 2) As Double
NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1
ThisDrawing.ActiveViewport.direction = NewDirection
ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
ThisDrawing.Regen True
'Определите ось поворота с двумя точками
Dim rotatePt1(0 To 2) As Double
Dim rotatePt2(0 To 2) As Double
Dim rotateAngle As Double
rotatePt1(0) = -3: rotatePt1(1) = 4: rotatePt1(2) = 0
rotatePt2(0) = -3: rotatePt2(1) = -4: rotatePt2(2) = 0
rotateAngle = 30
rotateAngle = rotateAngle * 3.141592 / 180#
'Чертите линию между двумя точками оси так, чтобы это было видимо.
'Это является дополнительным. Это не требуется для поворота.
Dim axisLine As AcadLine
Set axisLine = ThisDrawing.ModelSpace.AddLine(rotatePt1, rotatePt2)
axisLine.Update
MsgBox "Вращение на 30 градусов вокруг оси.", , "Rotate3D Пример"
'Вращайте поле
boxObj.Rotate3D rotatePt1, rotatePt2, rotateAngle
ThisDrawing.Regen True
MsgBox "Поле повёрнуто на 30 градусов.", , "Rotate3D Пример"
End Sub