CAD日記

主にAutoCADのことについて書いているけど、近頃は投資系ネタに注力している。自動売買、仮想通貨、PC関係、プログラミングなど。@caddiary

Jw_cad

JWWを読む

投稿日:

 やっぱりJWWについても書くことにしました。JWCに触れておいてJWWを語らなければ、片手落ちなのでは、と考えたので。今では、Windows版のほうが圧倒的にユーザー数が多くて、データの流通においてもJWWのほうが多いのではないかと思います。

 JWWは、シリアライズです。って、あまり日本語になってないですね。C++のオブジェクト指向を取り入れたデータ構造をしています。図形のデータ構造においては、色や線種のようなどんな図形も保持している情報をスーパークラスとして定義しておいて、これを継承したサブクラスとして線とか円弧とかいった図形のクラスがあります。そして、スーパークラスがCObjectを継承しているので、シリアライズに対応しているわけです。

 シリアライズって何?ということなんですけど、実は私もよくわかってないので調べてみました。

「ソフトウェア内部で扱っているデータを丸ごと、ファイルで保存したりネットワークで送受信することができるように変換すること。」(e-wordsより引用)

 そうですね。簡単にファイルから読み書きできるデータ構造ということです。C++では、>>とか、<<といった記号によって、ファイルを読み書きできます。例えば、CStringのような抽象的な型の変数でも、文字列の長さなんていう余計なことを考えずに、ファイルに保存できてしまうのです。

 あとは、CFile, CArchiveといったクラスを使って形を整えれば、シリアライズの完成です。本当にこれで読み書きできてるの?という感じでしたけど、出来てました。

 けっこう長くC++をやってますけど、シリアライズを知らなかったというのは、恥ずかしかったかもしれません。そういう意味ではJWWでよーく勉強させてもらいました。

 JWWファイルの先頭部分は、「JwwData.」というテキストコードが必ず入ってます。これによりファイルがJWWかどうかを判定するのです。ということで、先頭8バイトは固定のテキストコードが入っています。次の4バイトが、そのファイルのデータバージョンです。データの型としてはDWORD、つまり unsigned long です。これは、DWORDでそのままシリアライズされてるので、テキストエディタで見ても化けてしまって、何だかわかりません。値としては、230とか300とか351という数値が入っています。一番最初にJWWのデータ構造が公開されたときのバージョンが2.30でした。その後、3.00と3.51でデータ構造が変更されています。最新のJW_CADのバージョンは4.10ですけど、内部バージョンとしては351がまだ使われています。

 JWCと比べると、図形の種類が増えました。ブロック(シンボルとも呼ぶか)が出来て、寸法(線と文字をグループ化しただけですけど)が出来て、塗り潰しもあります。文字では、MSゴシックなどのWindowsフォントが使えるようになりました。色の種類は1種類しか増えてませんけど、色番号に対するRGB値を指定できるようになってます(たぶん)。

私はぜんぜん知りませんけど、天空図なんていう単語がデータ構造上に現れてきます。あとJW_CADでは、2.5次元というのが有名ですけど、これも強化されているのでしょう。

 ちょい余計な話ですけど、JW_CADという名前はアンダーバーを含んでます。本やWebなんかで、アンダーバーをハイフンで表現していたり、何もいれずにつなげていたりする場合がよくあります。まぁ、声に出す部分ではないので、どっちでもいいんですけど、個人的には気になってます。作者にどんな意図があって、アンダーバーで表現しているのかわかりませんが、ちょっとしか知らない人が、間違えるのは当然と言えば当然です。そんなことをいちいち指摘したいわけではありませんが、間違っている記述を見かけると、何やらモヤモヤが残り、気持ち悪いです。

 JW_CADは、DOS版からWindowsに移植され、ますますその存在感を高めています。使いやすい、タダ、この2点が継続される限り、この繁栄はずっと続くでしょう。

-Jw_cad
-

執筆者:


  1. ファイル読込み

    TRY {     CFile file;     if(file.Open(ファイル名, CFile::modeRead))     {         if(file.Read(&buff, leng..

comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

JW_CADデータを読む

 以前書いた「DWGを読む」に続いての、CADデータを読むシリーズの第2弾です。今回はJW_CADのデータ、つまりJWCとJWWのデータ構造についてです。  JWCは、JW_CAD MS-DOS版のデ …

no image

Jw_cadのバージョン

5.00eで、しばらく止まってる。 2006/1/15からだから、かれこれ4ヶ月ってとこ。 それまでは、かなり頻繁にバージョンアップしてたから、 どうしたんだろか。 作者には本業があるだろうから、そう …

no image

JW_CAD

フリーのCADソフトです。1991年にDOS版としてリリースされて、2001年にWindowsに移植され今に至ります。無料なくせに高機能なので、ユーザー数は多いです。リリースされた当時は、CADの一般 …

no image

新JWWデータ形式公開

待ってました! Jw_cadの作者が公開してくれました。 http://www.jwcad.net/jwdatafmt.txt 独自にバイナリ解析するのはとても困難なので、 やだな~と気が重いところで …

jwwとdwgの線種対比

jwwとdwgの色番号対比の続編で、次は線種。点線とか一点鎖線とかのことで、線種は色と違って番号という考え方がdwgにはない。名前で管理されており、画層(レイヤ)やブロックでも同じことが言える。番号と …