|  
  
  
   
   
   
   
   
   
  | 
| マウス操作は、2次元CADで最も重要なユーザーインターフェイスと言えます。マウス操作性は、そのCADの使い勝手そのものと判断される場合も多く、とても重要です。 多くのCADでは、画面移動や画面拡大・縮小は、キーを押したり画面上のボタンをクリックして、実現している場合が多いですが、一部のソフトでは、そういった事をせずとも、常に、マウス操作によっていつでも画面移動拡大縮小を行えるものもあります。
 例えば、
 マウス右ドラッグ:画面移動
 Shiftキーを押しながら右ドラッグ:画面拡大
 Ctrl キーを押しながら右ドラッグ:画面縮小
 マウス右クリック:ポップアップメニュー
 というソフトがあるとします。
 この場合、マウス右ボタンは既に使われているため、マウスによる座標指定は、マウス左ボタンでの指定となります。
 マウスでの座標指定には、
 ・自由点 グリッド上の点
 ・要素の端点 2要素の交点・接点
 ・要素の中心点
 ・要素上の点
 等がありますが、要素の端点を拾う事を「スナップ」と呼んだりしますが、例えば、
 マウス左クリック → 自由点 グリッド上の点
 マウス右クリック → 端点、交点、等
 というCADは実際結構多いのですが、マウスの右ボタンを画面移動拡大縮小で利用していると、右クリックによるスナップが出来なくなってしまいます。そのため、左クリックだけでスナップもさせるためには、
 ・画面にスナップマーカーを表示させて選択させる
 (画面で明示されないと分からなくなるため)
 ・キーボードとの併用
 のような事になります。
 
 しかし、どうしても、左右クリックを行いたい、となると、例えば「Jw_cad」のように、左右両ボタンドラッグによる画面拡大縮小、のような手法になってしまいます。ホイールを利用する手もあるでしょう。
 
 ですので、マウス操作はどのようにするのか、は、最初にきちっと考えておいた方がいいでしょう。単純に、「○○CADで慣れた操作方法にしたい」って事で、真似をするのも良いかもしれません。しかし、マウスで画面移動拡大縮小をするようにしていたとしても、キーボードでも出来るようにしたり、機能ボタンをクリックして出来るようにしたり、といった対応をしておくと、良いかも知れません。が、余りやりすぎるのもどうかと思われます。
 
 どのような操作方法にするのかは全て、貴方次第です。
 
 
 ドラッグ処理は、OnMouseDownで第1点を記録しておき、OnMouseMoveでラバーバンドを描画させ、OnMouseUpで第2点の指定をさせ、各種処理を行います。第1点と第2点が同じ(実際には、微小距離以内)の場合には、クリック処理とします。
 
 第1例
 マウス左クリック:点の指示
 マウス右クリック:スナップ指示
 マウス右ドラッグ:画面移動
 Shift+右ドラッグ:画面拡大
 Ctrl +右ドラッグ:画面縮小
 【サンプルプログラムのソース】
 ※Shift,Ctrlのチェックはマウスを押した時に行っています。
 
 第2例
 マウス左クリック:点の指示 スナップ指示
 マウス右クリック:画面移動
 マウス右ドラッグ(左→右):画面拡大
 マウス右ドラッグ(右→左):画面縮小
 【サンプルプログラムのソース】
 
 第3例
 マウス左クリック:点の指示
 マウス右クリック:スナップ指示
 マウス左右クリック:画面移動
 マウス左右ドラッグ(左→右):画面拡大
 マウス左右ドラッグ(右→左):画面縮小
 【サンプルプログラムのソース】
 ※左右を押したかのチェックは、マウスを押した時だと左又は右のどちらかが先に感知してしまい、うまく行きません。左右を押す際にはマウスを移動しますので、この時にもボタンを感知させます。マウスボタンを離す際に、結果的に左右ともボタンを押した記録が残っていれば、左右クリック/ドラッグした事になる、という判断を行っています。
 
 
 利用者が混乱してしまうのを避ける為、マウスでの画面移動拡大縮小機能を実現する際には、[2点指示画面移動][2点指示画面拡大][2点指示画面縮小]の機能は削除すべきでしょう。
 
 
 
 |  | CAD装置(1) CAD装置(2)
 メディア
 AutoCADの
 DIESELマクロ
 CSV
 DXF
 PCES
 IGES
 STEP
 数学とCAD
 CAD作ろ!
 ▲PREV
 ▼NEXT
 
 |