AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
CAD作ろ! レイヤ・色・線種の設定(5)
前節の続きです。
次は線種について考えます。前節「線種と線幅」で述べた通り、線種を表現するのに、各パターン長さを順番に作図していきますが、正の値の時には線分長さ、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
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015 By AFsoft All Rights Reserved.