開けないDXFファイルを開くには
もらってきたDXFファイルが開けなかったことはありませんか
そんな時、何とか開こうとした経験の記録です
なぜDXFファイルが開けないのか
DXFファイルとは、元々はAutoDesk社が、AutoCADの異なるバージョン間で、ファイルを読み書きするために作った仕様です。
しかし、他の多くのCADで、読み書き可能になっており、事実上、異なるCAD間でデータを読み書きするための中間ファイルとなっています。
相手先のCADが、DXFの仕様に正しく則ったファイルを作成してくれれば、AutoCADで読み込めるのですが、いろんなCADがあるようで、一筋縄にはいきません。また、DXFファイル自体もバージョンがあり、どのバージョンで作成されたのかも問題になります。
そして、CADの仕様以外でも、相手側が、画層名や線種名にAutoCADにとって不適切な文字を使用している場合にも開けないDXFファイルが作成されることがあります。(経験上はこれが多いです)
まずはR13で開いてみる
AutoCAD2000以後、DXFファイルに対して扱いが厳格になったようで、開けない事が多くなったようです。
というわけで、R13が動くのなら、挑戦してみる価値はあります。(そんなもん、とっくに無いかも・・・・(-_-;)
)
ほかのCADで読み込んで、もう一度DXFファイルを作成する
ほかのCADと言っても、そんなにいろいろ持ってませんよね。
JWW(JW_CAD for Windows)・JW_CAD
なんかが、フリーのCADとして使えますので、こちらがお勧めです。
ただし、これらのCADは結構なシェアーを持ってますから、もともとこれらのCADで作成されたDXFファイルである可能性が大です。その場合、作成し直しても結果は同じです。
「ファイルの終了が早すぎます」みたいなメッセージが出たときには、この方法が有効かも
不正な部分をエディターで編集して開く
DXFファイルは、単なるテキストデータです。
メモ帳なんかでも開いて見れるのですが、行番が表示されないと不便です。
行番が表示できて、文字列検索・置換ができるエディターをご用意ください。
(XPのメモ帳なら行番指定で行の移動はできます)
1.DXFファイルを開いたときのエラーメッセージを書き留める。
DXFファイルが開けないとき、AutoCADはコマンドラインにメッセージを表示します。
これには、なぜ開けなかったのかを調査する上で、大切なメッセージです。
コマンド: _open
テーブル項目名 _0-4____・建具 が間違っています. 568. 行上.
無効 または 不完全な DXF の入力です. - 図面は放棄されました.
; ユーザ警告: 閉じるドキュメントの名前空間が見つかりません
568行目の _「0-4____・建具」
に問題が有るようです。
この段階では、私の場合勘ですが「・」が怪しいですね。
2.エディターで開いて
568行目を編集
まず、もらってきたファイルを壊してしまうと大変ですから、バックアップをとってから、エディターで編集です。
手っ取り早く 「・」を消してみましょう。
566:
LAYER
567: 2
568: _0-4____建具
消したら、エディターで上書き保存して、もう一度AutoCADで開いてみる。
コマンド: _open
テーブル項目名 _0-6_______・ALC が間違っています. 588. 行上.
無効 または 不完全な DXF の入力です. - 図面は放棄されました.
; ユーザ警告: 閉じるドキュメントの名前空間が見つかりません
さっきとメッセージが違います。
568行目ではエラーが出ずに、通過したようです。
しかし、「0-4____・建具」以外にも問題が有る事が判りました。
3.エディターで「0-4____・建具」を編集
「0-4____・建具」は、どうも画層名のようです。
ということは、「0-4____・建具」は、何度も使われている可能性大です。
そこで、エディターの置換機能を使って、「0-4____・建具」を「0-4____建具」にすべて置換えます。
ついでに、 「_0-6_______・ALC」も「 _0-6_______ALC」に置換えましょう。
4.もう一度開いてみる
ほかに、不正な個所が無ければ開くはずです。
コマンド: _open
Release 12 DXF ファイルを開いています.
モデルを再作図中.
ほらね、うまくいったでしょ。
しかし、めんどくさい ・・・・・ (-_-;)
経験上、2バイトの特殊文字は問題を起す事が多いです。
半角カナもだめです。
また、改行コードなんかでも引っかかったりすることもあります。
参考までにRedame.hlpより
画層名・ブロック名等のシンボル名で使える文字
・英数字・半角記号は[-_$]の3文字だけ
・普通の漢字
・全角スペース
使えない文字
・全角の記号文字(:、/、◎など)
・特殊文字(1.、III、ミリ、√など)
・[-_$]の3文字以外の半角記号
・半角スペース
コンバーター
ソフトを使ってみる
「そんな面倒な事やってられんわ。」
という方は、コンバーターソフトを使ってみるのもいいでしょう。
http://www.daioh.net/file/tool/fai_be05.htm
http://forum.nifty.com/farchi/download/cad/uty/jacconvert.htm
http://jwx.hp.infoseek.co.jp/
それでもダメならあきらめる
それでもダメなら、お手上げです。
本当は、異なるCAD間でデータの受け渡しをする場合には、事前に綿密な打合せが必要なのです。
今後、SXF対応が軌道に乗れば、この問題も解消されるかもしれません。
|