2010年11月20日土曜日

ダクト配管と恒星原板作成

どうも、3週間ほどご無沙汰していたQです、こんちには。

別にサボってたわけじゃなくて、プログラム書いたりアルミをゴリゴリしたりしてました。 新しく恒星原板を作る為に昔のプログラムを手直ししたりしてたわけです。

具体的には
星のデータから恒星原板用のデータを算出・出力するプログラム
算出されたデータを確認するプログラム
データをプロッタに送信し、プロットするプログラム
って感じです。

昔VBやVCで作ってたんですが、折角PyhtonとQtが使えるようになったのでそれらを試す機会としてもちょうど良かったし、データを確認するプログラムとプロットするプログラムは一つに統合したいと思っていたので。

さて、色々紆余曲折あって、特にプロッタとの通信とQtのスレッドプログラミング。結構ハマッた。まあおかげで使い方が分かったし、参考になるリファレンスやバグ情報なんかも手に入れたので、結果的にその内生かせる機会もあるだろう。

というわけでそろそろプラネタリウム作りの最大の苦行である原板作りに入ります。クリーンルームを完全に使える状態にしました。

空気清浄機とダクトで接続されたクリーンルーム(ブース?)

さてさて、どうなることやら。今回は、昔この辺でミスっていた、ていうのを避ける為にホットプレートとか洗浄機とかその他色々改良・交換してるので、昔よりももっとよく作れるんではないかと期待…したいところ。ともかく作ってみるしかない。まだまだやること目白押し。
原板作成が終わったらやっと折り返し地点ってところかもしれんな…



メモ
Qtでのマルチスレッド
あるウィンドウを作り、その中のメソッドで時間のかかる処理を行わせると、GUIの更新が止まってしまう。例えば、スタートボタンを作り、そのボタンを押すと時間のかかる処理が始まり、さらにスタートボタンをストップボタンが変わる、という風に素直に作ってしまうと、処理は始まるがスタートボタンがストップボタンにいつまでも変わらない。
これを防ぐ為には、この時間のかかる処理は別のスレッドを立て、その中で行わせる。そして例えばprogress barのように元のwindowのGUIを時々刻々と帰るような場合はQtの特徴であるsignal-slotを使う。