Creates a mirror image of the given object about a plane.
Supported platforms: Windows only
VBA:
RetVal = object.Mirror3D(Point1, Point2, Point3)
Type: All drawing objects, AttributeReference, Dimension
The objects this method applies to.
Access: Input-only
Type: Variant (three-element array of doubles)
The 3D WCS coordinates specifying the first point of the mirror plane.
Access: Input-only
Type: Variant (three-element array of doubles)
The 3D WCS coordinates specifying the second point of the mirror plane.
Access: Input-only
Type: Variant (three-element array of doubles)
The 3D WCS coordinates specifying the third point of the mirror plane.
Type: Object
This object can be one of any drawing object and is the result of mirroring the original object.
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.
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.
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) )