JW_cad Viewer公開したよ

Androidアプリを公開しました。JW_cadというWindows用のCADのViewerで、JW_cad Viewerと言います。そのままですね。製作には、主に休日を使い、約一ヶ月かかりました。

作った理由は、

  • グラフィック関係のアプリが作りたかった。
  • CADみたいな線画が好き。
  • DXFは、すでにライブラリがあるので面白みがない。
  • DWGは、有料のライブラリがないとつらい。そもそもAutoCADが手元にない。
  • JW_cadのデータ構造は、ありがたいことに公開されている。ユーザーも日本では多い。
  • JW_cadのデータ構造を理解すると、他のプログラム作成に応用が利く。
  • JW_cadの は、保存形式としてMFCのシリアライズを利用している。MFC以外の環境で、MFCでシリアライズされたオブジェクトを読むことに興味があった。

というような感じでJW_cadのViewerを作ることにしました。一番の理由はMFCのシリアライズに対する興味です。

アプリの作成は、苦労しました。苦労した点は、

  • データ形式の仕様が、保存部分のソースコードの抜粋で、わかりずらい(と思うけど、かえって文章でかいてあるよりいいのかな?。
  • C++のunsignedな数値が、いたるところに使ってある(ということが問題になるとは予想外だった ・ ・ ・ )。
  • JW_cad、変数使いまわし多すぎ問題(その割に、ベースクラスの使わないメンバが多い。継承されるクラスは少ないから、ベースクラスをもっとコンパクトにすればよかったのに)。
  • ソリッド図形の謎。
  • 文字クラスが画像という不思議(JW_cadを使っていれば既知なんだけど、あらためて疑問)。

作成方法としては、まずWindows上でバイナリデータ解析をバイナリエディタでしつつ、C#でプロトタイプ作りをしました。C#でプロトタイピングしたので、Xamarinでアプリを作ろうかと少し思いました。ですが、Xamarinは開発環境の動作が重いので苦労すると思い、C#からkotlinに変換しました。

MFCでシリアライズされたオブジェクトの読み込みは、こここことマイクロソフトのテクニカルノートが参考になりました。オブジェクト(ポインタ?)の読み込みは、テクニカルノートを読んで、バイナリの解析(オブジェクトのIDが、想像していたものとちょっと違って悩んだ)。

MFCのシリアライズについては、面白いことが分かったので、また何か書くかもしれません。

「JW_cad Viewer公開したよ」への2件のフィードバック

  1. androidスマホにて使わせていただいております。
    使用頻度は、それほど多くはないのですが、
    現場での図面確認時、レイア切替が簡単にでき、
    レイア名が表示されるのが便利です。感謝いたします。
    お願い:
    現場でのデータ入力に SH-06F(android4.4.2)を
    使っているのですが、4.4.2 対応できないでしょうか?
    よろしくお願いいたします。

コメントを残す

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