|  
  
  
   
   
   
   
   
   
  | 
| 前節の続きです。 次は線種について考えます。前節「線種と線幅」で述べた通り、線種を表現するのに、各パターン長さを順番に作図していきますが、正の値の時には線分長さ、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;
 |  
 
のようになりますが、ループ回数が決まっていない(分からない)場合には少々使いにくいかもしれません。また、レイヤ設定で行う線種尺度も考慮する必要があります。これは、レイヤによって、1つの線種を、長めの破線と短めの破線、というように使い分ける事が出来る倍率指定です。
| for j:=□ to △ do begin for i:=0 to LinTbl[○].n-1 do begin
 ・・・LinTbl[○].ptn[i]・・・
 end;
 end;
 |  レイヤ設定テーブル(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
 
 |