AGV.TraversalPoint
説明
AGVに予定されている「通過」についての情報から成る構造体です。
通過ポイントにアクセスするには、主にAGV.traversalPoints配列とAGV.allocationPoints配列を使用します。AGVのtraversalPoints配列は、AGV.TraversalPointの直接的なリストです。AGVのallocationPoints配列は、AGV.TraversalPointのサブクラスであるAGV.AllocationPointのリストです。そのため、AGV.TraversalPointのプロパティを含んでいます。
このクラスは、AGVによるロジック実行が予定されている、AGVの移動パス上のポイントを表します。AGVのtraversalPoints配列にはさまざまなタイプの通過ポイントがありますが、今回のFlexScript APIの目的では、AGV.AllocationPointのインスタンスである通過ポイントに限り、アクセス/操作を行う必要があります。この配列を通過するとき、このポイントが実際に割り当てポイントかどうかを必ずチェックし、割り当てポイントである場合にのみ、何かを実行する必要があります。
AGV agv = AGV(current);
for (int i = 1; i <= agv.traversalPoints.length; i++) {
AGV.TraversalPoint t = agv.traversalPoints[i];
if (t.is(AGV.AllocationPoint)) {
AGV.AllocationPoint allocPoint = t;
// ... perform some logic on the allocation point
}
}
AGV.allocationPoints配列が未割り当ての割り当てポイントのセットも含むのに対して、AGVのtraversalPoints配列は、AGVがすでに割り当て済みであるものの、割り当て解除を行っていない割り当てポイントを保持します。つまり、AGVの現時点での割り当てセットです。
割り当てポイントは、allocationPoints配列の一部として始まります。その後、この割り当てポイントと関連付けられたオブジェクトをAGVが実際に割り当てると、割り当てポイントはtraversalPointsリストに移動します。この時点で、この割り当てポイントのtraversalDistプロパティは、「割り当て解除距離」、つまり、AGVがオブジェクトを割り当て解除するときの移動距離として使用されます。
プロパティ
agv | この通過ポイントを所有するAGV。 |
traversalDist | この通過ポイントに関連付けられたロジックをAGVが実行するときのAGVの移動距離。 |
詳細
AGV.TraversalPoint.traversalDist
double traversalDist
説明
この通過ポイントに関連付けられたロジックをAGVが実行するときのAGVの移動距離。
通過ポイントがAGV.AllocationPointの場合、これは、割り当てられたオブジェクトが割り当て解除されるときの距離を示します。
このプロパティの値は設定可能ですが、AGVの移動オペレーションの定義された時間にのみ設定できます。具体的に言うと、OnBuildTravelPathイベントが起動された後(またはこのトリガーの一部として)、かつ、OnPreAllocateの前(またはその一部として)に設定する必要があります。その他の時間に設定する場合、動作は保証されません。なお、AGV.traversalPoints配列はtraversalDist値の順に並べ替えが行われるため、この値を設定した場合、この順序を維持するために、AGVのtraversalPoints配列内の通過ポイントのインデックスが変わる可能性があります。
割り当て解除のタイミングは、割り当て解除タイプなどの標準機能でかなりの程度まで制御できるため、一般に割り当てポイントのtraversalDistを変更する必要はありません。とはいえ、特殊な空間ジオメトリを持つAGVをシミュレーションするような特殊なケースでは、このプロパティの変更が役立つ場合があります。