Indexへ
(7732)//【7711】→(7719)
------------------------
【タイトル】JWC形式保存時の画層名の謎
【記事番号】 7711 (*)
【 日時 】06/08/25 06:53
【 発言者 】古川

下記のような画層名を作ってJWC形式で保存、再びJWWで読み込むと、
不思議な変化をしています。

通り芯(記号)
壁面 記号

JWCでは画層名は最大8文字なのであふれた分は削られるのは当然として、
下記のようになります。

通り芯(
壁面 記

問題は、半角で7文字のはずなのに、レイヤ一覧で見ると、
8文字分、最後に意味不明な空白がくっついています。
ひょっとして、8文字が全角の1byte目だと
画層名にゴミがつくのではないでしょうか?


Indexへ
(7711)←【7719】→(7720)
------------------------
【タイトル】Re(1):JWC形式保存時の画層名の謎
【記事番号】 7719 (7711)
【 日時 】06/08/25 15:40
【 発言者 】joker
【 リンク 】http://www.atsmile.com/jw/



▼古川さん:
>問題は、半角で7文字のはずなのに、レイヤ一覧で見ると、
>8文字分、最後に意味不明な空白がくっついています。
>ひょっとして、8文字が全角の1byte目だと
>画層名にゴミがつくのではないでしょうか?

JWW Ver.5.02a で JWC保存をして、そのJWCデータを
バイナリエディタで見ると、全角文字の1バイト目のコードが入ってます。

ゴミというよりは、単純に、8バイトで切り出しをして、そのまま保存を
しているのだと思われます。


Indexへ
(7719)←【7720】→(7723)
------------------------
【タイトル】Re(2):JWC形式保存時の画層名の謎
【記事番号】 7720 (7719)
【 日時 】06/08/25 16:03
【 発言者 】古川

▼jokerさん:
>ゴミというよりは、単純に、8バイトで切り出しをして、そのまま保存を
>しているのだと思われます。

下記の問題を発生させている直接原因のような気がします。

◆Version 4.02 (2004/05/10)
DXF出力のとき、レイヤ名にごみが含まれていると出力に空行が
入ることがあるバグをフィックスした。

バージョンダウンして、4.02以前ユーザーにデータを渡すと
せっかくのバグフィックスも有効に働かないので、
8文字目が全角文字の1バイト目のコードなら
JWC出力時に削除してもらったほうがありがたいと思います。


Indexへ
(7720)←【7723】→(7724)
------------------------
【タイトル】Re(3):JWC形式保存時の画層名の謎
【記事番号】 7723 (7720)
【 日時 】06/08/25 18:20
【 発言者 】joker
【 リンク 】http://www.atsmile.com/jw/



▼古川さん:

修正していただけたら、という要望は、それはいいとして、
下記については、ちょっと状況がよく分かりません。

>バージョンダウンして、4.02以前ユーザーにデータを渡すと
>せっかくのバグフィックスも有効に働かないので、
>8文字目が全角文字の1バイト目のコードなら
>JWC出力時に削除してもらったほうがありがたいと思います。

4.02以前のJWW へデータを渡す際、JWC形式データで渡しているのでしょうか?
であれば意味は分りますが、
4.02以前のJWW へ JWW形式データで渡しているのであれば、
4.02以前のJWW で JWC形式ファイル出力や、DXF形式ファイル出力を
行ったときに問題が発生するのであれば、
4.02以前のJWW を修正する必要があると思いますが、
それは実質的に不可能だと思います。

また、JWW 5.02a で DXFファイル保存をする際、
レイヤ名に 260 文字まで書いても、レイヤ名はカットされませんでしたから

> DXF出力のとき、レイヤ名にごみが含まれていると出力に空行が
> 入ることがあるバグをフィックスした。

との関連性があるかどうかは、私には分りません。


ちなみに、JWW 5.02a でレイヤ名を適当に だだだーと長い名前を付けていくと
JWWは何も言わずに終了されちゃいます。(^^;
まぁ、そんなふざけたような入力をするのが悪いんでしょうけれど。(笑)
(Ver.2.30位の昔には、65536文字以上でも入力できましたが(^^;;)

また、260文字を超えるレイヤ名の場合、DXF保存をしようとすると、
これも同様に JWWは何も言わずに終了されます。

レイヤ名は、255文字まで くらいに入力制限を入れた方がいいかもしれません。


Indexへ
(7723)←【7724】→(7725)
------------------------
【タイトル】Re(4):JWC形式保存時の画層名の謎
【記事番号】 7724 (7723)
【 日時 】06/08/25 18:44
【 発言者 】古川

▼jokerさん:
> 下記については、ちょっと状況がよく分かりません。
>> バージョンダウンして、4.02以前ユーザーにデータを渡すと
>> せっかくのバグフィックスも有効に働かないので、

データがあっちこっちに出回ると、
JWW5.02a → JWC → JWW4.02以前というパターも有るでしょうし
JWW5.02a → JWC → JWW5.02a → JWW4.02以前の方が
パターンとしては、多いかもしれません。

少なくとも、JWW → JWC → JWW というパターンは
かなり有るでしょう。

最新バージョンでごみを出さないだけでも、
最終的にDXF出力するJWW4.02以前ユーザーに
ごみつきファイルがわたる可能性は減るのではないでしょうか。


Indexへ
(7724)←【7725】→(7726)
------------------------
【タイトル】Re(5):JWC形式保存時の画層名の謎
【記事番号】 7725 (7724)
【 日時 】06/08/25 18:59
【 発言者 】joker
【 リンク 】http://www.atsmile.com/jw/



▼古川さん:

少しテストしましたので消して修正して再投稿しようと思ってましたが
コメント早いですねー(^^;

まず先に、テスト結果を書いておきます。

JWW 5.02a で そういうレイヤ名がある図面をJWC形式保存したファイルを、
JWW 4.01b、4.02c、5.02a で読み込んで、DXFファイルにしてみました。
いずれもレイヤ名は、おかしくなります。

JWW 4.01bで出力したDXFファイルは、AutoCAD LT 2000では読めません。
4.02c、5.02a で出力したものは読めましたが、レイヤがちょっとおかしいです。
DXFのレイヤ名がおかしくなってますから当然といえば当然かな。

>少なくとも、JWW → JWC → JWW というパターンは
>かなり有るでしょう。
>
>最新バージョンでごみを出さないだけでも、
>最終的にDXF出力するJWW4.02以前ユーザーに
>ごみつきファイルがわたる可能性は減るのではないでしょうか。


だそーです。 > JWW作者さま

先のコメントで私は
「修正していただけたら、という要望は、それはいいとして、」
と書いてあるとおり、
古川さんの修正要望に対して 反論しているわけでもありませんし、
批判しているわけでもありません。

単に、
「新JWW→JWC形式→旧JWW」という変換の話であって
「JWW→旧バージョンJWW形式→JWW」での変換の話ではない、
という事を明確にされた方がいいだろう、という確認程度のコメントです。

先のコメントに書いた通り、
古川さんの要望そのものについては、最初から、賛成です。


Indexへ
(7725)←【7726】//(7714)
------------------------
【タイトル】どう おかしいのか というと・・・
【記事番号】 7726 (7724)
【 日時 】06/08/25 22:19
【 発言者 】joker
【 リンク 】http://www.atsmile.com/jw/



JWW 5.02a → JWC形式 → JWW で、
レイヤ名がおかしくなる件について、どのように おかしいのか、というと
下記は、適当に線を描いて試した結果です。
状況によって出力パターンは変わるかもしれません。


下記のレイヤ名を JWC形式で保存すると 8バイトでカットされます。

0:1234  → 1234(82h,50h,82h,51h,82h,52h,82h,53h)
1:123 4  → 123 (82h,50h,82h,51h,82h,52h,20h,82h)
2: 1234  →  123 (20h,82h,50h,82h,51h,82h,52h,82h)

これを、JWW 4.01b で読み込んで DXFファイルにします。
レイヤテーブル   各データでのレイヤ名指定
0:「1234」   「1234」
1:「123_82」   「123_82」
2:「_12382」   「_12382」
(後ろにある「82」は 82h というコード値)
このファイルは、不正な文字コード値が入っているため、
AutoCADでは読めません。

JWW 4.02c で読み込んで DXFファイルにします。
レイヤテーブル   各データでのレイヤ名指定
0:「1234」   「1234」
1:「123___」   「123___S」「123___LE」
2:「_123__LE」  「_123__AB____0__EOF__」「_123__S」

JWW 5.02a で読み込んで DXFファイルにします。
レイヤテーブル   各データでのレイヤ名指定
0:「1234」   「1234」
1:「123___40__0_0___41__1_0___50__0_0___71_______0___42__1_0____3__txt____4__bigfont_shx____0__ENDTAB」
          「123___」
          「123____bigfont_shx____0__ENDTAB____0__EOF__」
2:「_123__」   「_123____bigfont_shx____0__ENDTAB____0__EOF__」
          「_123__40__0_0___41__1_0___50__0_0___71_______0___42__1_0____3__txt____4__bigfont_shx____0__ENDTAB」
          「_123__」
          「_123_____0__EOF__」

という訳で、おかしなレイヤ名になってしまう、というテスト結果でした。

WindowsXp Pro SP2(最新状態) JWC形式ファイルを出力:Ver.5.02a
です。