概要 - 3D で回転する(VBA/ActiveX)

Rotate メソッドを使用して、指定した点を中心にして、2D でオブジェクトを回転することができます。

回転方向は、WCS により決定されます。Rotate3D メソッドは、指定した軸を中心にして、3D でオブジェクトを回転します。Rotate3D メソッドには、回転軸を定義する 2 点の WCS 座標、およびラジアン単位の回転角度という 3 つの値を入力します。



3D オブジェクトを回転するには、RotateRotate3D のいずれかのメソッドを使用してください。

直方体を作成し軸を中心に回転する

次の例では、直方体を作成します。回転軸を定義し、最終的にこの軸を中心に直方体を 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

    ' Define the box
    center(0) = 5: center(1) = 5: center(2) = 0
    length = 5
    width = 7
    height = 10

    ' Create the box object in model space
    Set boxObj = ThisDrawing.ModelSpace. _
 AddBox(center, length, width, height)

    ' Define the rotation axis with two points
    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#
    ' Rotate the box
    boxObj.Rotate3D rotatePt1, rotatePt2, rotateAngle
    ZoomAll
End Sub