Rotate3D Example

Using Programming Languages other than VBA

Sub Example_Rotate3D()
	' This example creates a box in model space.
	' It then rotates the box about an axis.
	
	Dim boxObj As Acad3DSolid
	Dim length As Double, width As Double, 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 (3DSolid) object in model space
	Set boxObj = ThisDrawing.ModelSpace.AddBox(center, length, width, height)

	' Change the viewing direction of the viewport
	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
	
	' 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#

	' Draw a line between the two axis points so that it is visible.
	' This is optional. It is not required for the rotation.
	Dim axisLine As AcadLine
	Set axisLine = ThisDrawing.ModelSpace.AddLine(rotatePt1, rotatePt2)
	axisLine.Update
	MsgBox "Rotate the box 30 degrees about the axis shown.", , "Rotate3D Example"

	' Rotate the box
	boxObj.Rotate3D rotatePt1, rotatePt2, rotateAngle
	ThisDrawing.Regen True
	MsgBox "The box is rotated 30 degrees.", , "Rotate3D Example"

End Sub

 

   Comments?