SpaceBall/SpaceMouseデバイス
サポートされているSpaceBallまたはSpaceMouseデバイス
HyperMesh、HyperView、HyperGraph 2D、HyperGraph 3D、MotionViewは、以下の3DconnexionのSpaceBallまたはSpaceMouseデバイスをサポートするようになりました:SpaceNavigator, SpacePilot, SpaceExplorer and SpaceTraveler。
アプリケーションを実行する前に、これらデバイス用のドライバがインストールされていることを確認してください。デバイスが正しく接続され、機能するようになると、アプリケーションは自動的にSpaceBall/SpaceMouseを検出し、使用可能にします。
SpaceMouseデバイスでは自由度6の入力は、製品内で使用する前に特別な設定を行う必要はありません。ただし、3Dconnexionコントロールパネルは、デバイスの感度調整や軸がどのように入力に反応するかの調整に使用することが可能です。

図 1. 3Dconnexionコントロールパネル - SpacePilotボタン設定(Windows)のサンプル
ボタン動作番号 | 機能 |
---|---|
1 | トップビュー |
2(中) | レフトビュー |
3 | ライトビュー |
4 | フロントビュー |
5 | フィットビュー |
6 | アイソビュー |
7-10 | View Memoryボタン |
11-16 | ユーザー定義のTclコールバック |
17-29 | これらのボタンはさまざまなプラットフォーム(Windows、Linuxなど)でサポートされているため、アプリケーション内でカスタマイズすることはできません。 |
カスタムボタンハンドラー
SpaceMouseボタン動作11 - 16は、ユーザー定義のTclコールバックハンドラーをコールするようプログラムされています。これらにより、ユーザーは自身のニーズに合うようSpaceMouseの機能をカスタマイズすることが可能です。
ボタン | 概要 |
---|---|
GetSpaceballButtonMin() | Tclコールバックにプログラム可能なボタン動作の最も小さいIDを戻します。 |
GetSpaceballButtonMax() | Tclコールバックにプログラム可能なボタン動作の最も大きいIDを戻します。 |
RegisterSpaceballCallback (buttonID, procName) |
指定したボタン動作のIDに対し、Tclコールバックを登録します。コールバックのプロシージャは、動作が起こった時点でのボタンの状態である状態パラメータを取ります。 True - ボタンが押されたことを示します。 False - ボタンが放されたことを示します。 |
例
proc ::FlipAnim { state } {
# Only respond to button events, which occurs when state == "True"
if {$state == "False"} {
return;
}
hwi OpenStack;
set t [lindex [split [expr rand()] .] end];
catch {
hwi GetSessionHandle sess$t;
sess$t GetProjectHandle proj$t;
proj$t GetPageHandle page$t [proj$t GetActivePage ];
if {"false" == [page$t IsAnimating] } {
page$t StartAnimation;
} else {
page$t StopAnimation;
}
}
hwi CloseStack;
}
set t [lindex [split [expr rand()] .] end];
hwi GetSessionHandle sess$t
set buttonID [sess$t GetSpaceballButtonMin];
sess$t RegisterSpaceballCallback $buttonID ::FlipAnim;
sess$t ReleaseHandle;