Vla-checkinterference
- 構文
- (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)
)
関連事項