Mirror3D Method (ActiveX)

Creates a mirror image of the given object about a plane.

Supported platforms: Windows only

Signature

VBA:

RetVal = object.Mirror3D(Point1, Point2, Point3)
object

Type: All drawing objects, AttributeReference, Dimension

The objects this method applies to.

Point1

Access: Input-only

Type: Variant (three-element array of doubles)

The 3D WCS coordinates specifying the first point of the mirror plane.

Point2

Access: Input-only

Type: Variant (three-element array of doubles)

The 3D WCS coordinates specifying the second point of the mirror plane.

Point3

Access: Input-only

Type: Variant (three-element array of doubles)

The 3D WCS coordinates specifying the third point of the mirror plane.

Return Value (RetVal)

Type: Object

This object can be one of any drawing object and is the result of mirroring the original object.

Remarks

Object mirrored about a plane defined by three points

AutoCAD checks to see if the object to be copied owns any other object. If it does, it performs a copy on those objects as well. The process continues until all owned objects have been copied.

Note: You cannot execute this method while simultaneously iterating through a collection. An iteration will open the work space for a read-only operation, while this method attempts to perform a read-write operation. Complete any iteration before you call this method.

AttributeReference: You should not attempt to use this method on AttributeReference objects. AttributeReference objects inherit this method because they are one of the drawing objects, however, it is not feasible to perform this operation on an attribute reference.

Examples

VBA:

Sub Example_Mirror3D()
    ' This example creates a box in model space, and mirrors the box about a plane.
    
    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)
    
    ' Define the mirroring plane with three points
    Dim mirrorPt1(0 To 2) As Double
    Dim mirrorPt2(0 To 2) As Double
    Dim mirrorPt3(0 To 2) As Double
    
    mirrorPt1(0) = 1.25: mirrorPt1(1) = 0: mirrorPt1(2) = 0
    mirrorPt2(0) = 1.25: mirrorPt2(1) = 2: mirrorPt2(2) = 0
    mirrorPt3(0) = 1.25: mirrorPt3(1) = 2: mirrorPt3(2) = 2
    
    ' Mirror the box
    Dim mirrorBoxObj As Acad3DSolid
    Set mirrorBoxObj = boxObj.Mirror3D(mirrorPt1, mirrorPt2, mirrorPt3)
    
    ' 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
    ZoomAll
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_Mirror3D()
    ;; This example creates a box in model space, and mirrors the box about a plane.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; Define the box
    (setq center (vlax-3d-point 5 5 0)
          boxLength 5
	         boxWidth 7
	         boxHeight 10)
    
    ;; Create the box (3DSolid) object in model space
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq boxObj (vla-AddBox modelSpace center boxLength boxWidth boxHeight))
    
    ;; Define the mirroring plane with three points
    (setq mirrorPt1 (vlax-3d-point 1.25 0 0)
          mirrorPt2 (vlax-3d-point 1.25 2 0)
          mirrorPt3 (vlax-3d-point 1.25 2 2))
    
    ;; Mirror the box
    (setq mirrorBoxObj (vla-Mirror3D boxObj mirrorPt1 mirrorPt2 mirrorPt3))
    
    ;; Change the viewing direction of the viewport
    (setq NewDirection (vlax-3d-point -1 -1 1))
    (setq activeViewport (vla-get-ActiveViewport doc))
    (vla-put-Direction activeViewport NewDirection)
    (vla-put-ActiveViewport doc activeViewport)
    (vla-ZoomAll acadObj)
)