2019年3月24日日曜日

SXFファイル形式(P21, SFC, P2Z, SFZ) について

SXFファイル形式は現在4つの拡張子のものが出回っている。

  • P21 (STEP AP 202) STEP 規格に基づいた正式な SXF ファイル。1個の図形を定義するのに、何行も使うし、英数字それも大文字ばかりの内容を見ると、昔懐かしい FORTRAN や COBOL のソースコードのようだ。
  • SFC (SXF Feature Comment) 1行1図形で書かれている。内容的には P21 ファイルと等価なものである。行番号が気になるが、図形名(パラメータ,...) の記述は、C言語のソースコードにも見える。
  • P2Z (P21 Zipped) P21ファイルと、P21ファイルと一緒に添付すべき画像データファイルや属性定義ファイル(拡張子 SAF)を ZIP ファイルとしてまとめたもの。SXFファイルの正式な仕様として定められている。Microsoft Office の docx ファイルのようなカタログファイルの類は含まれておらず、フラットにまとめるファイルを入れればよい。P2Z, P21, SAF ファイルのファイル名本体部分は同じ。
  • SFZ (SFC Zipped) P2ZファイルのSFC版だが、正式な仕様ではない。
SXFファイルを読み書きするライブラリ

SXFファイルを読み書きするライブラリとして、common_lib_AP202.dll と common_lib.dll ファイルが世の中に出回っている。このライブラリの中では、MFC を使用しているが、エクスポートされたAPIは、C 言語呼び出しのファイルになっている。図形データは型なしのポインタで渡される。また図形データは、シーケンシャルアクセスしかできない。

このライブラリを使うのにあたって、この辺はもうちょっと扱いやすくしたいと思った点はこんなところ。

  • Jww が CDocument 派生クラスで読み書きできるのだから、SXF ファイルも CDocument 派生クラスになってもいいんじゃないか。
  • P2ZやSFZファイルも同様に扱いたい。
  • Unicode や 64 ビルドはどうか。
  • 図形の構造体そのものは手を付けない。
common_lib_AP202.dll と common_lib.dll をラッピングする、MFC拡張ライブラリの SXF 読み書きライブラリがあったらいいな。

AP202なのに何故P21なのか(そこはP22では)、知ってる人がいたら教えてください_(..)_


6 件のコメント:

異尺度注釈図形にアタッチされている尺度を知る

 異尺度注釈図形が持っている尺度(文字列)を表示する ;;; ;;; LISTANNOSCALE.LSP ;;; (defun C:LISTANNOSCALE ( / el id f)   (setq f T)   ;異尺度注釈図形を選択   (if (setq el (entg...