Object
treenodeから継承します。
説明
モデルのオブジェクトを表すクラスです。
Objectはオブジェクトデータを持つツリーノードです。Objectにはツリーノードの機能がすべて備えられています。また、オブジェクトデータへのアクセス機能および3Dオブジェクトを操作する機能も設けられています。
プロパティ
animations | オブジェクトのアニメーションにアクセスします。 |
attrs | オブジェクトの属性ノードにアクセスします。 |
centerObjects | センターポート接続を通じて接続されるオブジェクトにアクセスします。 |
color | オブジェクトの色を取得および設定します。 |
flags | オブジェクトのフラグを取得および設定します。 |
inObjects | 入力ポート接続を通じて接続されるオブジェクトにアクセスします。 |
input | オブジェクトの入力ポート接続に対するメソッドにアクセスします。 |
location | オブジェクトの位置を取得および設定します。 |
outObjects | 出力ポート接続を通じて接続されるオブジェクトにアクセスします。 |
output | オブジェクトの出力ポート接続に対するメソッドにアクセスします。 |
resetPosition | オブジェクトのリセット位置にアクセスします。 |
rotation | オブジェクトの回転を取得および設定します。 |
size | オブジェクトのサイズを取得および設定します。 |
stats | オブジェクトの統計が利用可能になります。 |
stopCount | オブジェクトの停止回数を取得します。 |
メソッド
applyProperties | テンプレートインスタンスとオーバーライドへのプロパティ変更をコミットします。 |
getLocation | オブジェクトの場所を取得します。 |
getProperty | オブジェクトのプロパティ値を取得します。 |
getVariable | 廃止されました。getProperty()を使用してください。オブジェクトの変数の値を取得します。 |
message | オブジェクトへメッセージを送ります。 |
resume | オブジェクトをstop()実行前の状態に戻します。 |
setLocation | オブジェクトの場所を設定します。 |
setProperty | オブジェクトのプロパティ値を設定します。 |
setRotation | オブジェクトの回転を設定します。 |
setSize | オブジェクトのサイズを設定します。 |
setState | オブジェクトの状態を設定します。 |
setVariable | 廃止されました。setProperty()を使用してください。オブジェクトの変数の値を設定します。 |
stop | オブジェクトを停止してその状態を設定してから、resume()を待ちます。 |
詳細
Object.attrs
readonly attrs
説明
オブジェクトの属性ノードにアクセスします。
Object obj = Model.find("Processor1");
obj.attrs.spatialx.value = 5;
Object.centerObjects
readonly centerObjects
説明
センターポート接続を通じて接続されるオブジェクトにアクセスします。
センターポート接続数へのアクセス
次のコードを使用して、オブジェクトのセンターポート接続数にアクセスできます。
obj.centerObjects.length
ランクによるオブジェクトへのアクセス
次のコードを使用して、センターポート接続を通じて接続される個々のオブジェクトに、ランクごとにアクセスできます。
obj.centerObjects[1] // first object
obj.centerObjects[obj.centerObjects.length] // last object
obj.centerObjects[i] // i-th object
オブジェクトの配列を取得
次のコードを使用して、センターポート接続を通じて接続されるすべてのオブジェクトの配列を取得できます。
Array centerObjects = obj.centerObjects.toArray();
Object.flags
readonly flags
説明
オブジェクトのフラグを取得および設定します。
isProtected
オブジェクトの「保護済み」フラグを取得または設定します。
オブジェクトを保護すると、マウスで移動、回転、サイズ変更できなくなりますが、ダブルクリックしてオブジェクトの[パラメータ]ウィンドウにアクセスすることはできます。ビューウィンドウにはviewignoreobjectsという名前の属性があり、ビュー内のすべてのオブジェクトを無視するため使用できます。この場合、ダブルクリックも含めてどのような方法でも、マウスでオブジェクトを操作できなくなります。保護されていることを示すために、保護済みオブジェクトはツリービューで灰色に強調表示されます。
current.flags.isProtected = 1;
isSelected
オブジェクトの「選択済み」フラグを取得または設定します。
オブジェクトを選択すると、3Dおよびツリービューの両方でそのオブジェクトが赤い枠で囲まれます。3Dビュー内で選択済みオブジェクトの1つをドラッグすると、すべての選択済みオブジェクトが同じだけドラッグされます。[選択したオブジェクトを編集]ツールを使用することで、モデル内のすべての選択済みオブジェクトを素早く変更できます。
if(current.flags.isSelected) return 1;
showConnections
オブジェクトの「接続を表示」フラグを取得または設定します。
接続を非表示にすると、オブジェクトへの入力と出力の両方について、ポートおよび接続の表示がオフになります。ビューウィンドウにはhideallconnectorsという名前の属性があり、ビュー内のすべてのオブジェクトについてコネクターの表示をコントロールすることに注意してください。
obj.flags.showConnections = 0;
showContent
オブジェクトの「コンテンツを表示」フラグを取得または設定します。
オブジェクトのコンテンツを非表示にすると、その中に含まれているオブジェクト(例:フローアイテム)が表示されなくなります。
current.flags.showContent = 0;
showName
オブジェクトの「名前を表示」フラグを取得または設定します。
値が1なら、オブジェクトの名前と統計情報を画面に表示しません。値が0なら、ビューウィンドウのviewhidealllabels属性に応じて、オブジェクトの名前と、多くの場合は統計情報を表示します。ビューウィンドウのviewhidealllabels属性は次の値のいずれかで、ウィンドウ内のすべてのオブジェクトについてラベル表示に適用されます。0=名前と統計情報を表示、1=名前と統計情報を非表示、2=名前のみを表示。
obj.flags.showName = 1;
showShape
オブジェクトの「形状を表示」フラグを取得または設定します。
オブジェクトの形状を非表示にすると、3D形状の描画が停止します。ビューウィンドウにはhidealldrawcontentという名前の属性もあり、ビュー内のすべてのオブジェクトについて3D形状の表示をコントロールすることに注意してください。
current.flags.showShape = 0;
Object.inObjects
readonly inObjects
説明
入力ポート接続を通じて接続されるオブジェクトにアクセスします。
centerObjectsプロパティと同様ですが、入力ポート接続を通じる点が異なります。
Object.input
readonly input
説明
オブジェクトの入力ポート接続に対するメソッドにアクセスします。
close
オブジェクトの入力をブロックします。エントリをブロックするには、入力ポート自体、または一般的な入力のみを閉じる必要があります。ポート接続がビューウィンドウに十分なサイズで表示されているとき、オブジェクトの入力ポート(正方形)すべてにわたって小さな赤色のバーが描画され、入力ポートがブロックされていることを示します。個別のポートを開くことはでき、開いているポートは緑色で表示されますが、赤いバーのためにオブジェクトへの進入はブロックされます。stop()と比較してください。
current.input.close();
open
close()メソッドによって以前ブロックされたオブジェクトの入力をブロック解除します。進入を許可する前に、入力ポート自体と入力全般を開く必要があります。モデラーは、senddelayedmessage()コマンドによりトリガーされたOnMessageフィールドを除いて、いかなるフィールドでもこのメソッドを使用しないことをお勧めします。これは、ポートを開くコマンドは多くの場合、トランジションイベントで行うべきでない複数の他の動作を引き起こすためです。resume()と比較してください。
current.input.open();
resume
open()と同様にオブジェクトの入力を開きますが、オブジェクトに対して呼び出された以前のstop()の記録を保持しているため、すべての停止が再開された後でのみ入力を開きます。詳細については、open()を参照してください。
current.input.resume();
stop
close()と同様にオブジェクトの入力を閉じますが、オブジェクトに対して呼び出された連続したstop()の記録を保持しているため、すべての停止が再開された後でのみ入力を開きます。詳細については、close()を参照してください。
current.input.stop();
Object.outObjects
readonly outObjects
説明
出力ポート接続を通じて接続されるオブジェクトにアクセスします。
centerObjectsプロパティと同様ですが、出力ポート接続を通じる点が異なります。
Object.resetPosition
readonly resetPosition
説明
オブジェクトのリセット位置にアクセスします。
オブジェクトのリセット位置にアクセスできるようになります。このプロパティは、オブジェクトのリセット位置が設定されているかを判断するために直接読み取ることができます。
このプロパティは、次のプロパティおよびメソッドを提供します。
location - オブジェクトのリセット位置の場所を返します
rotation - オブジェクトのリセット位置の回転を返します
size - オブジェクトのリセット位置のサイズを返します
container - オブジェクトのリセット位置コンテナを返します
set() - オブジェクトのリセット位置を現在の場所、回転、サイズ、およびコンテナに設定します。
clear() - オブジェクトのリセット位置をクリアします。
Object obj = Model.find("Processor1");
if (obj.resetPosition) //Checks to see if its reset positon has been set
return obj.resetPosition.location;// gets the location value of the reset position
else{
obj.resetPosition.set();// set the reset postion on the object
return obj.resetPosition.location; // gets the location value of the reset position
}
Object.stats
readonly stats
説明
オブジェクトの統計が利用可能になります。
TrackedVariableオブジェクトとしてのオブジェクトの統計が利用可能になります。このプロパティは、次のプロパティおよびメソッドを提供します。
input - 入力追跡変数を返します
output - 出力追跡変数を返します
content - 容量追跡変数を返します
staytime - 滞在時間追跡変数を返します
totalTravelDistance - タスク実行者の合計移動距離を返します
state(Variant& profile = nullvar) - 状態追跡変数を返します。プロファイルの引数が指定されていない、もしくは0の場合、デフォルトの状態プロファイルが返されます。他の状態プロファイルは、プロファイル番号またはプロファイル名を提供することで返されます。
// Get the input of a processor
Object obj = Model.find("Processor1");
double input = obj.stats.input.value;
// Get the state of a multiprocessor,
// using the multiprocessor state profile
Object obj = Model.find("MultiProcessor1");
int curState = obj.stats.state(1).value;
Object.applyProperties()
void applyProperties( string propertyName = "" ) |
パラメータ
propertyName | オプション。変更された特定のプロパティの名前。各オブジェクトについての有効なプロパティの一覧は、オブジェクトのヘルプページにあります。たとえば、「固定リソースのプロパティ」を参照してください。 |
戻り値
void |
説明
テンプレートインスタンスとオーバーライドへのプロパティ変更をコミットします。
このメソッドは、オブジェクトがテンプレートインスタンスであるか、テンプレートインスタンスを保有している場合のみ効果があります。オブジェクトのプロパティを直接変更した後で、テンプレートインスタンスやオーバーライドに変更を適用するために呼び出します。
このメソッド呼び出しは、渡される名前付きプロパティに影響し、何も渡されない場合はオブジェクトのすべてのプロパティに影響します。該当するプロパティに次の操作が行われます。
- オーバーライドの追加 - オブジェクトがテンプレートインスタンスの場合、オブジェクトのプロパティの値がオブジェクトのテンプレートの値と異なるかどうかをチェックします。異なる場合、そのプロパティをオーバーライドとしてアサートします。
- 継承インスタンスへの適用 - オブジェクトがテンプレートインスタンスを保有している場合、そのプロパティをオーバーライドしないすべてのテンプレートインスタンスに、同じプロパティ値を設定します。
setProperty()を使用してオブジェクトのプロパティを設定するときは、このメソッドを呼び出す必要はないことに注意してください。このメソッドは、applyProperties()を自動的に呼び出します。このメソッドを使用する必要があるのは、他の機構によってオブジェクトのプロパティを変更したときだけです。
queue.size.x = 5;
queue.applyProperties("Size");
上の例は、applyProperties()を呼び出す必要がある場合を示すものです。ここでは、setProperty()の代わりにObject.sizeを使用してオブジェクトのサイズを変更しています。このため、新しいプロパティ値が継承テンプレートインスタンスやオーバーライドに適用されるよう、applyProperties()を呼び出す必要があります。
Object.getLocation()
Vec3 getLocation( double xFactor , double yFactor , double zFactor ) |
Vec3 getLocation( Vec3 factors ) |
パラメータ
xFactor | オブジェクト上で、位置が測定されるポイントのx値。オブジェクトのサイズに対する割合(0~1)として測定されます。 |
yFactor | オブジェクト上で、位置が測定されるポイントのy値。オブジェクトのサイズに対する割合(0~1)として測定されます。 |
zFactor | オブジェクト上で、位置が測定されるポイントのz値。オブジェクトのサイズに対する割合(0~1)として測定されます。 |
factors | オブジェクト上で、位置が測定されるポイントを表すベクトル。オブジェクトのサイズに対する割合(0~1)として測定されます。 |
戻り値
Vec3 | オブジェクトの場所を保持するベクトルです。 |
説明
オブジェクトの場所を取得します。
このコードは、オブジェクトの中心で測定した場所を取得します。
Vec3 centerLoc = obj.getLocation(0.5,0.5,0.5);
Vec3 centerLoc = obj.getLocation(Vec3(0.5,0.5,0.5));
Object.getProperty()
Variant getProperty( string propertyName ) |
パラメータ
propertyName | プロパティの名前。各オブジェクトについての有効なプロパティの一覧は、オブジェクトのヘルプページにあります。たとえば、「固定リソースのプロパティ」を参照してください。 |
戻り値
Variant |
説明
オブジェクトのプロパティ値を取得します。
次のコードは、オブジェクトのMaxContentプロパティの値を取得します。
int maxContent = queue.getProperty("MaxContent");
Object.getVariable()
Variant getVariable( string variableName ) |
パラメータ
variableName | 変数名 |
戻り値
Variant | 指定された変数の値。 |
説明
廃止されました。getProperty()を使用してください。オブジェクトの変数の値を取得します。
次のコードは、オブジェクトのmaxspeed変数の値を取得します。
double speed = obj.getVariable("maxspeed");
Object.message()
Variant message( double delay = 0 , treenode fromObject = 0 , Variant msgparam1 = nullvar , Variant msgparam2 = nullvar , Variant msgparam3 = nullvar ) |
パラメータ
delay | オプション。メッセージ実行までの遅延時間を指定します。-1の場合、メッセージは同時に送られます。0以上の場合、定義した遅延時間のイベントが作成されて、その遅延時間後にメッセージが実行されます。 |
fromObject | オプション。メッセージを送っているオブジェクト。メッセージトリガーからアクセスできます。 |
msgparam1 | オプション。メッセージの最初のパラメータを定義します。メッセージトリガーからmsgparam1としてアクセスできます。 |
msgparam2 | オプション。メッセージの2番目のパラメータを定義します。メッセージトリガーからmsgparam2としてアクセスできます。 |
msgparam3 | オプション。メッセージの3番目のパラメータを定義します。メッセージトリガーからmsgparam3としてアクセスできます。 |
戻り値
Variant | メッセージが同時に送られた場合(delay = -1)、オブジェクトのメッセージトリガによる戻り値を返します。メッセージが非同時で送られた場合(delay >= 0)、呼び出しによってイベントリストに作成されたイベントノードへの参照が返されます。 |
説明
オブジェクトへメッセージを送ります。
以下の例では、delay 0秒、メッセージのfromObjectとしてのitemを持つメッセージがcurrentに送信されています。
current.message(0, item);
Object.setLocation()
Object setLocation( double x , double y , double z ) |
Object setLocation( double x , double y , double z , double xFactor , double yFactor , double zFactor ) |
Object setLocation( Vec3 location , Vec3 factors ) |
パラメータ
x | 目的とするxの位置。 |
y | 目的とするyの位置。 |
z | 目的とするzの位置。 |
xFactor | オブジェクト上で、位置が測定されるポイントのx値。オブジェクトのサイズに対する割合(0~1)として測定されます。 |
yFactor | オブジェクト上で、位置が測定されるポイントのy値。オブジェクトのサイズに対する割合(0~1)として測定されます。 |
zFactor | オブジェクト上で、位置が測定されるポイントのz値。オブジェクトのサイズに対する割合(0~1)として測定されます。 |
location | 目的とする位置を保持するベクトル。 |
factors | オブジェクト上で、位置が測定されるポイントを表すベクトル。オブジェクトのサイズに対する割合(0~1)として測定されます。 |
戻り値
Object | 平行移動したオブジェクト。 |
説明
オブジェクトの場所を設定します。
このコードはオブジェクトの中心を位置(0,0,0)に設定します。
obj.setLocation(0,0,0,0.5,0.5,0.5);
obj.setLocation(Vec3(0,0,0), Vec3(0.5,0.5,0.5));
Object.setProperty()
void setProperty( string propertyName , Variant value ) |
パラメータ
propertyName | プロパティの名前。各オブジェクトについての有効なプロパティの一覧は、オブジェクトのヘルプページにあります。たとえば、「固定リソースのプロパティ」を参照してください。 |
value | 目的とするプロパティの値です。 |
戻り値
void |
説明
オブジェクトのプロパティ値を設定します。
このメソッドがイベントを処理するモデルの一部として呼び出された場合、オブジェクトはプロパティの元の値を格納し、その値はモデルがリセットされた際に復元されます。
プロパティの値を設定してから、このメソッドは該当のプロパティについてapplyProperties()を呼び出し、テンプレートインスタンスやオーバーライドに変更を適用します。
queue.setProperty("MaxContent", 5);
Object.setState()
void setState( int state , int stateProfile ) |
パラメータ
state | 目的とする状態。 |
stateProfile | 目的とする状態プロファイル。 |
戻り値
void |
説明
オブジェクトの状態を設定します。
オブジェクトの状態を状態番号に設定します。このメソッドが呼び出された場合、状態に関する統計は自動で更新されます。50個の状態が定義済みです。状態に対して定義済みの値およびその関連マクロは次のとおりです。1 - STATE_IDLE
2 - STATE_PROCESSING
3 - STATE_BUSY
4 - STATE_BLOCKED
5 - STATE_GENERATING
6 - STATE_EMPTY
7 - STATE_COLLECTING
8 - STATE_RELEASING
9 - STATE_WAITING_FOR_OPERATOR
10 - STATE_WAITING_FOR_TRANSPORT
11 - STATE_BREAKDOWN
12 - STATE_SCHEDULED_DOWN
13 - STATE_CONVEYING
14 - STATE_TRAVEL_EMPTY
15 - STATE_TRAVEL_LOADED
16 - STATE_OFFSET_TRAVEL_EMPTY
17 - STATE_OFFSET_TRAVEL_LOADED
18 - STATE_LOADING
19 - STATE_UNLOADING
20 - STATE_DOWN
21 - STATE_SETUP
22 - STATE_UTILIZE
23 - STATE_FULL
24 - STATE_NOT_EMPTY
25 - STATE_FILLING
26 - STATE_STARVED
27 - STATE_MIXING
28 - STATE_FLOWING
29 - STATE_ALLOCATED_IDLE
30 - STATE_OFF_SHIFT
31 - STATE_CHANGE_OVER
32 - STATE_REPAIR
33 - STATE_MAINTENANCE
34 - STATE_LUNCH
35 - STATE_ON_BREAK
36 - STATE_SUSPEND
37 - STATE_AVAILABLE
38 - STATE_PREPROCESSING
39 - STATE_POSTPROCESSING
40 - STATE_INSPECTING
41 - STATE_OPERATING
42 - STATE_STANDBY
43 - STATE_PURGING
44 - STATE_CLEANING
45 - STATE_ACCELERATING
46 - STATE_MAXSPEED
47 - STATE_DECELERATING
48 - STATE_STOPPED
49 - STATE_WAITING
50 - STATE_ACCUMULATING
if (current.subnodes.length <= 1)
current.setState(STATE_EMPTY);
このコードは、currentのコンテンツが1未満または1に等しい場合、currentに参照されるオブジェクトの状態を「empty」に設定します。
Object.setVariable()
void setVariable( string variableName , Variant value ) |
パラメータ
variableName | 変数名。 |
value | 目的とする変数値。 |
戻り値
void |
説明
廃止されました。setProperty()を使用してください。オブジェクトの変数の値を設定します。
このメソッドがイベントを処理するモデルの一部として呼び出された場合、オブジェクトは変数の元の値を格納し、その値はモデルがリセットされた際に復元されます。
obj.setVariable("maxspeed", 5);
Object.stop()
void stop( int state , int id , int priority , int stateProfile ) |
パラメータ
state | オブジェクトの次の状態。 |
id | オプション。停止リクエストを再開リクエストと照合する際に使用します。 |
priority | オプション。stop()呼び出し間のつながりを断つ際に使用します。 |
stateProfile | オプション。状態を記録する状態プロファイル。 |
戻り値
void |
説明
オブジェクトを停止してその状態を設定してから、resume()を待ちます。
オブジェクトに対して、現在行っている動作を停止し、指定された状態に移行して(指定されているなら状態プロファイルの状態に)、resume()が呼び出されるまで待つように通知します。stop()呼び出しは累積されます。すなわち、同じオブジェクトに対してstop()が2回呼び出されると、そのオブジェクトはresume()が同様に2回呼び出されるまで動作を再開しません。オブジェクトの停止は停止するオブジェクトのタイプにより異なります。
FixedResourceの場合、一般にイベントが無期限に遅延され、入力と出力が停止され、オブジェクトへ、およびオブジェクトからのあらゆる動作は停止されます。このため、TaskExecuterがオブジェクトへのロードやオブジェクトからのアンロードを試みるには、オブジェクトの再開まで待機する必要があります。
TaskExecuterの場合、イベントは遅延されませんが、TaskExecuter用に優先度100,000のプリエンプトのタスクシーケンスが作成され、その中に1つのTE_STOPタスクが含まれます。
同じオブジェクトに複数の停止リクエストが存在する場合、それぞれの停止リクエストの状態は記憶されないことに注意してください。オブジェクトがエンティティAにより状態12での停止を要求され、その後でエンティティBにより状態14での停止を要求された場合、オブジェクトは状態14に移行し、状態12は記憶されません。エンティティBがエンティティAより前にオブジェクトを再開させても、オブジェクトはすべての停止リクエストが再開されるまで状態14に維持されます。
パラメータidとpriorityはオプションで、前の段落に記載された問題を修正するために最近追加されたものです。これらのパラメータが指定されると、要求された停止の回数を増やすだけでなく、停止リクエストのレコードが保存されます。idは停止リクエストのキーと同様に扱われます。priorityは、オブジェクトが停止リクエストを優先度付けするために使用されます。たとえば、スケジュールされた停止状態用の停止リクエストと、故障状態用の停止リクエストが存在する場合、オブジェクトは理論的には同時に2つの状態に置かれるべきですが、FlexSimのオブジェクトは同時に1つの状態しかとれないため、priorityの値で判断され、priorityが最も高い停止リクエストの状態に移行します。
id値は、後でresume()呼び出しに追加されるid値と一致する必要があります。この値は、停止リクエストと、対応する再開リクエストを一致するために使用されます。たとえば、オブジェクトをスケジュールされた保守のため、id値1で停止した場合、スケジュールされた保守が完了したら、同じ1のid値でオブジェクトを再開する必要があります。
current.stop(STATE_CLEANING, 1);