SHX

提供:GizmoLabs - だいたい CAD LISP なサイト
2024年2月17日 (土) 17:02時点におけるGizmon (トーク | 投稿記録)による版 (→‎中国語向け)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

SHXフォントは、AutoCAD用に作られたストロークフォントです。

DWGをネイティブフォーマットとしているCADでは利用可能な環境が提供されています。


SHXフォントのサンプル


フォントの置換

図面ファイルのやり取りで SHXフォントが受け渡し先の環境になかった場合、フォントの置換設定により代替えで設定されているフォントを使って表示され、これにより文字化けをある程度防ぐようになっている。

SHXフォントの場合、TrueTypeフォントのように多言語にまたがった文字を含められる仕様になっていなかったので、結果的に日本語の文字を含んだデータのやり取りでよく文字化けするという事になる。(但し、最近の AutoCAD や一部の互換CADでは、ユニコードでSHXに定義されてない文字は TrueTypeフォントに置換表示するようになってる。)

この辺りは、SHXファイル対応の多くの互換 CAD ではフォントファイルの設置と置換設定(フォントマップファイルの記述)を適切に行えば化けることはない程度のレベルにはなってる。


アジア系のビッグフォント SHX ファイル

ビッグフォントでない通常の SHX ファイルは、ASCII 文字 が対象になっているため、日本語を含む多数の非 ASCII 文字が含まれている文字はそのままでは扱えず、ビッグフォント というファイルに特殊なタイプのシェイプを定義して利用するようになっている。(ユニコードタイプの SHX フォントは、ビックフォント不要で日本語文字も表示可能ではあるが、日本語を含んだユニコードタイプの SHX フォントは標準搭載されてないので自作する必要がある。)


文字スタイルでは、通常のSHXフォントファイル+ビッグフォントファイルの組み合わせで使用する。 SHXフォントファイルとビッグフォントで重複して定義されている文字があった場合、ビッグフォントの文字が優先される。(AutoCAD 2004以前から2005以降のバージョンにアップしたら半角スペースの文字幅が変わったとかいう場合は、ビッグフォントが更新されてる事に起因したりする。)


  • アジア言語のビッグフォント(AutoCAD・BricsCAD・IJCAD・IntelliCAD)

互換性の観点から各 CAD で AutoCAD と合わせたSHXフォントが搭載されていたりするが、著作権絡みは考慮されているので同名でも違うフォントである。

そのため、プロポーションは合わせているが、字形が微妙に違ったりする。


フォントファイル名 ・・・ 説明

日本語向け

  • bigfont.shx ・・・ 日本語フォント、初期のJIS第1水準相当(+α)
  • extfont.shx ・・・ 日本語拡張フォント、JIS 第1水準相当
  • extfont2.shx ・・・ 日本語拡張フォント、JIS 第2水準相当 + 機種依存文字 * 日本における事実上のデファクト。各CAD会社が合わせて作ってきてる。
  • @extfont2.shx ・・・ 日本語の縦書きフォント(いくつかの文字が、縦書きで正しく表示されるように回転されている)
  • extslim2.shx ・・・ 2/3 幅のフォント
  • exthalf2.shx ・・・ 1/2 幅のフォント
  • visiojp.shx ・・・ extfont.shx 相当の日本語拡張フォント、JIS第1水準相当。(IntelliCAD)
  • japanese.shx ・・・ BricsCAD の日本語フォント、JIS 第2水準相当。機種依存文字は入ってない。(古めの BricsCAD)

以下は、IJCAD 2014から

  • extfont2IJ.shx ・・・ extfont2.shx 相当のフォント(縦書きでは使えない)
  • @extfont2IJ.shx ・・・ AutoCAD の @extfont2.shx 相当のフォント。(縦書き用に回転されている文字は、こっちのほうが多いが、横書きでは使えない。)
  • extslim2IJ.shx ・・・ AutoCAD の extslim2.shx 相当のフォント
  • exthalf2IJ.shx ・・・ AutoCAD の exthalf2.shx 相当のフォント


サポートしている文字の数は、 bigfont.shx < extfont.shx < extfont2.shx となっているので、特別な理由がない限り extfont2.shx を使うのが吉。

中国語向け

  • gbcbig.shx ・・・ 簡体字
  • chineset.shx ・・・ 繁体字
  • trad_chin.shx ・・・ 繁体字(chineset.shx相当) (BricsCAD)
  • visiotc.shx ・・・ 繁体字(chineset.shx相当) (IntelliCAD)

韓国語向け

  • hangle.shx ・・・ 韓国語(BricsCAD)
  • whgdtxt.shx ・・・ 韓国語
  • whgtxt.shx ・・・ 韓国語
  • whtgtxt.shx ・・・ 韓国語
  • whtmtxt.shx ・・・ 韓国語
  • visiohg.shx ・・・ 韓国語(whgtxt.shx相当)(intelliCAD)

ユニコード対応の SHXフォント UNIFONT(ユニフォント)

SHXフォントには旧来の ASCII コードのフォントファイルとは別に、Unicode シェイプで定義する形式がある。 定義は、ASCIIコードのシェイプファイルとほぼ同じでフォント ヘッダが異なっている点が違う。定義ファイルに UNIFONT と記述するのでユニフォントと呼んだりする。

ユニフォントな SHXファイルは。テキスト文字列が Unicode に変換されて作成されるので、単一のユニフォントで、あらゆる言語とプラットフォームをカバーできる。

(ただし、包括的に文字を含んでいるフォントは今のところ無い。誰か作って!)


特殊用途用

syxxx.shx になってる。 ASCII の範囲で記号が作られている。

  • syastro.shx ・・・ 星座記号
  • symap.shx ・・・ 地図記号
  • symath.shx ・・・ 数学記号
  • symeteo.shx ・・・ 星図記号
  • symusic.shx ・・・ 音符記号


言語が混在する場合の利用

CAD がシステムの言語を認識して言語を切り替えるので、ユーザは言語の違いを意識せずに使うことになるが、SHXフォントだと一つのフォントではアジア圏の文字は完全にサポートできないので、複数のビックフォントと併用することになる。そのため、日本語と中国語、韓国語など複数の言語が混在する図面などでは、素直に Truetype フォントの文字スタイルで使った方がいい。