401.プリビュー機能追加
VB.NETで新しく作り始めたPDFソフト
形ができてきました。
少しいいことありましたよ。
以前から追加したいと思っていた機能の1つ
プリビュー機能が実用化できそうです。
目的は主に
層やオプションの設定ミスを未然に防ぐためです。
基板の特徴は層が多くなりがち。
両面基板でも10層分ぐらいあることも。
リストアップしてみると
1、部品面パターン
2、半田面パターン
3、部品面レジスト
4、半田面レジスト
5、部品面シルク
6、半田面シルク
7、部品面マスク
8、半田面マスク
9、外形枠
これに穴加工図で
10層。
数が多い。
ただ層を押すだけなら間違わないけれど
その層に応じたオプションが必要。
たとえば
パターン図には穴表示があったほうが良いけれど
シルク図やメタル層は穴表示が無いほうがよい
半田面側の図はミラーをかけるとか。
各層に応じてオプションを使い分けるときが
よくあります。
そういった細かいところで間違うことが
多いです。
間違いとわかるのは
各層のPDFファイルを一つのファイルにまとめ
最後に見直ししている時。
その段階で、もう一度最初から出力し直し。
振り出しにもどって
同じような作業を、やり直すのは
とてもテンションが下がる。
無駄の原因が自分なだけに
自身のやる気をもりさげる
出力を数秒速くできたとしても
そもそも間違っていたら
数分かかってしまう。
出力する、その前に
プリビューで確認できれば
後戻りは大幅に減らせるはずだ!ということから
是非実装したい機能でした。
過去にEXCELVBAでそのプリビューのような
ことが出来るか試作してみたことがありました
EXCELでDREAMCADプリビュー
原点は左上なので図は逆転していますが
表示できることはできました。
EXCELさえもっていればCAD画面を表示できるという点では
可能性に驚いたものですが
問題点が一つ。
表示が遅い。 しかもシングルスレッドのため
表示をする分、PDFを出力する速度も
遅くなってしまうのが問題。
結局、プリビューはあきらめました。
今回新しく作ることもあり
なんとかならないかとVB.NETの本を調べていたら
マルチスレッドの使い方をみつけました。
出力に1コア
プリビューをもう1コア
それぞれ並行させることで
速度も影響なく扱えるのでは?
という期待をいだき、再度試してみました。
結果はどうなったかと言うと
さすが、マルチコア!
i5のCPUですが
実用に耐える速度で表示されました。
いつものサンプルデータ程度なら
チェックを押す速さに追従しました。
まだ速度は改善できる余地はあり。
プリビュー画面サイズの解像度で
埋もれてしまうような微細な部分の
計算を合理化すれば
改善できるだろう。
辞書でしらべ翻訳していくような感じで
コードを入力していくのが苦痛でしたが
プリビューのように目に見えてくると
動いているという実感が
わき、がぜんやる気が沸いてきました。
|