この投稿では、BricsCADのフォント、複雑な線種、および形状についてすべて学習します®.

BricsCADは、フォント、形状、GD&Tシンボル、および複雑な線種に.shxファイルを使用します。あなたはできる ソースを作成します。shp ファイル、この投稿の件名。 BricsCAD、変換するコンパイラがありません。shp コンパイルされた。shx BricsCADが動作するファイル。

BricsCADは、両方のTrueType(。TTF)およびAutoCAD® 形状(。shx)ファイル。

を使用することに加えて。shx フォントを表示するためのファイル、BricsCADは2番目のタイプのを使用します。shx 「形状」と呼ばれる単純なブロックタイプのエンティティのファイルには、 負荷Shape それらをロードおよび配置するためのコマンド。

によって更新された説明 CADコンセプトのJason Bourhill.


この投稿では、次のトピックについて説明します。

線種に影響を与えるコマンドとシステム変数の発見


形状定義の概要

形状とフォントは.shpファイルで定義され、.shxファイルにコンパイルする必要があります。形状定義は、少なくとも2行のテキスト、形状またはフォントにラベルを付けるヘッダー、その後に形状を説明する1行以上のデータ行で構成されます。データセクションの終わりはゼロで示されます。

1行目:ヘッダー

* 130,6、NAME

*(アスタリスク)—形状定義の開始を示します。

130-形状に番号を付ける;フォントは文字のASCII番号を使用します。範囲は1〜255です。

6 —データの合計バイト数を指定します。

NAME —形状に名前を付けます。大文字でなければならず、最大16文字です。

2行目:データ

014、002、01C、001、01C、0

形状データは、ベクトルと命令コードで構成されています。ベクトルコードは、16方向の動きと描画を定義します。

  • —最初の数字(常に0)は、数値が16進数であることを示します
  • — 2番目の文字はベクトルの長さを指定し、範囲は1〜F(15単位)です。 4 — 3番目の文字はベクトルの方向を指定します

命令コード

13複数のバルジ指定の弧。

16進数 10進数 説明
000 0 形状定義の終わり。
基本的な描画と移動
001 1 描画モードを開始します(ペンダウン)。
002 2 描画モードを終了します(ペンアップ)。
スケーリング
003 3 ベクトルの長さを次のバイトで割ります。
004 4 ベクトルの長さに次のバイトを掛けます。
記憶
005 5 現在の場所をスタックにプッシュします。
006 6 スタックから現在の場所をポップします。
サブシェイプを描く
007 7 次のバイトで指定されたサブシェイプ番号を描画します。
高度な描画と移動
008 8 次の2バイトで与えられるx、y変位。
009 9 複数のx、y変位; (0,0)コードで終了します。
00A 10 次の2バイトで定義される八分円弧
00B 11 次の5バイトで定義される分数アーク。
00C 12 X、Y変位とふくらみによって定義される弧。 00D

フォント、複雑な線種、および形状

BricsCADは、フォントの形状、複雑な線種のテキスト、および形状を使用します。

SHXフォント

CADの初期の頃は、フォントは非常に効率的になるようにコーディングされていました。コンピュータはそれほど馬力がなく、テキストは描画表示の最も遅い部分の1つでした。 1980年代の遅いコンピューターで表示するのに時間がかかるベクターフォントの問題を解決するために、Autodesk® SHX形式を発明しました。フォントがシンプルで行数が少ないほど、表示が速くなります。

すべての最も単純なフォント、 Txt.shx、見た目は醜いですが、ほとんどの文字をわずか8行で描くことができました。ただし、SHXベースの形状の欠点は、フォントを正確に表す複雑な曲線を定義するのに適しておらず、適切に塗りつぶすことができないことです。

時間の経過とともにコンピュータが高速になるにつれて、文字を描くために使用される線の数が増えました。最終的には、AppleのTrueTypeフォントテクノロジにより、CAD図面やプロット上でも、本当に滑らかで完全に塗りつぶされたフォントが可能になりました。下のギャラリーは、元の文字Qの発展を示しています Txt.shx より最近の TimesRoman.ttf.

デジタルフォントタイムラインタイム新しいローマ字
1980年代から今日までの手紙Qの発展

これらは、BricsCADに含まれているSHXファイルのファイル名です。

SHXフォントファイル 意味
複雑な.shx セリフフォント
ハングル.shx 韓国語フォント
isocp .shx ISO標準フォント(ヨーロッパ)
イタリック.shx 単一ストロークの斜体フォント
italicc .shx 二重線の斜体フォント
italict .shx 三重の斜体フォント
日本語.shx 日本語フォント
monotxt .shx 等幅フォント(すべての文字が同じ幅を占める)
romanc .shx 三筆セリフフォント
ロマンド.shx ダブルストロークセリフフォント
ローマ人.shx シングルストロークセリフフォント
ロマント.shx トリプルストロークセリフフォント(RomanCと同じ)
シンプレックス.shx 非セリフフォント
trad_chin .shx 中国語フォント
txt .shx 最小限の非セリフフォント
BricsCADのフォントについて

古い図面との互換性を保つために、BricsCADは元のの使用をサポートしています。shx フォントだけでなく、今日の。TTF TrueTypeフォント。 TTFファイルは、WindowsおよびMacOSオペレーティングシステム、および一部のLinuxシステムにデフォルトで含まれています。 BricsCADは、PFAおよびPFBファイルとして提供されるフォントなどのPostScriptフォントをサポートしていません。

フォントファイルを図面にロードするには、 スタイル コマンド(別名:図面エクスプローラー)を使用して、 テキスト, マルチテキスト、およびその他のテキスト関連コマンド。 BricsCADは、各オペレーティングシステムのデフォルトのフォントフォルダーからTrueTypeフォントにアクセスします。

ウィンドウズ: C:\ Windows \ FontsLinux:/ usr / share / fonts / truetype

Linux: / usr / share / fonts / truetype

マックOS: / Users / Library / FontCollections

図面でフォントが正しく表示されない場合、問題はBricsCADがソースフォントファイルの場所を見つけられないことにあります。ここには2つの解決策があります。

  • つかいます 設定|ファイル|サポートファイルの検索パス パスを追加する
  • 不足しているフォントファイルを既存のパスに追加する
ヒント 図面で使用されているすべてのフォントのリストを取得するには、eTransmitコマンドを実行します。

複雑な線種でのSHXの使用

複雑な線種は、テキスト部分に形状を使用します。テキストの位置とサイズは、 default.liniso.lin 線種ファイル。文字自体は arial.ttf デフォルトではフォント。使用されるフォントは、標準のテキストスタイルによって決まります。スタイルを変更すると、線種フォントが変更されます。

複合線タイプBricsCAD
テキストと通常の線種を組み合わせる方法を示す複雑な線種

それらはロードされ、 線種 コマンド。詳細については、 線種に投稿する

SHX IN SHAPES

初期の形のブロック(シンボル)です。フォントと同様に、1980年代の遅いコンピューターでは非常に速く表示されました。残念ながら、それらのコーディングは非常に困難でした。今日では、ブロックを使用する方がはるかに簡単になり、形状はシンボルに使用されなくなりました。現在、形状は[許容差]コマンドでのみ使用されます。

シェイプは、フォントとほぼ同じSHXファイルの形式を使用します。形状は、最初に図面にロードする必要があります 負荷 コマンドを実行してから、 Shape コマンド。

GD&TのSHX

GD&T(幾何寸法と公差)記号は、部品を正確に加工するために使用されます。

公差記号

シンボルは 寛容 コマンド、およびからの形状に基づいています gdt.shx ファイル。

AUTOCADとの形状の互換性®

フォント、複雑な線種、形状、許容値の場合、BricsCADは、 .shx そのAutoCADのファイル® 使える。

両方のCADパッケージは、 .fmp ファイル(「フォントマップ」の略)を使用して、類似した外観に置き換えます。shx お互いの図面にあるフォント。執筆時点では、BricsCADは以下を指定しています default.fmp しかしそれを実装していません。

シェイプファイルについて

シェープファイルの形式は難解で、1980年代の動作が遅いパーソナルコンピュータ用の非常に効率的な形式のシンボルとして記述されています。シェイプはすぐにブロックに置き換えられましたが、線種などで使用されているため、シーンに残ります。

カスタム形状定義をコーディングするには、三角法の知識が必要です。 Jason Bourhillは、 MkShape(シェイプ作成)ユーティリティ Martin Drese提供.

シェイプに使用されるファイルには、次の2種類があります。shp と。shx。それらの違いは次のとおりです。

  • .shp 形です ソース 図形やフォントを作成または編集するときは、を使用します。shp ファイル。典型的なの一部。shp ファイルは次のようになります。

* 130,6、TRACK1
014,002,01C、001,01C、0

  • .shx 編集済み シェイプファイル。これらは、フォント、許容値などで使用するためにBricsCADにロードされるファイルです。
ヒント あなたはAutoCADを使うことができます® または、この投稿の情報を使用して作成したシェイプファイルをコンパイルするためのBricsysのコンパイルユーティリティ。コンパイルユーティリティは、トルステンモーゼスによる無料のBCadToolsコレクションの一部です。逆コンパイラプログラム。オートデスク® AutoCADでDumpShx.Exeユーティリティを提供します®のExpressフォルダ、またはオンラインで逆コンパイラを検索します。

形状ファイル形式

オートデスク® シェイプファイルの2つのフォーマットを定義しました。1つはシェイプ(単純なブロック)用、もう1つはフォント用です。 2つのタイプの違いはわずかです。ファイルのフォントバージョンにはコード0が含まれており、CADシステムにファイルをフォント定義として扱うよう警告します。 0がない場合、ファイルは形状定義として扱われます。

BricsCADは、Loadコマンドを使用して形状として、およびStyleコマンドを使用してフォントとして、両方の形式の形状ファイルをロードできます。残念ながら、この2つを簡単に区別することはできません。 1つの方法は、ファイル名またはフォルダー名で推測することです。たとえば、italic.shxは明らかにフォントファイルですが、ltypeshap.shxはおそらくシェイプファイルです。他のファイル名はあいまいになる可能性があります。symusic.shxはシェイプファイルのように見えますが、実際にはフォントファイル(音楽記号)です。 BricsCADは、Loadコマンドで間違った種類のシェイプファイルをロードしても警告しません。対照的に、Styleコマンドはフォント関連のSHXファイルのみをリストします。

次に、シェープファイル形式に関するいくつかの側面を示します。

  • シェイプファイルは通常、1つまたは複数のシェイプを定義し、合計で最大258個です。
  • フォントファイルは通常、AZ、az、0-9、句読点など、1つのフォントのすべての文字を定義します。
  • Unicodeフォントファイルには、最大32,768の定義を含めることができます。

他の多くのカスタマイズファイルと同様に、形状定義は2つ以上の線で構成されます。最初の行はヘッダーであり、形状にラベルを付けます。2行目(およびそれ以降)の行は、コードによって形状を定義します。各定義の最終コードは0で、ターミネーターと呼ばれます。

形状定義の一般的な形式は、ヘッダー行とそれに続く1つ以上の定義行で構成されます。

* shapeNumber、totalBytes、shapeName
byte1、byte2、byte3、…、0

各行の長さは最大128文字です。長い行のシェイプファイルはコンパイルされません。各定義は、合計2,000バイトに制限されています。空白行を使用して形状定義を区切り、セミコロン(;)を使用してファイルにコメントを含めることができます。

ヘッダーフィールド

次に、図形のヘッダーの説明のフィールドについて説明します。

定義開始

* 130,6、TRACK1

アスタリスクはAutoCADを示します® 次の形状定義が始まっていること。

shapeNumber * 130,6、TRACK1

各形状には、それを識別するための一意の番号が必要です。フォントの場合、数字は同等のASCIIコードです(文字Aの65など)。

ヒント shapeNumbers 256、257、および258は、度、プラスまたはマイナス、および直径の記号用に予約されています。

totalBytes

*130,6、トラック1

形状を定義した後、ターミネーター0を含め、形状を表すバイト数を合計する必要があります。私には意味がありません。形状定義ごとに2,000バイトの制限があります。

Unicodeシェイプ番号は、それぞれ2バイトを使用します。

shapeName

*130,6,トラック1

シェイプ名は大文字と小文字が混在できます。名前の最大長は16文字です。余分な文字は切り捨てられます。

定義ライン

ヘッダー行の後には、形状またはフォントを定義する1つ以上の行が続きます。これはシェープファイルの要点であり、シェイプファイルが使用されなくなった理由がわかります。

バイト

014,002,01C、001,01C、0

形状は「バイト」で定義されます。これは、各コードのサイズが1バイト(コンピュータ測定)であるため、バイトと呼ばれます。バイトは、ベクトルの長さと方向、または命令コードを定義します。 10進数(基数10)または16進数(基数16)の形式にすることができます。定義行は最大128文字(コンマを含む)で、全体で最大2,000バイト(コンマを含まない)です。

最後の定義行は0で終わります。

ヒント バイトの最初の文字が0の場合、それに続く2文字は00C(10進数では12)などの16進数です。

ベクトルコード

ベクトルコードは、図形の描画方法を記述します。動き(ペンアップ)と描画(ペンダウン)を定義します。図に示すように、ベクトルコードは16方向、22.5度の増分に制限されています。

シェイプファイルのベクトル
方向と距離を定義するベクトル

長さが放射状ではないことに注意してください。 2やEなどの対角ベクトルは、4や0などの直交ベクトルよりも1.414倍長くなります(1.414は2の平方根であることを思い出してください)。

ベクトルコードは常に02Cのような16進表記です。

10進数 16進数
0 … 9 0 … 9
10 A
11 B
12 C
13 D
14 E
15 F

命令コード

形状は、方向と長さを説明するだけでなく、コードを使用して指示を提供します。コード番号は10進数にすることができます(12月)または16進数(ヘックス)。 16進コードは常に3桁で、最初の桁は0(ゼロ)です。一部のコードは、以下の追加コードに依存していることに注意してください。また、形状は線、円弧、スペースに限定されていることに注意してください。

16進数 12月 説明
000 0
基本的な描画と移動
001 1
2
スケーリング
003 3
004 4
記憶
005 5
6
サブシェイプを描く
007 7
高度な描画と移動
008 8
009 9
00A 10
00B 11
00C 12
00D 13
フォントのみ
00E 14

A スタック FILOと呼ばれる特定のタイプのメモリで、「先入れ先出し」の略です。スタックメモリに2つの数値が格納されている場合、最後に格納された数値が最初に出力されます。エレベーターについて考えてみてください。通常、最初の人が最後の人です。

シェイプの終わり– 0/000

コード0は、すべての形状定義の終わりを示す必要があります。最終行の最後に表示されます。

00C、(2,0、-127)、0

16進表記では、0は000と表示されます。

描画モード– 1/001

コード1が描画モードを開始します(「ペン」が押されています)。デフォルトでは、すべてのシェイプ定義は描画モードがオンになっている状態で始まります。

2/002:移動モード–

コード2は移動モードを開始します(「ペン」が上にある)。以下のサンプルでは、ペンは新しい場所に移動する前に持ち上げられます。

2,8,(-36,-63),1,0

縮尺– 3/003

コード3は、各ベクトルの相対サイズを指定します。各形状は、4などの直交ベクトルの1つの高さから始まります。形状を小さくするには、コード3に続けて、スケール係数1〜255を指定するバイトを使用します。たとえば、次のコードは、形状の半分を描画します。大きさ:

ヒント 形状定義内では、スケール係数は累積的です。同じスケールコードを2回使用すると、効果が倍増します。たとえば、3,2の後に別の3,2を続けると、形状の一部が4分の1になります。形状定義の最後に、他の形状が影響を受けないようにスケールを1に戻します。

拡大スケール– 4/004

形状を大きくするには、コード4に続けて、スケールファクタ1〜255を指定するバイトを使用します。たとえば、次のコードは、形状を2倍の大きさで描画します。

4,2

形状定義内で3および4のコードを使用して、形状の一部を大きくしたり小さくしたりできることに注意してください。

保存(プッシュ)– 5/005

コード5は(押す)スタックメモリへの現在のx、y座標。次に、コード6を使用して呼び戻します(ポップ)後で使用するための座標。スタックメモリは4つの座標に制限されています。形状定義の終わりまでに、保存したすべての座標を呼び出す必要があります。つまり、次に示すように、コード5と6の数が同じでなければなりません。

2,14,8、(-8、-25)、14,5,8、(6,24)、1,01A、016,012,01E、02C、02B、01A、2、
8、(8,5)、1,01A、016,012,01E、02C、02B、01A、2,8、(4、-19)、14,6、14,8、(8、-9)、0

リコール(ポップ)– 2006年6月

コード6リコール(ポップス)スタックメモリから保存された最新の座標。

サブシェイプ– 7/007

コード7はサブシェイプを呼び出します。これは、単に別のシェイプです。図形は他の図形内で使用できるため、図形のコーディングの面倒な作業を減らすことができます。コード7の後には、1〜255の別の図形番号への参照が続きます。shp ファイルは番号で識別されます。)例:

7,2はサブシェイプとしてシェイプ2を呼び出します。

X、Y距離– 8/008

コード8および9は、ベクトルコード(16方向のみ)が描画に課す制限を克服します。

コード8は、-128から127の範囲の2バイトを使用して距離を定義します。

8、xDistance、yDistance

以下の例は、頻繁に使用されるコード8を示しています。

2,14,3,2,14,8,(-21,-50),14,4,2,14,5,8,(11,25),1,8,(-7,-32),2,
8、(13,32)、1,8、(-7、-32)、2,8、(-6,19)、1,0E0,2,8、(-15、-6)、1,0E0 、2、
8,(4,-6),14,6,14,3,2,14,8,(21,-32),14,4,2,0

上記のコードの最初の行では、8、(-21、-50)は左に21単位(-x)、下に50単位(-y)を描画します。

X、Y距離– 9/009

コード8は単一の座標を指定するのに対し、コード9は(0,0)で終了する一連の座標を指定します。例えば:

9,(1,2),(-3,4),(5,-6),(0,0)

Octant Arc – 10 / 00A

コード10は、 八分儀 次の図に示すように、弧は、角度が45度の倍数に制限されている弧です。弧は常に位置0から始まり、次に反時計回りに移動します。

弧は複雑なlintypeを形作る
オクタントを通る弧の長さの定義

弧は次のバイトで指定されます。

10、radius、-0 startingOctant octantSpan

  • 10 八分円弧を指定します。
  • 半径 1から255までの値です。
  • 負の符号は、円弧の方向を時計回りに変更します。反時計回りの方向は省略します。
  • 0 以下の文字が16進数であることを指定します。
  • startingOctant 弧が始まる場所を指定します。値の範囲は0〜7です。
  • octantSpan 弧の移動の強さを指定します。これも0〜7の数値です。
ヒント octantSpanが0の場合、図形は円を描画します。通常、オクタントアークコードは括弧を使用して、次のように括弧を明確にします:10、(25、-040)
フラクショナルアーク– 11 / 00B

コード11は、八分円の角度で終了および開始しない円弧を描画するため、より便利です。ただし、その仕様には5バイトが必要です。

11、startOffset、endOffset、highRadius、radius、-0 startingOctant octantSpan

  • 11 分数弧を定義します。
  • startOffset 弧が始まる八分角からの距離を度単位で指定します。
  • endOffset 弧が終了するオクタント角からの距離を指定します。
  • highRadius 255単位より大きい半径を指定します。弧の半径が255単位以下の場合、このパラメータは0です。 highRadius を256倍してから、 半径 弧の半径を見つける値。
  • 半径 1から255までの値です。
  • 負の符号は、円弧の方向を時計回りに変更します。反時計回りの方向は省略します。
  • 0 以下の文字が16進数であることを指定します。
  • startingOctant 弧が始まる場所を指定します。値の範囲は0〜7です。
  • octantSpan 弧の移動距離を指定します。ここでも0〜7の数値です。
ヒント これがオートデスクの方法です® startOffsetとendOffsetの値を決定することを提案します。

  1. オフセットを決定するには、開始オクタントの境界(常に45度の倍数)と弧の始点の間の角度の差を計算します。
  2. 差に256を掛けます。
  3. 結果を45で割ります。

バルジアーク– 12 / 00C

コード12は、変位ベクトルにバルジ係数を適用して、単一セグメントの弧を描画します。 0C、xDisplacement、yDisplacement、バルジ

  • xDisplacementとyDisplacementは、弧の開始x、y座標を指定します。
  • バルジは、弧の曲率を指定します。 3つの値はすべて-127〜127の範囲です。

これはオートデスクの方法です® は、ふくらみが計算されると言います。「変位で指定された線分の長さがDで、そのセグメントの中点からの垂直距離が高さHである場合、ふくらみの大きさは((2 * H / D)* 127)です。 。」

バルジ形状コンプレックス
ふくらみのサイズを計算する

半円(180度)のバルジ値は127(反時計回りに描画)または-127(時計回りに描画)ですが、線の値は0です。180度を超える弧の場合は、2つの弧を続けて使用します。

ポリアーク– 13 / 00D

コード13は ポリアーク、2つ以上の部分を持つ弧。 (0,0)で終了します。

13,(0,2,127),(0,2,-127),(0,0)

ヒント 2つの円弧の間に直線を描くには、円弧と線を切り替えるよりも、バルジのない円弧を使用する方が効率的です。

フラグ垂直テキストフラグ– 14 / 00E

コード14はフォント専用であり、水平および垂直に配置されるように設計されたフォントのみです。方向が垂直の場合、次のコードが処理されます。水平の場合、コードはスキップされます。

フォントコードの複雑な線種


BricsCAD体験版を
ダウンロード

今日から複雑な線種の作成を始めましょう

多言語、広範囲で使える永久ライセンスとサブスクリプションです。


  1. 前書き
  2. BricsCADユーザーのための55のヒント
  3. 設定
  4. 環境を変える
  5. カスタムユーザーインターフェース
  6. [カスタマイズ]ダイアログボックスの概要
  7. メニューバーとコンテキストメニューをカスタマイズする
  8. ツールバーとボタンアイコン
  9. マクロとディーゼルコードの記述
  10. リボンのタブとパネル
  11. キーストロークのショートカット、エイリアス、シェルコマンド
  12. マウス、ダブルクリック、タブレットボタン
  13. クワッドについて知っておくべきすべてのこと
  14. ロールオーバープロパティ
  15. ワークスペースとユーザーインターフェイス
  16. 設計ツールと構造パネル
  17. シンプルで複雑な線種の作成
  18. ハッチングのパターン化
  19. 形状とフォントのデコード
  20. フィールドテキストでのコーディング
  21. スクリプトを書く
  22. LISPによるプログラミング(はじめに)
  23. LISP関数