Rotate Method (ActiveX)

Rotates an object around a base point.

Supported platforms: Windows only

Signature

VBA:

object.Rotate BasePoint, RotationAngle
object

Type: All drawing objects, AttributeReference, Dimension

The objects this method applies to.

BasePoint

Access: Input-only

Type: Variant (three-element array of doubles)

The 3D WCS coordinates specifying the point through which the axis of rotation is defined as parallel to the Z axis of the UCS.

RotationAngle

Access: Input-only

Type: Double

The angle in radians to rotate the object. This angle determines how far an object rotates around the base point relative to its current location.

Return Value (RetVal)

No return value.

Remarks



Examples

VBA:

Sub Example_Rotate()
    ' This example creates a lightweight polyline
    ' and then rotates that polyline.
    
    ' Create the polyline
    Dim plineObj As AcadLWPolyline
    Dim points(0 To 11) As Double
    points(0) = 1: points(1) = 2
    points(2) = 1: points(3) = 3
    points(4) = 2: points(5) = 3
    points(6) = 3: points(7) = 3
    points(8) = 4: points(9) = 4
    points(10) = 4: points(11) = 2
    Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
    plineObj.Closed = True
    ZoomAll
            
    MsgBox "Rotate the polyline by 45 degrees.", , "Rotate Example"
    
    ' Define the rotation
    Dim basePoint(0 To 2) As Double
    Dim rotationAngle As Double
    basePoint(0) = 4: basePoint(1) = 4.25: basePoint(2) = 0
    rotationAngle = 0.7853981   ' 45 degrees
    
    ' Rotate the polyline
    plineObj.Rotate basePoint, rotationAngle
    
    ZoomAll
    MsgBox "Rotation completed.", , "Rotate Example"
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_Rotate()
    ;; This example creates a lightweight polyline
    ;; and then rotates that polyline.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; Create the polyline
    (setq points (vlax-make-safearray vlax-vbDouble '(0 . 11)))
    (vlax-safearray-fill points '(1 1
                                  1 3
                                  2 3
                                  3 3
                                  4 4
                                  4 2
                                 )
    )

    (setq modelSpace (vla-get-ModelSpace doc))
    (setq plineObj (vla-AddLightWeightPolyline modelSpace points))
    (vla-put-Closed plineObj :vlax-true)
    (vla-ZoomAll acadObj)
            
    (alert "Rotate the polyline by 45 degrees.")
    
    ;; Define the rotation
    (setq basePoint (vlax-3d-point 4 4.25 0)
          rotationAngle 0.7853981)   ;; 45 degrees
    
    ;; Rotate the polyline
    (vla-Rotate plineObj basePoint rotationAngle)
    
    (vla-ZoomAll acadObj)
    (alert "Rotation completed.")
)