Vla-checkinterference

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-checkinterference vla-object1 vla-object2 CreateInterferenceSolid SolidsInterfere)


機能
2 つのソリッド間の干渉をチェックし、指定があれば干渉からソリッドを作成する。


引数
  • vla-object1 … メソッドが適用されるソリッドの VLA オブジェクト
  • vla-object2 … メソッドが適用されるソリッドの VLA オブジェクト
  • CreateInterferenceSolid … ブール型 :vlax-True: 干渉ソリッドを作成する。、:vlax-False: 干渉ソリッドを作成しない。
  • SolidsInterfere … ソリッドが干渉するかしないか。:vlax-true :干渉する、:vlax-False: 干渉しない。
戻り値
CreateInterferenceSolid が :vlax-True の時、作成されたソリッド図形の VLAオブジェクト


サンプル
(vl-load-com)
(defun c:Example_CheckInterference()
    ;; ボックス と 円柱をモデルに作成する
    ;; 次に、2つの固体との間の干渉を検出して干渉から新しいソリッドを作成。

    (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))   
    
    ;; 見やすくするために、ボックスの色を変える。
    (setq color (vlax-create-object "AutoCAD.AcCmColor.20"))

    (setq boxCenter (vlax-3d-point 5 5 0)
          boxLength 10
	         boxWidth 7
	         boxHeight 10)

    ;; box (3DSolid) をモデル空間に作成
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq boxObj (vla-AddBox modelSpace boxCenter boxLength boxWidth boxHeight))

    (vla-SetRGB color 80 100 244)
    (vla-put-TrueColor boxObj color)
    
    ;; Define the cylinder
    (setq cylinderCenter (vlax-3d-point 0 0 0)
          cylinderRadius 5
	         cylinderHeight 20)
    
    ;; Cylinder (3DSolid) をモデル空間に作成
    (setq cylinderObj (vla-AddCylinder modelSpace cylinderCenter cylinderRadius cylinderHeight))
    (vla-SetRGB color 244 150 50)
    (vla-put-TrueColor cylinderObj color)
    
    ;; 作成した2ソリッドの干渉をチェックして干渉から新しいソリッドを作成
    (setq solidObj (vla-CheckInterference boxObj cylinderObj :vlax-true :vlax-true))
    (vla-SetRGB color 200 150 244)
    (vla-put-TrueColor solidObj color)

    ;; ビューポートを更新
    (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 (vlax-get-acad-object))
    
    ;; ボックスと干渉固体をより明確に表示する シリンダーを削除。
    (vlax-release-object color)
)


関連事項