Vla-rotate

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-rotate vla-object BasePoint RotationAngle)


機能
基点を中心にしてオブジェクトを回転する。


引数
  • vla-object … VLAオブジェクト(すべての図形オブジェクト、AttributeReference、Dimension )
  • BasePoint … UCS の Z 軸に平行として定義される回転軸が通過する点を指定する 3D WCS 座標。バリアント型(3 要素の倍精度浮動小数点数型配列)
  • RotationAngle … オブジェクトを回転させる角度の値(ラジアン)。この角度は、基点を中心にして、オブジェクトが現在の位置からどれくらい回転するかを決める。


戻り値
nil


サンプル
(vl-load-com)
(defun c:Example_Rotate()
    ;; LWポリライン作って回転するサンプル
    (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 3
                                  2 3
                                  3 3
                                  4 4
                                  4 2
                                 ) )

    (setq modelSpace (vla-get-ModelSpace doc))
    (setq plineObj (vla-AddLightWeightPolyline modelSpace points))
    (vla-put-Closed plineObj :vlax-true)
    (vla-ZoomAll acadObj)
            
    (alert "ポリラインを45度回転するよ")
    
    ;; 回転の設定
    (setq basePoint (vlax-3d-point 4 4.25 0)
          rotationAngle 0.7853981)   ;; 45度
    
    ;; 回転!
    (vla-Rotate plineObj basePoint rotationAngle)
    
    (vla-ZoomAll acadObj)
    (alert "回転完了")
)

関連事項