Vla-get-productofinertia

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年2月9日 (火) 14:29時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-get-productofinertia ''vla-object'' ) ; 機能 : ソリッドまたはリージョンの慣性乗積を取得する。 ; 引数 :* vla-ob...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-get-productofinertia vla-object )


機能
ソリッドまたはリージョンの慣性乗積を取得する。


引数
  • vla-object … VLAオブジェクト(3DSolid、Region)


戻り値
現在の座標系に基づいて計算された X、Y、Z 座標     


  • MEMO: 慣性乗積は、バリアント型で定義された X、Y、Z 座標で返される。これらは現在の座標系に基づいて計算される。


サンプル
(vl-load-com)
(defun c:Example_ProductOfInertia()
    ;; ボックスを作成して ProductOfInertia を返すサンプル。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; ボックスの定義
    (setq center (vlax-3d-point 5 5 0)
          boxLength 5
	         boxWidth 7
	         boxHeight 10)
    
    ;; ボックス (3DSolid) を作成
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq boxObj (vla-AddBox modelSpace center boxLength boxWidth boxHeight))
    
    ;; 視点を変更
    (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)
    
    ;; ボックスの ProductOfInertia 
    (setq ProductOfInertia (vlax-variant-value (vla-get-ProductOfInertia boxObj)))
    (alert (strcat "ボックスの慣性乗積は "
                   (rtos (vlax-safearray-get-element ProductOfInertia 0) 2) ", "
                   (rtos (vlax-safearray-get-element ProductOfInertia 1) 2) ", "
                   (rtos (vlax-safearray-get-element ProductOfInertia 2) 2)))
)

関連事項