Vla-mirror3d

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-mirror3d vla-object pt1 pt2 pt3)


機能
ある軸を中心として平面オブジェクトの鏡像イメージ コピーを作成する。


引数
  • vla-object … VLAオブジェクト(すべての図形オブジェクト、AttributeReference、Dimension)
  • pt1 … 対称軸の 1 点目を指定する 3D WCS 座標。
  • pt2 … 対称軸の 2 点目を指定する 3D WCS 座標。
  • pt3 … 対称軸の 3 点目を指定する 3D WCS 座標。


戻り値
鏡像化した結果の vla オブジェクト。


  • このメソッドでは、鏡像化されたイメージが図面に配置され、元のオブジェクトもそのまま残る。
  • 元のオブジェクトを除去するには、Delete メソッドを使用する。
  • CAD は、複写されるオブジェクトが他のオブジェクトを持っているかどうかを検査します。他のオブジェクトがある場合はそれも複写される。すべてのオブジェクトが複写されるまで、処理が継続される。


  • 注 : コレクション内で何度も繰り返しながら、このメソッドを実行できない。このメソッドは読み書きの操作を行うが、繰り返し処理を実行すると読み出し専用の作業領域が開いてしまう。このメソッドを呼び出す前に、繰り返し処理を完了させるようにする事。
  • AttributeReference オブジェクトにこのメソッドを使用するべきではない。AttributeReference オブジェクトがこのメソッドを継承しているのは、図面オブジェクトの 1 つだからだが、属性参照でこの処理を実行することはできない。


サンプル
(vl-load-com)
(defun c:Example_Mirror3D()
    ;; boxを作成して、面に合わせて3D鏡像化するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; box のパラメータ
    (setq center (vlax-3d-point 5 5 0)
          boxLength 5
          boxWidth 7
          boxHeight 10)
    
    ;; box (3DSolid) を生成
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq boxObj (vla-AddBox modelSpace center boxLength boxWidth boxHeight))
    
    ;; 鏡像化面を生成
    (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))
    
    ;; boxを鏡像化
    (setq mirrorBoxObj (vla-Mirror3D boxObj mirrorPt1 mirrorPt2 mirrorPt3))
    
    ;; ビューの生成
    (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)
)


関連事項