「Vla-mirror」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-mirror ''vla-object'' ''pt1'' ''pt2'') ; 機能 : ある軸を中心として平面オブジェクトの鏡像イメージ コピーを作...」)
 
編集の要約なし
 
73行目: 73行目:
* [[vlax-safearray-fill]]
* [[vlax-safearray-fill]]
* [[vla-addlightweightpolyline]]
* [[vla-addlightweightpolyline]]
* [[vla-mirror3d]]


[[Category:AutoLISP]]
[[Category:AutoLISP]]

2015年10月11日 (日) 08:19時点における最新版

構文
(vla-mirror vla-object pt1 pt2)


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


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


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


  • 注意: パラメータとして指定された 2 点が、反映するオブジェクトの基準となる線分の両端になる。
  • このメソッドでは、鏡像化されたイメージが図面に配置され、元のオブジェクトもそのまま残る。
  • 元のオブジェクトを除去するには、Delete メソッドを使用する。
  • Viewport オブジェクトはペーパー空間で鏡像化できるが、そのモデル空間ビューやモデル空間オブジェクトには影響ない。
  • CAD は、複写されるオブジェクトが他のオブジェクトを持っているかどうかを検査します。他のオブジェクトがある場合はそれも複写される。すべてのオブジェクトが複写されるまで、処理が継続される。


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


  • 注 : 文字オブジェクトの反転プロパティを管理するには、システム変数 MIRRTEXT を使用する。システム変数 MIRRTEXT の既定値はオン(1)で、この設定では、文字オブジェクトも他のオブジェクトと同じように鏡像化される。システム変数 MIRRTEXT がオフ(0)の場合、文字は鏡像化されない。


サンプル
(vl-load-com)
(defun c:Example_Mirror()
    ;; ポリラインを作成して反転するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; ポリラインを作成
    (setq points (vlax-make-safearray vlax-vbDouble '(0 . 11)))
    (vlax-safearray-fill 
        points '(1 1  1 2  2 2  3 2  4 4  4 1)
    )
  
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq plineObj (vla-AddLightWeightPolyline modelSpace points))
    (vla-put-Closed plineObj :vlax-true)
    (vla-ZoomAll acadObj)
    
    ;; 鏡像の軸座標
    (setq point1 (vlax-3d-point 0 4.25 0)
          point2 (vlax-3d-point 4 4.25 0))
        
    (alert "ポリラインを鏡像化")
    
    ;; ポリラインを鏡像化
    (setq mirrorObj (vla-Mirror plineObj point1 point2))
    
    (vla-ZoomAll acadObj)
    (alert "鏡像化を完了.")
)


関連事項