3Dモデル(STL)を読み込み表示する
3Dモデル(STL)を読み込んで表示させる場合に分かりにくい項目を列挙していく。
- ググってでてくるサンプルが古くて混乱する。8.4以前でのインボークノードSet Geometry相当が8.5以降だとSet Drawableに変更されている。
- 視点をマウスで動かす場合には、表示器の上で右クリック→カメラコントロール→球を選択。
以降随時更新
tdmsに画像を記録
tdmsに画像を記録する方法を考えてみた。内部的なファイルの添付はサポートされていないはずなので、LabVIEW画像データにパースしてから各種情報を生データとして書き込んだ。記録データと画像データを同一ファイルに残せるのが利点。課題はDIAdemで画像を表示できない点。マクロ駆使すれば可能なのかもしれないが・・・。
LabVIEW NXG 3.0 雑感
先々LabVIEW 20XXと一本化されるであろうLabVIEW NXGについて、3.0が出たのでお試ししてみた。以下ファーストインプレッション。
メリット
- ほぼ文法同じ。というかプログラムレスを盛んに宣伝してたけどExpressみたいに自動で生成するモードのことだったようでLabVIEW文法は健在。
- UIがフラット化されて、デザインしやすい。現状でもシルバーがゴテゴテなためクラシックUI+Tを主に使っているので◎。
- ブロックダイアグラムもわかりやすい。(エラー線がペーン下から上に上がったのは◎)
- ブロックダイアグラムに追加した項目が一時保留され、フロントパネル側に切り替えたのちに配置場所を決定できる(逆も然)。
- 日本語版では切りすてられた64bit化が実現。
- アプリケーションビルダもかなりモダンになっている。
デメリット
- 重い。基本機能以外の機能の対応も待たれる。
- UIの細かいプロパティノードをいじるのは面倒そう。
- パレット分類が結構変わってるのでなれるまで時間かかりそう。
リングバッファ/循環バッファ
DAQmxなどで取得した波形をまとめて長さを変えた上で処理したい場合は多々あると思うが、標準関数ではなかなか良い方法が思い浮かばない。そんな時には循環バッファを使うと良い。
Software Circular Buffer in LabVIEWSoftware Circular Buffer in LabVIEW - National Instruments
上段ループでDAQmxで読み取った波形をバッファに書き込み、下段ループで指定長分の直近値を読み込んでいる。
FFTのオーバーラップなどにも威力を発揮しそう。機能的グローバル変数で渡してるので複数使えないのと、結線がないため判りにくいのが難点。
マウスホイールでトリガ
計測PCからはなれた場所から計測開始トリガをかけるテクニック。ペーン上でホイールマウスのホイール(button3)がクリックされるのをイベントストラクチャで処理する。もちろんはハードウェア的にDIモジュールに何らかのボタンを接続してもよいが、ワイヤレスマウスを活用すれば非常に簡便である。下図ではBeepを鳴らしているが、実際は計測開始キューなどに割り当てると良い。
パネルアップデート更新を切り替えて高速化
UIの使いやすさ向上のためにプロパティノード変更を多用するとVIが非常に重くなるが、フロントパネル更新を一度Offしプロパティノードを変更してから再度更新をONすると、見掛けの変更にかかる処理が省かれるため一気に高速化することが多々ある。VBAでいうところのApplication.ScreenUpdating切替みたいなものです。
OFF処理
ON処理
ブール値が反転してるだけなのにわざわざ別名VIにしていのは、見た目でON/OFFを間違わないためです。エラーワイヤの入り口と出口に接続して使用する。
用例