AN APPLICATION OF VRML TO CALS

VRML とJavaによる
3次元動作シミュレーションの実現
1998.11.13
Takashi KOSHIDA
Department of Information Technology
Matsue National Collage of Technology
1
1.はじめに
• CALSの枠組みの中で、
– VRML(Virtual Reality Modeling Language)を3次
元CAD/CAM 設計・検証に適用できないか?
– インターネット上で3次元グラフィクスを実現する
技術。
– インターネットを利用したデータの相互活用(イ
ントラネット、エクストラネット)
利点
• 動きが扱える。 → 動作シミュレーションの実現
2
2. VRMLのビヘイビァ機能
• 動作の実現
– VRMLとJavaを組み合わせる。
– データは VRMLで作成、データの変化
をJavaでプログラム化する。
– データ変化の基になる理論(数式)
に基づいて、ユーザがプログラム化
できる。
– 拡張性、自由度が高い。
3
2. VRMLのビヘイビァ機能 (Cont.)
• その概要
VRMLデータ
マウス・ク
リック等
イベント
API
Javaスクリプト
イベント・ハンドラ
(Javaメソッド)
処 理
VRMLデータ
の変更
4
API
2. VRMLのビヘイビァ機能( Cont.)
• 具体例
– クランク・ピストン機構
スレンダ
クランク
ピストン
5
2. VRML のビヘイビァ機能(Cont.)
• クランク・ピストン機構(モデル
図)
O
‘
A
l
B
r
θ
O
x
C
x=r(λcosθ+(1-λ2sin2θ)1/2)/λ (1)
6
3. 動作シミュレーション
• 理論解析
X = r (λcosθ+(1-λ2sin2θ)1/2 ) /λ (1)
プログラムでは、この変位Xを原点O、O’を中心
としたxy平面上での回転として、表現した。
7
3.動作シミュレーション(Cont.)
• VRML ファイルの実装
マウス・ク
リック等
イベント
test.class
(イベント・ハンドラを
含むJavaコード)
VRMLデータ
シーンノード
Scriptノード:
Script{
url[“http:/~
/test.class” ] }
Routeノード:
Route ノード・フィールド
TO ノード・フィールド
8
3. 動作シミュレーション(Cont.)
• VRMLファイルの実装
– 動作の開始は、マウス・クリックで行う。
• TouchSensorノード と TimeSensorノード
を利用する 。
– クランクとスレンダをグループ化。
• 相対座標を利用する。
9
3. 動作シミュレーション(Cont.)
• 動作の表現
– Interpolatorノードを利用。
– まず、クランクの回転運動を定義する。
– 具体的には、Z軸回りの回転運動を表現す
る、OrientationInterpolatorを用いた。
DEF CLANK_INTP OrientationInterpolator{
key [0, 0.25, 0.5, 0.75, 1.0]
# keyValue is set by Script.
}
10
3.動作シミュレーション(Cont.)
• Javaスクリプトのコール
– クランクの回転運動に伴い、スレンダが変位
する。
– その変位をJavaスクリプトで計算し、VRML
ファイルに戻す。
DEF CLANK_SCRIPT Script {
url "RotationMecha12.class"
eventIn SFTime
touched
eventOut MFRotation setClankPosition
eventOut SFTime
setClankstartTime
11
}
3.動作シミュレーション(Cont.)
• 動作の伝達の指定
– ROUTEノードを使う。
– マウス・クリックによる動作の開始からクランク
の回転運動、それに連動したスレンダーの動き
を順番に指定する。
ROUTE CLANK_TOUCH.touchTime
TO CLANK_SCRIPT.touched
ROUTE CLANK_SCRIPT.setClankPosition
TO CLANK_INTP.set_keyValue
………………………..
12
3.動作シミュレーション(Cont.)
• Java スクリプトについて
– VRMLライブラリ
• vrml パッケージを import する。
– processEvent() メソッド
• VRMLからのイベントを受ける。
• 必ず、必要なメソッドである。
• マウス・クリックを検知して、その後のス
レンダの回転角度を計算する。
13
4. まとめ
• メリット
– 3次元データの作成が、プログラミング感覚で行え
る。
• 寸法指定でデータが作成できる。操作をする意識
が余り必要ない。
– 設計に基づいた動作シミュレーションが行える。
• 理論式のプログラム化。
• 設計者が自ら動作確認が可能である。
– 拡張性、柔軟性に富む。
• Javaが利用できる。
14
4. まとめ (Cont.)
• デメリット
– 複雑な形状データ作成が難しい。
• 基本形状データの種類が少ない。
• ライブラリ的に形状データが必要。
• センスの問題(?)
– 座標軸や座標値の表示がない。
• 原点の位置、寸法が見えない。
• 基本単位がm(メートル)である。
15
5. 実験環境
• 実験環境
– OS : Windows 95
– VRMLブラウザ
• Sony Community Place VRML2.0
Browser version 2.0 Preview
Release D2
– Java : JDK 1.1_Final
16
謝辞
助言を頂いた情報計画デザイン研究所の松宮氏
並びにソニー株式会社の桃井氏に感謝致します。
17