|
CADで線を描くには、いろいろな手法が提供されている場合が多いです。キーボードから座標の数値入力、カーソル指示、マウスによる指示、デジタイザによる指示、等。マウス指示された点から更にX方向へ○○mm、Y方向へ□□mm、離して指示(オフセット入力による指示)等もあります。
マウスによる指示は、手振れや、ドット値からの変換になるため、誤差が入ってしまいます。そこで、目盛線や目盛点(グリッド)を画面に表示させ、その目盛の上に乗せる事によって、きちっとした座標を指示させる事が出来るようになっています。
また、既に作図した線の端点などに正確に接続させるため、マウスをその点に近づけてクリックし、その点の座標を取得して指示させたりします。これを、スナップと呼んでいます。
スナップさせない場合には、一見、繋がっているように見える2線が、拡大表示してみると、実は繋がっていなかった、という事が起きてしまい、線と線が繋がっていないと認識され、例えば、オフセット線が正常に描けない等の症状が起きてしまう可能性があります。
スナップさせる点の種類としては、
線分の端点(開始点、終了点)や中点
円の1/4点・1/8点
円弧の端点(開始点、終了点)や中点
点要素
文字の基点
及び
2要素の交点
線と円・円弧、2円(円弧)の接点
等があります。
また、CADによっては、グリッド点もスナップさせる場合があります。(それとは異なり、グリッド表示時には、自由点指示を強制的にグリッド点にさせるCADも多いです)同様に、用紙枠の隅の点、等もあります。
プログラミングとしては、スナップの種類と順序を決め、要素の端点等は、要素データを読み込み、マウスの近傍にその座標があるかどうかを検索して、あればそれを座標点として採用する、という具合にします。
マウス「近傍」をどれくらいにするか?は、システムとして決めておくのも良いし、何ドットかを設定させても良いです。
また、マウス指示点とスナップ点を全て計算して、最も距離が近いものを採用する(時間は掛かりますが)、という処理も可能でしょう。
マウスでスナップ指示をしてから、要素を検索する、という手法と、予め画面に表示されている座標点を全て計算しておいてからマウスを近づけただけで自動的にスナップ出来るようにする手法、があります。
全ての要素を検索させると、当然、データ量が多くなれば多くなるほど、スナップの時間が掛かってしまいます。それをなるべく速くするために、レイヤ機能を駆使したり、検索させる必要の無い要素は計算させない、等の工夫が必要になってきます。
それでは、今回のプログラムです。マウス右クリックで、既に作図している全ての線分データの開始点・終了点を検索し、一番最初に見付けた座標を採用出来るようにしています。
【サンプルプログラムのソース】
ついでに、マウス左右ドラッグで、
左への移動:縮小表示、右への移動:拡大表示
としていたのを、
左上ドラッグ:縮小表示
左下ドラッグ:作図した図 全体の表示
右上ドラッグ:基準画面表示
右下ドラッグ:拡大表示
にしてみました。縮小表示の倍率はこれまでと逆にしてみました。小さく囲むとゆっくり小さく表示していくようにしています。作図した図・全体の表示は、作図する線分の最小座標・最大座標を記憶しておき、それが全て画面におさまるように表示させます。
|
|
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
▲PREV
▼NEXT
|