このQ&Aは役に立ちましたか?
ME10→DXF→JWCADの変換
2023/10/14 12:41
- ME10→DXF→JWCADの変換方法を教えてください
- ME10からJWCADにデータを送る際の変換方法を知りたいです
- ME10で作成したデータをJWCADで正しく表示する方法を教えてください
ME10→DXF→JWCADの変換
2005/05/02 18:00
現在ME10を使用しています。JWCADしか使用できない人にデータを送りたく
DXFに変換して送っているのですが、JWCADでファイルを開くと米粒のようにしか
表示されないそうです。
ME10側でデータを4億倍くらい拡大して送ってあげるとちょうどいい大きさらしいのです。
手間がかかることもそうですが何か間違ったやり方をしているようで、ちゃんとした変換方法をご存知の方が見えましたら教えてください。
よろしくお願いします。
質問者が選んだベストアンサー
これはME10のVer10.5以降のDXF変換がおかしいんです。
DXFファイルのヘッダーで、範囲を示しているところがありますが、
$EXTMIN
10
1.000000000000E+20 (A4サイズで中心配置だと本来-150ぐらい)
20
1.000000000000E+20 (A4サイズで中心配置だと本来-110ぐらい)
30
1.000000000000E+20 (通常は0になる?)
9
$EXTMAX
10
-1.000000000000E+20 (A4サイズで中心配置だと本来150ぐらい)
20
-1.000000000000E+20 (A4サイズで中心配置だと本来110ぐらい)
30
-1.000000000000E+20 (通常は0になる?)
などというありえない数字になってしまいます。
この部位は変換設定できないので、どうしようもないのですが、
解決策としては、できあがったDXFファイルから上記の部分を削除してしまえば、JWでは勝手に範囲認識します。(JW-Win Ver4.03dで確認)
あと、ME10のVer8.7があれば、それで変換するとこの問題は出ないのですが。
#くれぐれも重要なファイルならバックアップしてから作業してください。
ME10 Ver10.5で出力したDXFファイルの例です。
そのDXFファイルをメモ帳などで開きます。
すると、
0
SECTION
2
HEADER
9
$ACADVER
1
AC1014
9
$ACADMAINTVER
70
0
9
$DWGCODEPAGE
3
DOS932
9
$INSBASE
10
0.0
20
0.0
30
0.0
9
$EXTMIN ここから
10
1.000000000000E+20
20
1.000000000000E+20
30
1.000000000000E+20
9
$EXTMAX
10
-1.000000000000E+20
20
-1.000000000000E+20
30
-1.000000000000E+20
9 ここまで
$LIMMIN
10
0.0
20
0.0
9
・
・
・
(続く)
という風になってます。
たぶん、どのDXFファイルでも(同じVerのソフトなら)同じ行数に出てくると思います。
それを、$EXTMINの行から$LIMMINの上の行までを削除してしまい、上書き保存するだけ。
ちょっと間違ってました。
$EXTMIN~$EXTMAXを削除すると、勝手に領域認識するのではなく、
その前に呼び出したファイルの範囲が表示されますね。
そのため、上記作業を行ったファイルの前に、元のおかしい範囲のファイルを読んでいると、表示がおかしいままになりますね。
適当なファイルを(DXFでなくて、JWファイルでも良いようです)仮で読んでから、上記の範囲削除ファイルを読む必要がありそうです。
ME10のマクロで、擬似的に$EXTMIN~$EXTMAXを作れますね。
↓ こんなマクロで。
DEFINE JWWDXFOUT
LOCAL JWW_NAME
LOCAL Window_ll
LOCAL Window_ur
LOCAL EXTMIN_10
LOCAL EXTMIN_20
LOCAL EXTMAX_10
LOCAL EXTMAX_20
READ STRING 'ファイル名入力。' JWW_NAME
Tm_window_fit
INQ_ENV 1
IF ((INQ 2)>0)
INQ_ENV 2
LET Window_ll (INQ 101)
LET Window_ur (INQ 102)
LET EXTMIN_10 (X_OF Window_ll)
LET EXTMIN_20 (Y_OF Window_ll)
LET EXTMAX_10 (X_OF Window_ur)
LET EXTMAX_20 (Y_OF Window_ur)
END_IF
STORE DXF ALL JWW_NAME
OPEN_OUTFILE 1 (JWW_NAME + '.TXT')
WRITE_FILE 1 '$EXTMIN'
WRITE_FILE 1 ' 10'
WRITE_FILE 1 EXTMIN_10
WRITE_FILE 1 ' 20'
WRITE_FILE 1 EXTMIN_20
WRITE_FILE 1 ' 30'
WRITE_FILE 1 '0'
WRITE_FILE 1 ' 9'
WRITE_FILE 1 '$EXTMAX'
WRITE_FILE 1 ' 10'
WRITE_FILE 1 EXTMAX_10
WRITE_FILE 1 ' 20'
WRITE_FILE 1 EXTMAX_20
WRITE_FILE 1 ' 30'
WRITE_FILE 1 '0'
WRITE_FILE 1 ' 9'
CLOSE_FILE 1
END_DEFINE
これを実行すれば、DXFファイルと同時に、同じ名前で$EXTMIN~$EXTMAXの範囲のテキストファイルが出来ます。
その内容をDXFファイルの該当箇所に貼り付けてやればできあがり。
自動的に変更できないかな?と思ってみたけど、やりかたがわかりませんでした。
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
その他の回答 (5件中 1~5件目)
回答(4)さんが完璧な回答をされていますが、補足・別案等を少々。
私はME10・JWCAD使いではありませんが、
会社で使っているパソコンにME10(Ver.11)があるので試してみたところ、同様な現象になりました。
また、回答(2)さんのように、JWCADのマウス両ボタン右上ドラッグ(全体表示)では、フィットしないのも困りものですね。
回答(3)さんの言われるように、DXFには倍率の情報は無く、CADによりスケールの設定は異なるので、本不具合は「良くあること」です。
今回の、ME10→JWCADでは、質問者さん・回答(4)さんの言われる方法以外にいくつか考えられます。
1. コクリエイトのサポートに連絡して、対応してもらう。
このままでもAutoCADでの読み込みには支障ないので、断られる可能性大です。
2. コンバートソフトを使う。
例えば「JacConvert」(シェアウェア)。
試してみたところ、DXF→DXF・DXF→JWWとも不具合解消されました。
DXF解析機能もあるので、DXF→DXFで$EXTMIN・$EXTMAXの変化を確認できます。
CADメーカは、
◇AutoCADが書き出したDXFが、自身で問題なく読み込めるよう。
◇自身が書き出したDXFが、AutoCADで問題なく読み込めるよう。
には注力しますが、その他は都度対応程度と考えますが、いかがでしょうか?
これを利用して、下記の方法が万能とも考えます。
3. CAD-Aで書き出したDXFをAutoCADで読み込んで、そのままDXFで書き出しCAD-Bで読み込む。
ビンボー人の私が自腹を切ってまでAutoCADを買った理由の一つです。:-)
回答(4)さんへ、
>$EXTMIN~$EXTMAXを削除すると、勝手に領域認識するのではなく、
>その前に呼び出したファイルの範囲が表示されますね。
連絡をありがとうございます。私も勘違いしていました。
お礼
2005/05/11 10:51
ご回答ありがとうございます。
いろんな案を出していただき感謝いたします。
CADユーザーが増えれば増えるほどこういった「良くあること」が増えるので
各メーカーさんが機能も重要ですが互換性にもっと力を注いでもらえると
ユーザーとしてはうれしいですね。
ご意見参考にさせていただきます。
ありがとうございました。
ご回答ありがとうございます。
いろんな案を出していただき感謝いたします。
CADユーザーが増えれば増えるほどこういった「良くあること」が増えるので
各メーカーさんが機能も重要ですが互換性にもっと力を注いでもらえると
ユーザーとしてはうれしいですね。
ご意見参考にさせていただきます。
ありがとうございました。
ご回答ありがとうございます。
いろんな案を出していただき感謝いたします。
CADユーザーが増えれば増えるほどこういった「良くあること」が増えるので
各メーカーさんが機能も重要ですが互換性にもっと力を注いでもらえると
ユーザーとしてはうれしいですね。
ご意見参考にさせていただきます。
ありがとうございました。
寸法線とか字はどうなってますか。単にjwで表示されるときに全画面表示で小さくなるのなら余分な点とか要素が画面の端に混ざってませんかdxfには倍率の情報は無いので読みこんだcadで要素の最大値を探して全画面表示してるだけなのでなにか余分なごみが混ざってる可能性があります。
お礼
2005/05/11 09:50
返事が遅くなりまして申し訳ありません。
ご回答ありがとうございました。
以前に他CADから作成された.dxfファイルをME10で読み込んだときに
『余分なごみ』がたくさんあった経験がありましたので、もしやと思い
JWで周辺を削除してみましたが何もありませんでした。
他のやり方を探してみます。
ありがとうございました。
ゴーヤさん、はじめまして。
僕の使っているCADはナスカですが、やはりAutoCadからコンバートすると、ノミの様な大きさになります。
我流ですが、一度原点を消してから図形を“FITボタン”で表示させると丁度良い大きさで表示されます。JWCADには“FITボタン”の様な機能は有りませんか?
原点は後で自分の都合の良いところ、或いは加工の原点に付け直せば良いと思います。
お礼
2005/05/11 09:41
返事が遅くなりまして申し訳ありません。
ご回答ありがとうございました。
手順が容易だったので試そうと思いチャレンジしたところ『全体表示(FIT)』という機能は
見つけたのですが原点というものが存在するのか見つけられませんでした。
なにぶんJWの知識は皆無なものですから。
もしJWでこのような加工ができるというご回答があれば
よろしくお願いします。
ありがとうございました。
拡大して図面データーがちゃんと有るのでしたら、CADで拡大して使えば良いんじゃないでしょうか?(倍率だけの問題だったら)
基準寸法に合せて分数で拡大出来ますので・・・
ちなみにその都度大きさ(倍率)が変わるって事は無いですよね?
JWだと99.999倍が一度に出来る最大倍率ですので、2万倍を2回繰り返すようになりますが・・・
移動コマンドを使って上記方法で拡大して貼り付ければ表示できます。
レイヤを強制移動すれば拡大率(実寸に変更)も変更できます。
お礼
2005/05/11 09:32
返事が遅くなりまして申し訳ありません。
ご回答ありがとうございました。
倍率が変わることはありません。(おそらく。。。)
JWの使い方が分からないのでやり方が間違ってるかもしれないですが
拡大して使用できなくはないですが全体表示(フィット)すると元に戻ってしまうのでJWで操作しない方法で考えてみます。
ありがとうございました。
お礼
2005/05/11 10:01
ご回答ありがとうございます。
原因が分かりましたので参考になりました。
ただ私の勉強不足で申し訳ないのですが「DXFファイルのヘッダー」とは?
>解決策としては、できあがったDXFファイルから上記の部分を削除してしまえば、JWでは勝手に範囲認識します。(JW-Win Ver4.03dで確認)
この操作を試したいのですが上記の削除部分の表示方法が分かりません。
具体的な手順を教えていただけないでしょうか。
ありがとうございます。
さっそく試してみたいと思います。