Vla-getucsmatrix

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


機能
UCS 座標系のデータで構成される変換マトリックスを取得する。


引数
  • vla-object … メソッドが適用される VLAオブジェクト


戻り値
UCS マトリックス。バリアント型(4 x 4 配列の倍精度浮動小数点数型)


  • 指定された UCS で図形を変換するには、このメソッドから返されるマトリックスを入力として使用し、TransformBy メソッドを使用する。


サンプル
(vl-load-com)
(defun c:Example_GetUCSMatrix()
    ;; 新しい UCS を作成し、それのための UCS 行列を見つけるサンプル。
    ;; WCS 座標を使用して円を作成し、円を UCS に変換する。

    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; 新しい UCS を定義し、原点に UCS アイコンを表示。
    (setq origin (vlax-3d-point 2 2 0)
          xAxisPoint (vlax-3d-point 3 2 0)
          yAxisPoint (vlax-3d-point 2 3 0))
    
    (setq ucsObj (vla-Add (vla-get-UserCoordinateSystems doc) origin xAxisPoint yAxisPoint "UCS1"))
    (vla-put-ActiveUCS doc ucsObj)
    (vla-put-UCSIconOn (vla-get-ActiveViewport doc) :vlax-true)
    (vla-put-UCSIconAtOrigin (vla-get-ActiveViewport doc) :vlax-true)
    (vla-put-ActiveViewport doc (vla-get-ActiveViewport doc))
    
    ;; WCS 座標を使用して円を作成。
    (setq center (vlax-3d-point 1 1 0)
          radius 0.5)
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq circleObj (vla-AddCircle modelSpace center radius))
    (vla-ZoomAll acadObj)
    
    ;; UCS 変換行列を取得。
    (setq TransMatrix (vla-GetUCSMatrix ucsObj))
    
    ;; UCS 座標にサークルを変換する。
    (alert "円を変換します。")
    (vla-TransformBy circleObj TransMatrix)
    (vla-Update circleObj)
    
    (alert "円を変換しますた。")
)

関連事項