複雑な線種に、シェイプ ファイルとして保存されているシェイプを埋め込むことができます。複雑な線種は、飾り罫、境界線、輪郭線などに使用することができます。
単純な線種と同じように、複雑な線種もユーザが指定する頂点に従って動的に描かれます。線に埋め込まれたシェイプや文字オブジェクトは常に完全に表示され、一部が欠けることはありません。
シェイプ オブジェクトを含む線種パターン記述子は、単純な線種と同様です。
線種記述のシェイプ オブジェクト記述子の構文は、次のとおりです。
[shape_name,shape_filename] or [shape_name,shape_filename,transform]
「変換形式」は省略することもできますが、次の組み合わせを任意に指定することもできます(それぞれの前にカンマが必要です)。
R=## 相対回転
A=## 絶対回転
U=## 直立回転
S=## 尺度
X=## X オフセット
Y=## Y オフセット
この構文では、## に符号付き十進数(1、-17、0.01 など)を指定します。また、回転は度単位、その他のオプションは作図単位で指定します。先頭の 「変換形式」文字(もしあれば)の後には、等号と数値を指定する必要があります。
次の線種定義は、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(ゼロ)度です。
線種の説明には、次の構文でシェイプを追加します。
[shape_name,shape_filename,scale,rotate,xoffset,yoffset]
尺度、回転、X オフセット、Y オフセットの値は、1、-17、0.01 のように、符号付きの十進数として表す必要があります。
描かれるシェイプの名前です。このフィールドは必ず指定する必要があります。省略した場合には、線種定義は行われません。 shape_name が、指定されたシェイプ ファイルに存在しない場合、線種はロードされ、使用することはできますが、埋め込みシェイプのない線種となります。
コンパイルされたシェイプ定義(SHX)ファイルの名前です。省略した場合には、線種定義は行われません。 shape_filename が修飾されていない(つまり、パスが指定されていない)場合、プログラムのサポート パスでファイルが検索されます。 shape_filename が完全に修飾されていてもその場所で見つからない場合、パスは削除され、プログラムのサポート パスでファイルが検索されます。ファイルが見つからない場合、線種はロードされ、使用することはできますが、埋め込みシェイプのない線種となります。
シェイプに使用される尺度係数で、これがシェイプの内部定義尺度に掛け合わされます。指定する尺度係数の前には S= を付ける必要があります(たとえば、S=.5 は、0.5 の尺度係数を表します)。シェイプの内部定義尺度が 0 (ゼロ)の場合は 、S= 値 のみが尺度として使用されます。
線種で表示されるシェイプの回転角度です。回転角度の前には、U=、R=、または A= を付ける必要があります。
このフィールドには、線種のシェイプの X 方向のシフト量を指定します。この値には、Xオフセットを指定しないときのシェイプの作成位置から、描かれる線の終端方向に向かって前方にシェイプを移動させる量を(作図単位で)指定します。指定するオフセット値の前には X= を付ける必要があります(たとえば、X=.1 は 0.1 のオフセットを意味します)。オフセットを省略するまたは 0 (ゼロ)に設定すると、シェイプはオフセットなしで作成されます。ダッシュ上の定められた位置にシェイプを配置したいときに、このフィールドを指定してください。この値には、S=値 で定義される尺度係数による尺度処理は行われません。
このフィールドには、線種のシェイプの Y 方向のシフト量を指定します。この値には、Yオフセットを指定しないときのシェイプの作成位置から、描かれる線の終端方向に向かって線の左側にシェイプを移動させる量を(作図単位で)指定します。指定するオフセット値の前には Y= を付ける必要があります(たとえば、Y=.1 は 0.1 のオフセットを意味します)。オフセットを省略するまたは 0 (ゼロ)に設定すると、シェイプはオフセットなしで作成されます。ダッシュ上の定められた位置にシェイプを配置したいときに、このフィールドを指定してください。この値には、S=値 で定義される尺度係数による尺度処理は行われません。