指定されたオブジェクトの平面を基準とした鏡像イメージを作成します。
サポートされているプラットフォーム: Windows のみ
VBA:
RetVal = object.Mirror3D(Point1, Point2, Point3)
タイプ: すべての図形オブジェクト、AttributeReference、Dimension
このメソッドが適用されるオブジェクト。
アクセス: 入力のみ
タイプ: バリアント型(3 要素の倍精度浮動小数点数型配列)
対称面の 1 点目を指定する 3D WCS 座標。
アクセス: 入力のみ
タイプ: バリアント型(3 要素の倍精度浮動小数点数型配列)
対象面の 2 点目を指定する 3D WCS 座標。
アクセス: 入力のみ
タイプ: バリアント型(3 要素の倍精度浮動小数点数型配列)
対象面の 3 点目を指定する 3D WCS 座標。
3 つの点で定義された平面を基準に鏡像化されたオブジェクト
AutoCAD は、複写されるオブジェクトが他のオブジェクトを持っているかどうかを検査します。他のオブジェクトがある場合はそれも複写されます。すべてのオブジェクトが複写されるまで、処理が継続されます。
AttributeReference:AttributeReference オブジェクトにこのメソッドを使用するべきではありません。AttributeReference オブジェクトがこのメソッドを継承しているのは、図面オブジェクトの 1 つだからですが、属性参照でこの処理を実行することはできません。
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) )