|
前節の続きです。
次は線種について考えます。前節「線種と線幅」で述べた通り、線種を表現するのに、各パターン長さを順番に作図していきますが、正の値の時には線分長さ、0値の時には点(円又は正方形)、負の値の時には空白部長さ、としていますので、これをパターン数の分、作図し、全パターン作図したら最初から作図、のように繰り返します。
例:1点鎖線 パターン:「----- - 」
「----- - ----- - ----- - ----- -・・・」 |
パターン数:4 P@:5 PA:-1 PB:1 PC:-1 |
P@→PA→PB→PC→P@→PA→PB→PC→P@→・・・ |
長さ5の線を作図→空白長さ1→長さ1の線を作図→空白長さ1→・・・ |
線種パターンは、「TLinestyleTable」の「n」(パターン数)と「ptn」(パターン)で定義していますので、利用する場合には、
for i:=0 to LinTbl[○].n-1 do begin
・・・LinTbl[○].ptn[i]・・・
end; |
のようになりますが、繰り返しとなりますので、例えば、
for j:=□ to △ do begin
for i:=0 to LinTbl[○].n-1 do begin
・・・LinTbl[○].ptn[i]・・・
end;
end; |
のようになりますが、ループ回数が決まっていない(分からない)場合には少々使いにくいかもしれません。また、レイヤ設定で行う線種尺度も考慮する必要があります。これは、レイヤによって、1つの線種を、長めの破線と短めの破線、というように使い分ける事が出来る倍率指定です。
レイヤ設定テーブル(TLayerTable)の線種尺度は、「lsc」で定義していますので、
for j:=a to b do begin
for i:=0 to LinTbl[○].n-1 do begin
・・・LinTbl[○].ptn[i]*LayTbl[◇].lsc・・・
end;
end; |
のようになります。
次に、連続線や、例えば、円弧を複数の短い線分に変換する場合を考えます。単純に、線1本1本として作図される場合、
のようになってしまうと、線と線の接続部が綺麗でなかったり、指定した線種のようには見えなかったりします。やはり、
のように、次の線に作図継続したくなります。各線分が長い場合にはともかく、短い場合だと、線が見えなくなる、或いは、実線で表示される事になると問題になるかもしれません。
これに対応するため、線分を作図するルーチンでは、
・何番目のパターンからスタートするか?
・そのパターンの何mm目から作図開始するか?
を考慮し、線分を作図し終わった後に、
・何番目のパターンまで作図した
・そのパターンの何mm目まで作図した
という情報を残す必要があります。
現在のプログラムでは、円弧の作図も、連続線の作図もありませんが、基本的で且つ重要な部分ですので、プログラムもこれを考慮して作っておく事にします。
取りあえず、ここまでのサンプルプログラムです。
【サンプルプログラムのソース】
|
|
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
▲PREV
▼NEXT
|