CAD の図面とプロット

CAD の図面やプロッタの出力は、用紙に合わせて描いたベクトルの図形そのもので、Office の文書が持つようなページやスライドの構造は持ちません。BDF はそれぞれの形式が持つ「用紙」の単位——DXF のモデル空間とペーパー空間のレイアウト、Jw_cad と SXF の図面の用紙、CGM のピクチャ、プロットされたページ——を BDF の 1 ページにし、色・線種・線の太さは、プロッタやその形式のビューアが描くとおりに解決します。モデル空間の暗い背景も同じです。

試してみる

ビューアにファイルをドロップするか、サンプルを試してください。モデル空間とレイアウトを持つAutoCAD DXF の図面、Jw_cad の図面、SXF の図面、CGM の図面、HP-GL/2 のプロットなどです。

AutoCAD DXF

converter/dxf は AutoCAD の DXF(テキスト形式とバイナリ形式、R12〜2018)を読みます。DWG は仕様が公開されておらず、読めるライブラリもこのリポジトリのライセンスでは使えないため読みません。

モデル空間は図面に合わせた 1 ページにして、AutoCAD 自身がモデル空間で使う暗い背景に描きます。ペーパー空間の各レイアウトはそれぞれ用紙の大きさの 1 ページにし、ビューポートがその縮尺でモデル空間を映します。画層・色・線種・線の太さは、プロッタが描くとおりに解決します。膨らみと幅の変わるポリライン、厳密なベジェ曲線として描くスプライン、ハッチング(模様・島・グラデーション)、属性付きのブロックとその配列、寸法、引出線とマルチ引出線、1 行と複数行の文字(書式コード、和文の禁則付きの折り返し、分数)をすべて描きます。SHX フォントはゴシック体で、ビッグフォントは和文フォントで代用し、使ったフォントはサブセットの WOFF2 として埋め込みます。古い図面の文字列はそのコードページ(Shift_JIS など)で読みます。

オプション 値 既定
-param views= all、model、layouts all
-param background= dark、light dark

詳細はdesign.md §3.12を参照してください。

Jw_cad

converter/jww は Jw_cad の図面(.jww)を、公開されているデータ形式(Ver.2 の形式から Ver.7 以降の現行のファイルまで)に従って読みます。DOS 版の .jwc と、図形ファイルの .jws・.jwk は読みません。

図面は用紙の大きさの 1 ページにし、用紙の外に図形があればそれを含むまで広げます。既定ではファイルに保存された画面の色を、ファイルの背景色の上に描きます——Jw_cad が画面に表示するのと同じ見え方です(-param colors=print でプリンタ出力色を白地に、colors=mono で白地に黒で描きます)。線幅と線種は印刷のとおりにします。線、円弧と楕円、点、Jw_cad の固定ピッチの文字(全角は文字の幅、半角はその半分の幅、縦字も)、寸法、円ソリッドを含むソリッド、入れ子のブロックを描きます。非表示のレイヤと補助線は、Jw_cad も印刷しないので描きません。

オプション 値 既定
-param colors= screen、print、mono screen

詳細はdesign.md §3.13を参照してください。

SXF

converter/sxf は、電子納品で使う CAD データ交換標準 SXF(Ver.2〜Ver.3.1)の図面を、2 つの符号化の両方で読みます。納品に使う STEP AP202 のファイル(.p21、それを ZIP 圧縮した .p2z)と、CAD 間で図面をやり取りするフィーチャコメントのファイル(.sfc)です。

図面は用紙の大きさの 1 ページにし、用紙の外に図形があればそれを含むまで広げます。図面が指定する背景色の上に描き、指定がなければ SXF のビューアと同じ黒にします(-param background=light で白地に。白の線と文字はそのとき黒に描き直します)。既定義とユーザ定義の色・線種・線幅、線分、折線、円、円弧、楕円、スプライン、クロソイド、点マーカ、9 つの配置基点のどれかに置いた文字(回転、スラント、文字間隔、縦書き)、複合図形(配置、尺度、入れ子、測地座標系)、寸法、引出し線とバルーン、塗りつぶし、ハッチング、背景色で塗る領域をすべて描き、非表示のレイヤは描きません。多くの SXF 対応 CAD が読み書きに使う SCADEC ライブラリが書いたファイルは、SCADEC が読み戻すとおりに読みます——SCADEC は仕様書の記述と食い違う点がいくつかあります。

オプション 値 既定
-param background= file、light file

詳細はdesign.md §3.14を参照してください。

CGM

converter/cgm は、CAD のプロッタ出力や技術図の交換(S1000D、ATA)、WebCGM で使われる Computer Graphics Metafile(ISO/IEC 8632、バージョン 1〜4)を読みます。バイナリ符号化とクリアテキスト符号化の両方を読み、gzip で圧縮したファイル(.cgz)も読みます。

メタファイル中のピクチャごとに 1 ページにし、大きさはそのピクチャの縮尺どおりにします。縮尺のない「abstract」のピクチャは A4 に合わせます。線種・線幅・端点を持つ線、マーカー、塗り(中空、塗りつぶし、ハッチング、パターン、グラデーション)とその縁、穴のある閉じた図形、円、楕円、円弧・楕円弧・双曲線・放物線の弧、ベジェ曲線と B スプライン、文字(向きのベクトルによる回転と斜体、縦書きを含む 4 つの方向のどれか、揃え、決まった大きさの箱に収めた文字、直前の文字列に続けて書いた文字)、セル配列とタイル(JPEG、PNG、CCITT の FAX 符号)、セグメントとその複写をすべて描き、visibility が off の WebCGM アプリケーション構造は描きません。文字列は宣言された文字集合(JIS X 0208 などの ISO 2022 の文字集合、UTF-8、UTF-16)で読み、日本の CAD プログラムが書く、宣言のない Shift_JIS の文字列も自動で見分けます。

converter/cgm に -param オプションはありません。

詳細はdesign.md §3.20を参照してください。

HP-GL/2

converter/hpgl は HP のプロッタとプリンタのプロットファイルを読みます。HP-GL/2 と、それより古いペンプロッタやカッティングプロッタの HP-GL を、そのままのファイルでも、大判プロッタ(DesignJet のドライバでファイルに印刷したもの)や PCL プリンタ向けのファイルが持つ PJL のジョブと PCL・HP RTL のエスケープシーケンスに包まれていても読み、HP RTL が持つラスター画像も描きます。

描かれたページごとに 1 ページにし、大きさはプロットサイズ(PS)を、外に描かれた図形も入るように広げたものです。向きはファイル自身の回転(RO)で回した座標系で見せます——ドライバがプロットを用紙に合わせて回すのと同じです。PCL のジョブならプリンタ自身の用紙とピクチャーフレームに置きます。ペンはファイルのパレットの色と太さで描き(-param colors=mono で黒に)、固定・適応・ユーザ定義の線種、線端と角の形、円弧と円(既定より粗い弦角が指定されていればプロッタと同じ粗い弦で)、ベジェ曲線、符号化された折れ線、単色・ハッチング・クロスハッチング・網掛け・ラスターパターンで塗った多角形・矩形・扇形を描きます。ラベルはテキストにします。プロッタのスティックフォントは固定ピッチのフォントで大文字の高さとピッチのとおりに描き、指定されたフォントは同じ系統のフォントで描き、いずれも回転・斜体・鏡像と、4 つの文字の進む向き、HP-GL/2 のラベル原点に従い、Roman-8 などの内蔵の文字セットと日本語(Shift_JIS、16 ビットの JIS)を読みます。ラスター画像(圧縮方式 0〜3、5、9、インデックスカラーとダイレクトカラー)は読み込みながら BDF の解像度の上限まで縮小します。

オプション 値 既定
-param colors= pens、mono pens(ファイル自身のペンの色)

詳細はdesign.md §3.22を参照してください。