水魚堂の回路図エディタの移り変わり
水魚堂の回路図エディタは2009年4月で15周年を迎えました。
これを機会にこれまでの移り変わりを振り返ってみました。
第1世代
回路図エディタCE(1994年〜)
回路図エディタCEはDOS/VとPC-9801シリーズのMS-DOS上で動作する回路図エディタです。
作り始めた動機はいろいろありますが、主なものは次のようなことでした。
- 仕事で使える回路図エディタが欲しい。(手書きしていました)
- 下間さんのBIDフォーマットに対応した回路図エディタがあるべきだ。
- Borland C++コンパイラを買った。
当時は今のように誰もが閲覧できる共通のフォーマットがあまりなかった時代です。
そんな時代に下間さんがBIDフォーマットという2値ビットマップイメージを提唱されていて、それを扱うためのBIDツールというソフトウェアツール群も配布されていました。BIDツールは今で言えばプリンタドライバとして動作するPDFライターと、ビューワをまとめたものです。BIDフォーマットとBIDツールは様々なアプリケーションソフトで作った図面をパソコン通信でやり取りするのに非常に便利だったのです。機械図面だとJW-CADがよく使われていましたが、回路図を作成する無償のソフトはあまりありませんでした。
はじめにNifty-Serveで発表し、その後PC-VANのSIG-ELEX(という板)で活動を行い、さまざまなアドバイスをいただきながら改版を行いました。
回路図エディタKE(1996年頃)
回路図エディタCEのユーザーインターフェースにはちょっと癖があり、すでに普及段階にあったWindowsには全く馴染まないものでした。また、私自身がWindowsのイベントドリブンなプログラムをなかなか飲み込めませんでした。
そのため、Windows版の回路図エディタの開発は、ユーザーインターフェースのデザインとプログラミングの知識の両面で難渋しました。
その過程で作ったのがKEです。回路図エディタとしては完成せず、CEで作ったデータのビューワに終わりました。
動作環境はWindows 3.1。コンパイラはBorland C++ 3.1ですが、CEと同様、 C++の機能は使っていなかったはずです。
第2世代
BSch(1997年〜)
回路図エディタCEとデータの互換性を持たせつつも、ユーザーインターフェースはWindowsの標準的なものに置き換えたものです。操作体系は現在のBSch3Vもこれをほとんど引き継いでいます。
最初のバージョンの開発環境はVisual C++ 4.0です。この頃から、ソースコードを公開するようになりました。
CEが機能面でやや複雑になってしまった反省から、自戒を込めてBasic Schematicと名付けました。
アイコンは「楓 色づいた」。ちょっとインチキですが、「回路図エディタ」のアナグラムです。
第3世代
Qt-BSch(2002年ごろ)
この時期、自宅ではデスクトップLinuxを使う時間が多くなっていたことから、BSchをLinuxに移植したいという気持ちが強くなっていました。
当初はX11を直接弄るようなことを考え、メニューだとかスクロールバーといった基本的な部品を作るところから始めていたのですが、なかなか大変で作業が進みませんでした。
書店で見つけたプログラミング本でQtを知り、これで作ったのがQt-BSchです。Qt-BSchを公開したのは2002年になってからですが、1年ぐらいは試行錯誤していたはずです。
データファイルはテキストファイルになり、柔軟に拡張できるようになりました。
その後、QtはMac版もリリースされて、それにともなって水魚堂でも(短い期間でしたが)Mac版のバイナリも作成して配布するようになりました。
BSch3(2004年)
Qt版で採用したテキストのデータファイルをWindows版に移植し、併せてライブラリデータも図面ファイルに収めるようにしました。
描画ルーチンはBSchを受けついでいますが、データ管理はQt-BSchから受け継ぎました。そのため、データ管理はMFCのドキュメントクラスの下にQt版で使っていたドキュメントクラスが収まる二重構造になっています。
BSch3V(2004年〜)
BSch3にベクトルデータのサポートを追加したのがBSch3Vです。ラベルやタグ、ピン番号やピン名などの小さい文字もWindowsの標準フォントを使うようになりました。(BSch3VをQt版に再移植したものが、Qt-BSch3Vです)
Windows版BSch3Vは、少しずつ拡張しながら現在に至ります。