在三维空间中旋转对象

AutoCAD ActiveX/VBA

 
在三维空间中旋转对象
 
 
 

使用 Rotate 方法可以在二维空间中绕指定点旋转对象。旋转的方向由 WCS 确定。而使用 Rotate3D 方法可以在三维空间中绕指定轴旋转对象。Rotate3D 方法将输入三个值:定义旋转轴的两点的 WCS 坐标和以弧度为单位的旋转角度。

要旋转三维对象,既可以使用 Rotate 方法,也可以使用 Rotate3D 方法。

有关在三维中进行旋转的详细信息,请参见《用户手册》中的“旋转对象”。

创建三维长方体,并将其绕轴旋转

本样例创建一个三维长方体,然后定义旋转轴,将长方体绕该轴旋转 30 度。

Sub Ch8_Rotate_3DBox()
    Dim boxObj As Acad3DSolid
    Dim length As Double
    Dim width As Double
    Dim 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
      
    ' 在模型空间中创建长方体对象
    Set boxObj = ThisDrawing.ModelSpace. _
                AddBox(center, length, width, height)
      
    ' 用两点定义旋转轴
    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#
    ' 旋转长方体
    boxObj.Rotate3D rotatePt1, rotatePt2, rotateAngle
    ZoomAll
End Sub