Vla-get-direction

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


機能
図面の 3D 表示の視線方向、または表の方向ベクトルを取得する。


引数
  • vla-object … VLAオブジェクト(ExtrudedSurface、PViewport、Table、View、Viewport)


戻り値
  • Table オブジェクトの場合 : ベクトル(WCS 座標での X 軸)は、表を含む水平面を定義する。
  • 他のオブジェクトの場合 : ベクトルは、図面を見ることができる方向を定義する 3 要素の倍精度浮動小数点数型配列。


  • MEMO: このプロパティは、空間の指定された点から原点(0,0,0)を見るように、図面を見る位置にビューを設置する。このプロパティは、CAD の VPOINT[3D 視点]コマンドに似ている。


サンプル
(vl-load-com)
(defun c:Example_Direction()
    ;; 円を作成してからビューポートの方向を変更するサンプル。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; 円の定義
    (setq centerPoint (vlax-3d-point 0 0 0)
          radius 5)

    ;; 円を作成
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq circleObj (vla-AddCircle modelSpace centerPoint radius))
        
    ;; 円の厚さを変更
    (vla-put-Thickness circleObj 3)
    
    ;; ビューポートの方向を変更
    (setq NewDirection (vlax-3d-point -1 -1 1))
    (setq activeViewport (vla-get-ActiveViewport doc))
    (vla-put-Direction activeViewport NewDirection)
    (vla-put-ActiveViewport doc activeViewport)
)

(defun c:Example_TableDirection()
    ; 表の方向を変更するサンプル。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    (setq modelSpace (vla-get-ModelSpace doc))
  
    (setq pt (vlax-3d-point 0 0 0)
          oT (vla-AddTable modelSpace pt 4 5 5 20))

    (vla-ZoomExtents acadObj)
    (setq vDirection (vlax-safearray->list (vlax-variant-value (vla-get-Direction oT))))
    (alert (strcat "現在の表の方向は "
	           "\n" (rtos (nth 0 vDirection) 2) "," (rtos (nth 1 vDirection) 2) "," (rtos (nth 2 vDirection) 2)))

    (setq vNewDirection (vlax-3d-point 0 1 0))
    (vla-put-Direction oT vNewDirection)
    
    (setq vRetDirection (vlax-safearray->list (vlax-variant-value (vla-get-Direction oT))))
    (alert (strcat "新しい表の方向は "
	           "\n" (rtos (nth 0 vRetDirection) 2) "," (rtos (nth 1 vRetDirection) 2) "," (rtos (nth 2 vRetDirection) 2)))
)


関連事項