DXFファイルの互換性の問題は星の数程存在していて、たびたび素人の私を悩ませるのですが、最近になって悩んだ楕円弧データに関するものを書かせてもらいます。各プログラムのバージョンはJWWが3.10、QCadは1.5.1、JWXは0.18です。
とある図をJWC(DOS版)で描きJWXでDXFにしてあったものを、JWWで読み込んだ際に一部の楕円弧がおかしな表示になっていました。その楕円弧は下記の様な始角と終角をもつもので、傾きがない場合の真下付近から真右付近への約90度の楕円弧のデータです。注目すべき特徴は楕円弧が基準の角度(0度)を跨いでいて、始角より終角の数値が小さい事です。
始角[DXF:41] 終角[DXF:42]
元のJWCの内容---- 270.5741deg 0.000015deg
JWXのDXF出力----- 4.72240832503779rad 2.66316109007924E-7rad
上記の様なJWX出力のDXFファイルをJWWに読ませると、始角から終角を時計回りに約270度のデータとして認識してしまいます。またQCadというのに読ませてみてもNGな結果になりました。手元にDXFフォーマットの資料もないので推測になってしまいますが、AutoCadLTで問題なく認識することからすると、DXFフォーマットで始角から終角は反時計回りであると定義されているのでしょう。そうだとすると、JWWやQCadのDXF入力に問題が在るという結論になります。
参考になるかと思い、上記のDXFファイルをAutoCadLTに読ませてからDXF出力させてみました。また同様にdconvertでDWGに変換後再びDXFに変換してみました。これらはJWWやQCadでも問題なく認識しました。
始角[DXF:41] 終角[DXF:42]
AutoCadLTの出力-- -1.560776982141794rad 0.0000002663161076rad
dconvertの出力--- 4.7224083250377902rad 6.2831855734961088rad
JWXのDXF出力とは異なり、どちらの場合も 始角より終角の数値が大きくなっていました。JWWやQCadはこのタイプのDXFファイルを期待しているのでしょう。それがDXFフォーマットで定義されているなら、JWXのDXF出力に問題が在るという結論になります。
一般的な楕円弧データには、始角や終角が基準の角度(0度)付近であるものが多く含まれるでしょうから、これらの問題が生じる可能性はそれなりに高いと考えられます。
それぞれのDXF入出力プログラムにそれぞれの理由と解釈があるのだとは思いますが、あえて書かせていただくと、DXF入出力プログラムに期待したいことは、AutoCadLTがやっているDXFの入出力と同様に、
○DXF出力は、楕円弧が基準の角度(0度)を跨ぐ場合も、始角より終角が大きくなる様に出力する。
○DXF入力は、楕円弧の始角より終角が小さい場合も、始角から終角を反時計回りに認識する。
とういうことになります。JWXのサポートBBSにも書き込んでみましたが反応がありませんでしたので、こちらにもう少し詳しく書いてみました。推測も混じっていて怪しげですが、いかがなものでしょう。