線種(LINETYPE)

提供:GizmoLabs - だいたい CAD LISP なサイト
2024年5月6日 (月) 12:03時点におけるGizmon (トーク | 投稿記録)による版 (→‎文字記述子形式)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

DWG ファイルの線種はニーズに合わせて使用または変更できるように製品と一緒に標準的な線種のライブラリが提供されている。 ユーザ独自のカスタム線種を作成することもできる。

各 DWG系CADに付属している標準線種は、2 つの異なるファイルに格納されている。

それらのファイルの名前はインストールした製品によって異なっており以下の通り。

製品 インチ系 ミリ(iso)系
AutoCAD acad.lin acadiso.lin
AutoCAD LT acadlt.lin acadltiso.lin
BricsCAD default.lin iso.lin
IJCAD / GstarCAD gcad.lin gcadiso.lin
IntelliCAD系 icad.lin icadiso.lin


線種定義の概要

  • 線種は、拡張子 .lin の線種定義ファイルで定義されている。
  • LIN ファイルはテキストで記述されているので、テキストエディタを使用して編集することができる。
  • 一つの LIN ファイルに、多種・多様な線種の定義を含めることができる。
  • LIN ファイルを編集することによって、既存の LIN ファイルに新しい線種定義の追加や新しい定義を作成することができる。このため、同じ線種名でも表示が異なるということが発生しうる。簡単な例では、インチとミリの差を吸収した線種の定義がある。
  • 図面ファイル中で使用している線種定義の情報は、図面ファイル内に登録されるため、作成または修正した線種を使用する場合、図面にロードし直ししないと反映されない。


線種定義の例

数値はダッシュとスペースの長さを表し、0 はドットを表している。

*BORDER,Border __ __ . __ __ . __ __ . __ __ . __ __ .
A,.5,-.25,.5,-.25,0,-.25

上記の定義内容を文章にすると、長さ0.5の線 、0.25の空白、長さ0.5の線、0.25の空白、点(0)、0.25の空白。となる。


カンマ前の 0 は省略してあるので、以下のようにも記述できる。(どちらでも良い)

*BORDER,Border __ __ . __ __ . __ __ . __ __ . __ __ .
A,0.5,-0.25,0.5,-0.25,0,-0.25


文字を含んだ線種

  • 線種定義では文字を含んだ定義を作成することができる。文字を埋め込んだ線種は、配管の管種や境界、等高線などを示すのに使用できる。
  • 単純な線種と同様に、ユーザが指定する頂点に従って線が動的に描かれる。線分に埋め込まれた文字は常に完全に表示され、一部が欠けることはない。


文字記述子形式

  • 線種の定義には、次の構文で文字を追加する。(後述)
["text_string",text_style_name,scale,rotation,xoffset,yoffset]

埋め込み文字を含む線種パターン記述子は、単純な線種と同様。

たとえば、HOT_WATER_SUPPLY という線種は次のように定義されている。

*HOT_WATER_SUPPLY,---- HW ---- HW ---- HW ---- HW ---- HW ---- 
A,.5,-.2,["HW",STANDARD,S=.1,U=0.0,X=-0.1,Y=-.05],-.2

上記の線種は、0.5 の線で始まり、0.2 の空白のあとに、いくつかの尺度と配置のパラメータを含む文字 "HW" があり、最後に 0.2 の空白がある。という形で繰り返すパターンを表している。

文字は、尺度 0.1、直立回転 0 度、X オフセット -0.1、Y オフセット -0.05 の文字スタイル STANDARD に割り当てられた文字フォントです。 このパターンが線分の長さだけ繰り返され、作図単位長 0.5 のダッシュで終わる。

空白の合計は 0.2 + 0.2 = 0.4 で、文字の起点は最初のアップストロークの最後から、X 方向のオフセット -.01 単位の位置であることに注意。

同じような線種として次の例を示す。

*HOT_WATER_SUPPLY,---- HW ---- HW ---- HW ---- HW ---- HW ---- 
A,.5,-.1,["HW",STANDARD,S=.1,U=0.0,X=0.0,Y=-.05],-.3

空白の合計は同様に 0.1 + 0.3 = 0.4 だが、文字の起点は X 方向のオフセットはない形になっている。


文字記述子形式

線種の定義には、次の構文で文字を追加する。

["text_string",text_style_name,scale,rotation,xoffset,yoffset]

尺度、回転、X オフセット、Y オフセットの値は、1、-17、0.01 のように、符号付きの十進数として表す必要がある。

  • テキスト文字列 : 線種内に表示する文字。
  • 文字スタイル名 : 使用する文字スタイルの名前。文字スタイルが指定されていない場合、現在定義されている文字スタイルが使用される。
    • 注: 埋め込んだ文字は、図面の文字スタイルに関連付けられる。線種をロードする前に、線種に関連付ける文字スタイルがあらかじめ図面に存在していなければならない。
  • 尺度 : 文字スタイルに使用する、線種尺度との相対尺度。尺度を指定するには、前に S= を付ける必要がある。たとえば、S=.5 は相対尺度が 0.5 であることを表す。文字スタイルの文字高さは、尺度が乗算される。文字スタイルの高さが 0(ゼロ)の場合は、S=値 が高さになる。
  • 回転 : 線種内に表示される文字の回転角度。回転角度の前には、 U=、R=、A= のいずれかを付ける必要がある。
    • U= は、可読性を高める直立の文字を指定。
    • R= は、線に対する相対回転、つまり接線に対する回転を意味する。
    • A= は、原点に対する文字の絶対回転角度を意味し、すべての文字は、線に対する相対位置に関係なく同じ回転角度になる。
    • 値には、次の文字を追加することができる。
      • d は、度を表す(既定値)
      • r は、ラジアンを表す。
      • g は、グラディエントを表す。
    • 回転角度を省略すると、相対回転 0(ゼロ)が使用される。回転は、基準線から公称大文字高さボックスまでの間が中心となる。
      • 注: U(直立)回転フラグを使用していない旧形式の線種を含む図面は、線種ファイルから線種を再ロードすることにより、最新の線種定義に更新することができる。カスタム線種は、線種定義を再ロードする前に、R(回転)フラグを U(直立)フラグに変更することにより、更新することができる。
  • X オフセット : 線種の X 軸に沿っての文字のシフト量を指定する。オフセットを指定するには、前に X= を付ける必要がある。
    • たとえば、X=.1 は、0.1 のオフセットを表す。オフセットを省略した場合や 0 (ゼロ)の場合、文字はオフセットなしで作成される。このフィールドを使用して、文字と直前のペンアップまたはペンダウン ストロークの間の距離をコントロールする。
    • この値は S=値 で定義される尺度係数によって変更されることはないが、線種に合わせて変更される。
  • Y オフセット : 線種の Y 軸に対して 90 度をなす文字のシフト量を指定する。オフセットを指定するには、前に Y= を付ける必要がある。
    • たとえば、Y=.1 は、0.1 のオフセットを表す。オフセットを省略した場合や 0 (ゼロ)の場合、文字はオフセットなしで作成される。このフィールドを使用して、線分に対する文字の垂直な位置合わせをコントロールする。
    • この値は S=値 で定義される尺度係数によって変更されることはないが、線種に合わせて変更される。


シェイプを使った複雑な線種

線の中に菱形とかちょっと凝った形を含んだ線種を作成したい場合は、シェイプファイルを使った線種で対応できる。 シェイプファイルを使った線種定義の線種パターン記述子は、単純な線種と同様。

線種記述のシェイプ オブジェクト記述子の構文は、次のとおりです。

[shape_name,shape_filename] or [shape_name,shape_filename,transform]


「transform」は次の文字の組み合わせを任意に指定する。(それぞれの前にカンマが必要)。 「transform」 は省略してもOK。

  • R=## 相対回転
  • A=## 絶対回転
  • U=## 直立回転
  • S=## 尺度
  • X=## X オフセット
  • Y=## Y オフセット


この構文では、## に符号付き十進数(1、-17、0.01 など)を指定する。

回転は度単位、その他のオプションは作図単位で指定する。先頭の「transform」文字の後には、等号と数値を指定する必要がある。

次の線種定義は、CON1LINE という名前の線種を定義している。 この CON1LINE は線セグメント、スペース、および ep.shx ファイルからの埋め込みシェイプ CON1 で構成される繰り返しパターン。(次の例を正しく動作させるためには、ep.shx ファイルがサポート パス上になければならない点に注意)。

*CON1LINE, --- [CON1] --- [CON1] --- [CON1]
A,1.0,-0.25,[CON1,ep.shx],-1.0

角括弧で囲まれたコード以外は、すべて単純な線種の定義で構成されている。

線種の一部にシェイプを定義するときは、6 フィールド以下で指定する。最初の 2 フィールドは必ず指定する必要があり、その指定順序も決められている。

それ以外の 4 フィールドは省略可能で任意の順序で指定できる。

次に、それらのシェイプ定義フィールドの指定例を 2 つ示す。

[CAP,ep.shx,S=2,R=10,X=0.5]

このコードは、シェイプ ファイル es.shx で定義されているシェイプ CAP を描く。この例では、シェイプは線種の単位尺度の 2 倍の尺度で、接線に対して反時計回りに 10 度回転し、X オフセットを指定しないときのシェイプの作成位置から 0.5 作図単位(描かれる線の終端方向に向かって)前方の位置に配置される。

[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1]

このコードは、シェイプ ファイル pc.shx で定義されているシェイプ DIP8 を描く。この例では、シェイプは X オフセットや Y オフセットを指定しないときのシェイプの作成位置から 0.5 作図単位(描かれる線の終端方向に向かって)前方、かつ 1 作図単位(描かれる線の終端方向に向かって)左側に配置される。シェイプの尺度は線種の単位尺度に等しく、回転は 0(ゼロ)度。

既存図形から線種を生成する方法

記述考えるのメンドイじゃないですか。

メンドイことは楽にしたくなるのがCADer なので、描かれている図形から線種を生成する以下のコマンドがあったりします。

  • エクスプレス・ツールの MKLTYPE コマンド