


 
 
 
 
 
 
 |
点は、単に1つの座標を示す場合もあれば、いろんな形状を持つマークとして扱われる場合もあります。例えば、○、●、+、×、□、◇、*、等、任意の大きさを持つ場合もあれば、固定的に大きさが設定されている場合もあります。
ここでは、座標を示す点を考えます。点は、印刷されません。
点をそのまま「1ドット」で示すCADもありますが、それだと見えませんので、5ドット程度の「×」を描く事にします。「×」は、2本の線分で表します。
格納するデータですが、点を構成するデータとしては、配置点X,Y、となります。勿論、CADによっては、点(マーク)の種類、大きさ、角度、というのもあるでしょう。
TDataEntities = record // データ定義
typ : Integer ; // 要素の種類(1:直線 2:円 3:円弧 4:点 ・・・)
lay : Integer ; // レイヤ番号
col : Integer ; // 色番号
lin : Integer ; // 線種番号
wid : double ; // 線幅
p1,p2,p3,p4,p5 : Double; // 第1〜第5データ[mm][°]
end;
・・・
Dat : array of TDataEntities; // データ
Dat_N : Integer ; // データ量 |
p1,p2が配置点(x,y)、となります。p3,p4,p5は使用しないのでダミーとなります。
データ構造を決めたら、実際の点の描画用の関数を作成し、点の作図ロジックを作成(配置点指定→作図・登録、を行う処理部分)、それに応じて、図形範囲への対応、端点検索の対応、全要素表示への対応、等を行います。
点のクリッピングは、配置点がクリッピング領域内にある場合は作図を行い、クリッピング領域外にある場合は作図を行いません。
その他、微調整を行っています。
@線種パターン定義で「0」(点)を指定している際、未対応だったのを、点(円)を作図するように対応。これは、前回で円の作図に対応したので、そのルーチンを呼び出す事で対応出来るようになったためです。半径1ドットの円を作図するようにしています。
取りあえず、ここまでのサンプルプログラムです。
【サンプルプログラムのソース】
|
|
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
▲PREV
▼NEXT
|