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