こんにちは。マーケティングGの野﨑です。
今回は「カスタムプロパティ2_ラベラーの作成」についてご説明いたします。
デモンストレーションモデルを作成する際に活用して頂けたらと思います。
作り方は簡単なので、あまりスクリプトは触らない方も「こういう風に作られてるんだ」と思って頂ければ幸いです。
設計
実装前にロジックを考えます。私の考えたロジックは以下の通りです。
- ロードとセンサーが接触(OnBlocked処理)
- ロードを一時停止
- ラベルデータのクローンを作成
- ラベルをロードの上に移動
- ラベルをロードと一緒に動かす
- ロードの一時停止を解除
設計は論理的思考が大切です。私もまだ至らないところはありますが、順序立てて考えることが出来るように慣れていくしかないので日進月歩の精神で頑張りましょう。
カタログの配置
まずはカタログを配置します。
- SampleCatalog > BeltConveyor > Belt 2000x607
- SampleCatalog > Sensors > Sensor
- 新規 > Basic > LoadCreator (シーン右クリックから)
- ラベルとして貼り付ける画像データ
1.Blockedイベントに処理を追加
イベントウィンドウ(デフォルトでは左下、プロパティウィンドウのタブ)の「OnBlocked」から「New Script..」を選択すると、スクリプトの画面が表示され、OnBlockedのファンクションが追加されていると思います。
OnBlockedはセンサーとロードが接触した時に発生するイベントです。(このファンクションの中に書き込んだことのみ発生します)
2.ロードを一時停止
接触したロードを一時停止するプロパティの一つにKinematicがありますのでこちらを利用していきます。
センサーが設置されているコンベアのモーターを停止する方法もありますが、相違点はセンサーと接触したロードのみが停止するか(Kinematic)、コンベアにある全てのロードが停止するか(MotorOff)になります。
Kinematicを利用すると後続のロードが接触しても押し出されることはありませんが、MotorOffの場合は後続のロードに押し出されて思わぬ事態が起こってしまうこともあり得ます。
そのため今回はKinematicを利用していきます。
コード:load.Kinematic = true;
3.ラベルデータのクローンを作成
ラベルデータを参照するVisualプロパティが必要ですので、Homeタブ「EditCustomProperties」から作成します。
今回は「ImageData」という名前にします。TypeはVisualを指定します。
作成後にOK押下でオレンジ色の球が作成され、参照が可能になりますので、ラベルを接続します。
コード:var NewLavel : Visual = sender.ImageData.Clone();
4.ラベルをロードの上に移動
移動はWorldLocationの値を変更させてます。X,Y,Zそれぞれを変更させる必要があるので、個別にコードを記述します。
Y軸のコードを解説すると、WorldLocatioinはオブジェクトの中心の座標になりますのでY軸を調整してロードの頂上になるようにします。そのためにはロードのHeight(高さ)の半分をWorldLocationYに足すことにより頂上を設定できます。
最後の0.01は、ぴったりに指定すると埋まってしまいますので少し浮かしています。
コード:
NewLavel.WorldLocationX = load.WorldLocationX;
NewLavel.WorldLocationY = load.WorldLocationY + load.Height/2 + 0.01;
NewLavel.WorldLocationZ = load.WorldLocationZ;
5. ラベルをロードと一緒に動かす
Demo3Dで複数のオブジェクトを同時に動かす場合はグループ化と親子関係の構築と二種類ありますが、グループ化は複数のオブジェクトをまとめて1つのオブジェクトにします。
そのためオブジェクトの階層構造が変わってしまい、ややこしくなりますので基本的に親子関係を構築します。
コード:NewLavel.Reparent(load);
6.ロードの一時停止を解除
解除はKinematicのBool値を変更することにより可能です。
コード:load.Kinematic = false;
さいごに
ImageDataさえ変更すれば自社のロゴやその他伝票など貼り付けることが出来ますので活用ください。
3DCADデータをインポートして重ねれば見た目も良くなりますので、データをお持ちの方はインポートしてみてください。
モデルのダウンロード → BlogTestModel02_Laveler.zip(.demo3d)
今年もロジスティクスソリューションフェアに参加致します。是非ご来場ください。
会期:2017年8月29日(火)~30日(水) 10:00~17:00
会場:東京ビッグサイト (小間)027
次回の火曜は「3DCADデータの軽量化方法」について紹介致します。
コメントをお書きください