LT2013及び2016共にですがレイアウトモデル変換するとブロック名に「*E」が付きその後の編集が分解しないとできなくなります。
何か設定で変えられないでしょうか?
よろしくお願いいたします。
解決済! 解決策の投稿を見る。
回答者: tatsuo.inoue. 解決策の投稿を見る。
Hi @cokdk,
Can you attach a sample file for me to see in more detail what you are explaining? It sounds like you are copy and pasting and the result is an anonymous block.
添付ファイルにて変換前 [Test.dwg] データと変換後 [配管サポート用目板図]を送ります変換前データでは,ランダムでつけられていた名前が
変換後は、無名の [*E] で始まる名前に変わっています。ファイルの中のデータとしては、元ブロックがいるように見えるのですが(ブロック貼り付けで見ると名前の付いたブロックがいるのが解りました。)ですが、図面ユーティリティーで名前削除をすると消えてます。
よろしくお願いいたします。
Hi @cokdk,
I apologize that I have not yet provided an answer to you on this issue. I am having a difficult time understanding the nature of your question as I am translating over the web and it isn't very clear. I have moved your post to the Japanese AutoCAD forum in order to get you more responses. If you do not receive any thing to help, I will try to help you with this myself.
Thank you for your patience.
Hi @Anonymous.vellek,
Thank you for the move topic.
cokdkさん、こんにちは。
添付された図面、拝見しました。
ブロックがモデル空間に書き出されたときに"*E"で始まる名前のないブロックになっていますね。
これはブロックが元々のブロックとは異なる描かれ方で書き出されるからであろうと、調べてみました。
「配管サポート」と「配管サポート目板」の画層にビューポート優先プロパティが設定されていますね。
これが原因で元々のブロックと異なる色、線種でモデル空間に書き出されるからだと思います。
ビューポートを選択して右クリック>[すべての画層からビューポート優先プロパティを除去]で一括して優先プロパティを除去できます。
その後にモデル空間に書き出したものは「*E」ではなく元々のブロックのままでした。
優先プロパティを除去しなくてはいけないのが残念ですが、いかがでしょう?
よろしくお願いします。
ありがとうございます。こちらでも同様な方法で一部のブロックは、ブロック名が付くことは確認できました。
ただ、ビューで一部が切れているものは、それでも「*E」となっていました。
又、この方法だと線種、線色の設定も変わってしまいます。
送ったものはサンプルとして一部でしたが、実際は一つのモデルに機器の全体像や断面を描き各パーツに分けレイアウトにてそれぞれ、実践変えたり色を変え20枚の図面にしておりますのでこの方法だと根本的にモデルーレイアウトの作図のメリットが失われてしまします。
なら、そのままでレイアウトモデル変換しなければ良いと意見が正論とは思いますが、現実作図した図面を客先に提出する場合、客先側のAutocadの習熟度が印刷できる程度であることや、容量が大きくメールで送れなかったり又Autocad以外のCADのユーザーの場合もありレイアウトモデル変換が必要となっています。
この部分や、レイアウトモデル変換の尺度の問題を今後の改善としていただければ、助かります。
現状では、これがAutocad仕様だと客先には説明して理解していただきます。
今回は、丁寧にご説明いただきありがとうございます。
cokdkさん、こんにちは。
ビューから見切れてしまっているブロックも元のブロックと描かれ方が変わることになるので匿名ブロックになってしまうでしょうね。
客先提出されるのでモデル空間書き出しされるのですね。
色、線種を変えずにブロックを編集できるようにしたい場合、自分ならばモデル空間書き出しした後のDWGをDXFに変換、テキストエディタで「*E」の文字列を検索し、別な名前に置き換えることを試みると思います。
*で始まるブロックが匿名ブロックですので、その名前を強制的に変えるという方法です。
やや手間のかかる方法ですし、お奨めできる手法でもないかとは思いますが、ご参考までに。
また、図面サイズが大きくなるということですが、サンプルでいただいた図面は2000形式のDWGでした。
2004形式以降ではDWGファイルのサイズはかなり小さくなります。
客先次第では上記のようにDXFを編集したものをまたAutoCADで2004形式以降で保存しなおすのも有用かもしれません。
よろしくお願いします。
何度もありがとございます。
DXFに置き換え名前を変える件試してみたのですが、テキストエディタは、メモ帳ではだめなのでしょうか?何か推奨のものとかあるのでしょうか?
「*E」の部分を「E」や「$A」に変えて保存すと、「配管サポート用目板図.DXF は無効な DXF ファイルです。
無効 または 不完全な DXF の入力です。- 図面は破棄されました。」となります。
何度もお手数をかけますご教示願えると助かります。
又、ファイルの容量の件当方でもそのことは解っているのですが、現実客先が対応できてなく2000形式でないと読めないとクレームがつくので常時は2000形式で保管しておる次第です。
cokdkさん
こちらでも実際テキストエディタで試してみました。
匿名ブロックなので普通のブロックの名前のようにテキストエディタで簡単にはいかないですね。
匿名ブロックであるためのフラグが立っています。
*Eで検索していくとAcDbBlockBeginという個所がブロック名の近くに見つかるはずです。(注:AcDbBlockTableRecordではありません)
↓のような部分です。
AcDbBlockBegin
2
*E9
70
1
10
0.0
20
0.0
30
0.0
3
*E9
1
このAcDbBlockBeginセクション内のコード番号70の下にある数値を1から0に変更することで匿名ブロックのフラグが通常のブロックと同じになります。
この方法でブロック名とフラグをテキストエディタで変換したDXFを添付しますので、参考にしてみてください。
"*E"を"RENAME_"に置き換え、各ブロックのAcDbBlockBeginセクション内のコード番号70の下にある数値を1から0に変更しています。
かなり面倒ですが、マクロが使えるエディタなどで自動化できたりするとよいのかもしれません。
参考になれば幸いです。
何度もありがとうございました。
頂いたデーターはちゃんと読めたのですが、こちらのファイルを同じようにしてみましたが、何かが間違っているのか結果「不完全なDXF」になります。
いろいろ、ご対応ありがとうございました。
より良い製品を作っていただけるよう、ご期待いたします。
cokdkさん
うまくできなかったですか?
こちらでメモ帳を使ってやってみましたが、昨日添付したものと同じようにできました。
ブロック名の*Eは「すべて置き換え」でやっても、問題ありませんでした。
気をつけていただきたいのは70というコード番号の下の値を0から1に変更する際、AcDbBlockBeginのセクションだけに行うことです。
AcDbBlockTableRecordというセクションの下にも70というコード番号がありますが、ここはいじらずそのままにしてください。
あと、改行コードなども重要ですから該当する0のみを1に変更するようにしてください。
ですので、この作業は置き換え機能ではなく、テキスト内の検索でセクション部分を見つけて手入力したほうがよいと思います。
お時間あるときにまたトライしてみてくださいね。
その際、結果など教えていただけるとうれしいです。
よろしくお願いします。
いろいろとありがとうございます。
うまくいかない原因は、やはりメモ帳のようです。其方からいただいたDXFデータをそのままCADで読むといけるのですが、一度Windows8のメモ帳で開き何もせず上書きするとエラーになります。
メモ帳の書き出し時に、文字コード[UTF-8][ANSI][Unicord][Unicod big endian] と3種類あるのですがどれを使ってもダメでした。
現在マイクロソフトにデータを渡し調査していただいています。
もしよろしければ、其方のシステムのバージョン及びメモ帳のバージョンが解ればとマイクロソフト側が言っていましたので教えていただけないでしょうか?
よろしくお願いいたします。
cokdkさん
なるほど、こちらはWindows10です。
バージョン情報のスクリーンショットをプライベートメッセージでお送りします。
うまくいくようになるといいですね。
よろしくお願いします。
cokdk 様
非常に興味深い内容ですので申し訳ありませんが お借りします。
tatsuo.inoue 様
いつもお世話になっております。
こちらの件、私も試してみました
(Windws10 Pro バージョン1607+メモ帳・・・AutoCAD LT2017及び2016)
cokdk 様と同じように 「無効な DXF 」となり開く事が出来ませんでした。
※文字コード・[UTF-8]・[ANSI]・[Unicord]・[Unicod big endian] 全て試しました。
最初、DXF変換し、メモ帳で *Eを一括変換
次に、上記で変換した項目の AcDbBlockBeginセクション内のコード番号70の値1を0に変更
別名で保存・・・・「無効な DXF 」となり開かず。
試しに tatsuo.inoue 様 の添付して頂いている DXFをメモ帳にて開き、何も編集せず
別名で保存・・・・「無効な DXF 」となり同様に開きませんでした。
正直、ブロック名のテキスト変換の必要性を今まで感じていなかったので
試した事が無かったのですが、最近BIMからの二次元変換データに
名前の無いブロックが含まれることが有り、気になっていた事でしたのでコメントさせて頂きました。
「無効な DXF 」となってしまう、考えられる原因は何でしょうか?
sakanaka
cokdkさん、sakanakaさん
OSとメモ帳のバージョンの問題かと思っていたのですが、違うんですね。
調べてみましたが、UTF-8には2種類(BOMの有無)あってそれが問題であるのがわかりました。
↓のリンク先にBOMについて書かれていますので詳細はそちらを見てください。
http://qiita.com/MuriNishimori/items/a89fe986e28909208e30
さて、ここまでの流れでメモ帳で私が行なったのは変換の操作がうまくできるかどうかの確認だけでした。
そこで上の書き込みで添付していたDXFをこちらでもメモ帳でそのまま上書き保存したところ、同様に開けませんでした。
そして普段使用しているテキストエディタで「UTF-8 BOMなし」で再度上書き保存したところ、再び開けるようになりました。
つまりDXFファイルは「UTF-8 BOMなし」で保存する必要があり、Windows付属のメモ帳ではUTF-8でも必ずBOMありになってしまうのが原因のようです。
ちなみに私が使用しているテキストエディタは「Notepad++」というものです。
https://notepad-plus-plus.org/
もちろんこれ以外にも「UTF-8 BOMなし」で保存できるエディタはいろいろありますのでお好みで選んでください。
普段、メモ帳でテキスト編集することがなかったので、自分も1つ勉強になりました。
ありがとうございました。
tatsuo.inoue 様
早々にお調べいただき有難うございます。
こちらのトピックは 「へぇ~」 がいっぱいでものすごく勉強になりました。
直ぐには試せませんが、時間を見て試してみます。
有難うございました。
sakanaka
cokdkさん、sakanakaさん
上記を書きながら、メモ帳で操作しか確認していないなんておかしいと思い、記憶たどってみると2000形式のDXFで試していたことを思い出しました。
データのやり取りに2000DWG形式使われているとのことでしたので、そのときだけ2000形式でやってみたのです。
その前に添付したDXFは2013形式です。
再度試してみたところ、2000形式のDXFではメモ帳で上書きしてもUTF-8 BOMありにはなりませんでした。
またその他のバージョンでも試してみましたが、2004形式は上書き保存しても大丈夫でしたが、2007、2010形式では2013形式と同様でした。
2007形式以降のDXFをテキストエディタで編集する際には注意が必要ということですね。
tatsuo.inoue 様
素晴らしいです!
私はDXF変換するに、最新の方が良いだろうと 2013形式で保存しておりました。
今、添付されているDXFデータを 2004形式にて再保存、
メモ帳で開き、上書き保存し、AutoCAD LT2017で開いた所、
問題なく開くことが出来ました!
いや~奥が深いですねぇ
本当に勉強になります。
有難うございました!
sakanaka
cokdkさん
その後、テキストエディタでの編集は成功しましたでしょうか?
もし問題が解決しているようであれば、参考になった投稿の[解決策として承認する]をクリックしていただけると、今後同じような問題で困っている方の参考になります。
まだ問題が解決していないようであれば、その後の経緯など状況を教えてください。
いろいろなアドバイスがまた集まると思います。
よろしくお願いします。
お探しの情報が見つからないときは、コミュニティで質問しましょう。困っている人がいたら、情報を教えてあげましょう。