


 
 
 
 
 
 
 |
要素選択を行う際、1要素選択及び枠内範囲選択を複数しておいてから、削除、移動、複写などを行うケースが多いです。複数回行うパターンとしては、
@要素選択を行った後、続けて要素選択を行うか?が問われる
A画面上に、[追加選択]のようなボタンがあり、クリックする
B[SHIFT]又は[CTRL]キーを押しながら要素選択を行う
C常に連続して要素選択を行うようになっている
等があり、要素の選択解除を行えるようになっています。
@は何となくDOS時代を彷彿してしまいます。Aは専用の指定画面が必要になります。キーボードをなるべく触らせたくないためBは見送ります。という訳でここではCのパターンを採用します。
また、1要素選択と枠内範囲選択を別々にするのではなく、範囲領域が小さい状態(ダブルクリックのような状態)には、1要素選択として選択させるようにします。更に、既に選択されている要素を1要素選択させる事で選択を除外させるようにします。
選択した要素の情報を別画面に文字で表示していましたが、それだと分かり難いので、選択した要素を赤く太く表示するようにしてみました。CADによっては、選択色を自由に設定出来るようになっていたり、点滅状態になったり、破線状態が変化しているように見えたり、する場合がありますが、その辺りは自由にプログラミングしてみてください。点滅等は、[System]にある「Timer」コンポーネントを利用して、何秒毎に色をころころと変える、というようにすれば出来ると思われます。但し、時間割込処理になりますのでプログラミングには注意をして下さい。
また、枠内範囲選択を行う際、通常のCADでは、
@どんな要素を選択するのか?を決めてから選択
A要素を選択した後に、どの要素だけを選択したままにするのか?(どの要素を除外するのか?)を絞り込む
という2つの選別方法があり、その選別には、
・ある特定の、要素種別
・ある特定の、色
・ある特定の、線種
・ある特定の、レイヤ(表示しているレイヤの要素)
・ある特定の、属性(補助線、寸法線、ハッチング、等)
等を指定するようになっていますが、この節では行いません。
ちょっと修正
・マウス範囲領域の定数 AREA を UnitGVar.pasで定義するようにしました。
・1要素選択、枠内範囲要素選択の機能をまとめて、ボタンを1つにしました。
・枠内範囲要素検索 EntSelect2() は常に追加モードとなるようにします。 |
今回の追加
・選択解除の機能を追加しました。
・選択要素作図 GL_SELECTDAT() を UnitGraph.pas に追加して、再描画時にこの手続きを呼び出すようにしました。 |
それではここまでのプログラムです。
【サンプルプログラムのソース】
|
|
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
▲PREV
▼NEXT
|