カテゴリごとのコマンド
AGV
説明
AGVにイベントリスナーを追加する
例
agvaddlistener(agv, c, AGV_LISTEN_PRE_ARRIVAL);
説明
廃止されました。AGVクラスを使用してください。
パラメータに応じて、AGVについての各種の情報を取得します。
AGV_CURRENT_CP - AGVの現在のコントロールポイントを返します。
AGV_ORIGIN_CP - AGVの元のコントロールポイントを返します。
AGV_INTERMEDIATE_DEST_CP - AGVの中間目的地コントロールポイントを返します。
AGV_DEST_CP - AGV_INTERMEDIATE_DEST_CPと同じです。
AGV_FINAL_DEST_CP - AGVの最終目的地のコントロールポイントを返します。
AGV_DEST - AGVの目的地オブジェクトを返します。
AGV_BATTERY_LEVEL - AGVの現在のバッテリーレベルをバッテリー容量のパーセンテージ(0~100)で返します。
AGV_AMP_HOURS - AGVの現在のバッテリーレベルをアンペア時で返します。
AGV_START_RECHARGE - AGVの再充電を開始します。最大容量まで再充電するため必要な時間を返します。
AGV_RECHARGE_TO_LEVEL - AGVのバッテリーレベルをp1(0~100)に明示的に設定します。
AGV_ADD_ALLOC_POINT - 移動初期化トリガーから呼び出します。割り当てのコントロールポイント/コントロールエリアを手動で割り当てます。これらは、AGVの現在の移動パスの一部として割り当てる必要がないコントロールポイント/コントロールエリアです。コントロールポイント/コントロールエリアはp1として渡され、どの距離で割り当てる必要があるかがp2として渡されます。このコマンドは、その割り当てを表すノードへの参照を返します。その割り当てポイントについてさらにデータを指定するには、AGV_SET_ALLOC_POINT_DEALLOC_DISTとAGV_SET_CAN_STOP_AT_ALLOC_POINTを使用します。
AGV_SET_ALLOC_POINT_DEALLOC_DIST - 追加された手動の割り当てポイントについて、AGVがオブジェクトを割り当て解除できる移動距離を設定します。オブジェクトが正しく割り当て解除されるよう、割り当ての追加後にいずれかの時点でこのコマンドを呼び出します。p1はAGV_ADD_ALLOC_POINTにより返される割り当てポイントノードへの参照、p2は割り当て解除距離です。
AGV_SET_CAN_STOP_AT_ALLOC_POINT - AGVが、手動で追加された割り当てポイントで停止可能かどうかを設定します。デフォルトはnoで、AGVは停止距離では停止せず、オブジェクトの割り当てを試みる前に次の停止可能なポイントまで続行します。これを1に設定すると、AGVは手動の割り当てポイントで停止し、先の割り当てを行います。p1はAGV_ADD_ALLOC_POINTにより返される割り当てポイントノードへの参照、p2は1または0です。
AGV_ATTACH_TRAILER - AGVに手動でトレーラーを追加します。p1は追加するオブジェクト、p2は適用するトレーラーギャップです。p3が1の場合はトレーラーがAGVの後ろ(AGVの末尾)に追加され、0の場合はトレーラーがAGVの前(AGVの先頭)に追加されます。p4が1の場合、オブジェクトがAGVから出るときにトレーラーが自動的にデタッチされ、0の場合、トレーラーのデタッチは手動で行います。
AGV_DETACH_TRAILER - AGVからトレーラーを手動でデタッチします。p1は、トレーラーとして追加されているオブジェクトです。
AGV_SPEED - AGVの現在の速度を返します。
AGV_PROXIMITY_STATE - AGVが累積パスの近接性によりブロックされている場合は1を、そうでない場合は0を返します。
AGV_ACCUM_AHEAD_AGV - 累積パスで、このAGVの前に別のAGVが存在する場合、そのAGVを返します。
パラメータに応じて、AGVについての各種の情報を取得します。
AGV_CURRENT_CP - AGVの現在のコントロールポイントを返します。
AGV_ORIGIN_CP - AGVの元のコントロールポイントを返します。
AGV_INTERMEDIATE_DEST_CP - AGVの中間目的地コントロールポイントを返します。
AGV_DEST_CP - AGV_INTERMEDIATE_DEST_CPと同じです。
AGV_FINAL_DEST_CP - AGVの最終目的地のコントロールポイントを返します。
AGV_DEST - AGVの目的地オブジェクトを返します。
AGV_BATTERY_LEVEL - AGVの現在のバッテリーレベルをバッテリー容量のパーセンテージ(0~100)で返します。
AGV_AMP_HOURS - AGVの現在のバッテリーレベルをアンペア時で返します。
AGV_START_RECHARGE - AGVの再充電を開始します。最大容量まで再充電するため必要な時間を返します。
AGV_RECHARGE_TO_LEVEL - AGVのバッテリーレベルをp1(0~100)に明示的に設定します。
AGV_ADD_ALLOC_POINT - 移動初期化トリガーから呼び出します。割り当てのコントロールポイント/コントロールエリアを手動で割り当てます。これらは、AGVの現在の移動パスの一部として割り当てる必要がないコントロールポイント/コントロールエリアです。コントロールポイント/コントロールエリアはp1として渡され、どの距離で割り当てる必要があるかがp2として渡されます。このコマンドは、その割り当てを表すノードへの参照を返します。その割り当てポイントについてさらにデータを指定するには、AGV_SET_ALLOC_POINT_DEALLOC_DISTとAGV_SET_CAN_STOP_AT_ALLOC_POINTを使用します。
AGV_SET_ALLOC_POINT_DEALLOC_DIST - 追加された手動の割り当てポイントについて、AGVがオブジェクトを割り当て解除できる移動距離を設定します。オブジェクトが正しく割り当て解除されるよう、割り当ての追加後にいずれかの時点でこのコマンドを呼び出します。p1はAGV_ADD_ALLOC_POINTにより返される割り当てポイントノードへの参照、p2は割り当て解除距離です。
AGV_SET_CAN_STOP_AT_ALLOC_POINT - AGVが、手動で追加された割り当てポイントで停止可能かどうかを設定します。デフォルトはnoで、AGVは停止距離では停止せず、オブジェクトの割り当てを試みる前に次の停止可能なポイントまで続行します。これを1に設定すると、AGVは手動の割り当てポイントで停止し、先の割り当てを行います。p1はAGV_ADD_ALLOC_POINTにより返される割り当てポイントノードへの参照、p2は1または0です。
AGV_ATTACH_TRAILER - AGVに手動でトレーラーを追加します。p1は追加するオブジェクト、p2は適用するトレーラーギャップです。p3が1の場合はトレーラーがAGVの後ろ(AGVの末尾)に追加され、0の場合はトレーラーがAGVの前(AGVの先頭)に追加されます。p4が1の場合、オブジェクトがAGVから出るときにトレーラーが自動的にデタッチされ、0の場合、トレーラーのデタッチは手動で行います。
AGV_DETACH_TRAILER - AGVからトレーラーを手動でデタッチします。p1は、トレーラーとして追加されているオブジェクトです。
AGV_SPEED - AGVの現在の速度を返します。
AGV_PROXIMITY_STATE - AGVが累積パスの近接性によりブロックされている場合は1を、そうでない場合は0を返します。
AGV_ACCUM_AHEAD_AGV - 累積パスで、このAGVの前に別のAGVが存在する場合、そのAGVを返します。
例
agvinfo(agv, AGV_DEST_CP);
説明
廃止されました。AGVクラスを使用してください。
指定されたコントロールポイントにAGVを再割り当てします。
指定されたコントロールポイントにAGVを再割り当てします。
例
agvreassigncp(agv, controlpoint);
説明
廃止されました。AGVクラスを使用してください。
指定されたオブジェクト/コントロールポイントにAGVをリダイレクトします。modeは次のいずれかの値です。
REDIRECT_AND_WAIT - 到着前にリダイレクトされていない場合、AGVはリダイレクトされるまで目的地で待機します。
REDIRECT_AS_FINAL - 目的地がAGVの新しい最終目的地になります。REDIRECT_AND_CONTINUE_ON_ARRIVAL - AGVは中間目的地に到着した後で、最終目的地に移動を続けます。
REDIRECT_AND_CONTINUE_ON_PRE_ARRIVAL - AGVは中間目的地に事前に到着した後で、最終目的地に移動を続けます(減速して停止しません)。
指定されたオブジェクト/コントロールポイントにAGVをリダイレクトします。modeは次のいずれかの値です。
REDIRECT_AND_WAIT - 到着前にリダイレクトされていない場合、AGVはリダイレクトされるまで目的地で待機します。
REDIRECT_AS_FINAL - 目的地がAGVの新しい最終目的地になります。REDIRECT_AND_CONTINUE_ON_ARRIVAL - AGVは中間目的地に到着した後で、最終目的地に移動を続けます。
REDIRECT_AND_CONTINUE_ON_PRE_ARRIVAL - AGVは中間目的地に事前に到着した後で、最終目的地に移動を続けます(減速して停止しません)。
例
agvredirect(agv, controlpoint, 1);
説明
1つ以上のコントロールポイントのイベントに、リスナーを追加します。
例
cpaddlistener(current, "Location > LoadPoints", c, CP_LISTEN_EXIT | CP_LISTEN_AVAILABLE);
説明
要求オブジェクトにコントロールポイントを割り当てます。成功した場合、割り当てを表す結合ノードへの参照が返されます。
例
cpallocate(controlPoint, current, 1);
説明
コントロールポイント接続を返します。また、connectionが文字列で、controlpointとrankの両方が0の場合、このコマンドは与えられた接続のインデックスを返します。このコマンドは、以後のコマンドで接続の番号を使用し迅速化を行うためのものです。
例
cpconnection(cp, "ForwardTo", 1)
cpの最初のForwardTo接続を返します。cpconnection(cp, "LookForWork>NextLookForWork", 1)
オブジェクトを見つけるため、2つの接続を横断します。これは、cpconnection(cpconnection(cp, "LookForWork", 1), "NextLookForWork", 1) と同じです。cpconnection(cp, "LookForWork:2>NextLookForWork", 1)
cpconnection(cpconnection(cp, "LookForWork", 2), "NextLookForWork", 1) と同じです。int connIndex = cpconnection(0, "LookForWork", 0);
treenode obj = cpconnection(cp, connRank, 1);
接続のインデックスを取得し、名前の代わりにインデックスを使用します。説明
要求オブジェクトからコントロールポイントを割り当て解除します。成功した場合は1、失敗した場合は0が返されます。
例
cpdeallocate(controlPoint, current);
説明
2つのコントロールポイント間のAGVネットワーク距離を返します。
例
cpdistance(cp1, cp2)
説明
指定されたコントロールポイントが利用可能な場合、1を返します。byCriterionは現在は使用されず、将来の使用のため予約されています。
例
if (cpisavailable(cp)) {
...
}
...
}
説明
コントロールポイントに存在する接続の数を返します。
例
cpnumconnections(cp, "ForwardTo")
説明
コントロールポイントに関連付けられているタスクシーケンスキューへの参照を返します。
例
treenode tsQueue = cptasksequencequeue(cp);
通信
ソケットなどの外部アプリケーションとの通信、データベース通信、Microsoft Excelとのリンクを行うためのコマンド。
クライアントソケットを閉じる
説明
このコマンドは、socketで指定されたクライアントソケットを閉じます。
clientcreate()の後、いずれかの時点で呼び出す必要があります。ソケットが閉じると、読み取りや書き込みは一切できなくなります。
ソケット番号は、後でclientcreate()を呼び出すときに再利用できます。この関数は、ソケットが正常に閉じられた場合に真を返します。
clientcreate()の後、いずれかの時点で呼び出す必要があります。ソケットが閉じると、読み取りや書き込みは一切できなくなります。
ソケット番号は、後でclientcreate()を呼び出すときに再利用できます。この関数は、ソケットが正常に閉じられた場合に真を返します。
例
clientclose(1);
クライアントソケットへの接続を試みる
説明
このコマンドは、socketにより指定されたソケットから、hostnameの名前を持つマシンで実行中の、指定されたポートをリッスンしているサーバーへ接続を試みます。
socketとして渡される数値は、clientcreate()により以前に返された数値です。hostnameとして渡される文字列は、コンピュータの名前(クライアントと同じネットワークに存在する場合)またはIPアドレスです。このコマンドは、clientcreate()呼び出しが成功した後で使用します。ソケットが接続できなかった場合はソケットが閉じ、clientcreate()を再度呼び出して開く必要があります。この関数は、ソケットが正常に接続された場合に真を返します。
socketとして渡される数値は、clientcreate()により以前に返された数値です。hostnameとして渡される文字列は、コンピュータの名前(クライアントと同じネットワークに存在する場合)またはIPアドレスです。このコマンドは、clientcreate()呼び出しが成功した後で使用します。ソケットが接続できなかった場合はソケットが閉じ、clientcreate()を再度呼び出して開く必要があります。この関数は、ソケットが正常に接続された場合に真を返します。
例
clientconnect(1,"localhost",1880);
TCP/IPプロトコルで新規クライアントソケットを作成する
説明
このコマンドは、TCP/IPプロトコルで通信を行うように設定された、新しいクライアントソケットを作成します。FlexSimは、同時に50までのクライアントソケットを作成できます。
各クライアントは、別のサーバーに接続できます。この関数は数値を返し、モデルは作成されたソケットを参照するために数値を保存する必要があります。
エラーが発生した場合、この関数は0を返します。
各クライアントは、別のサーバーに接続できます。この関数は数値を返し、モデルは作成されたソケットを参照するために数値を保存する必要があります。
エラーが発生した場合、この関数は0を返します。
例
int socknum = clientcreate();
ソケットへ送信されたデータを受信する
説明
このコマンドは、socketで指定されるソケットに送信されたデータを受信します。socketの値は、clientcreate()により返された数値です。このコマンドは、flexscriptとc++で動作が異なります。c++では、bufferはchar*デスティネーションへの有効なポインターの必要があり、読み取られたバイトはこのバッファにコピーされます。戻り値は、受信した合計バイト数です。クライアントのメッセージから最大でbufsizeまでのバイトが読み取られ、bufという名前の事前に割り当てられた文字配列に格納されます。これに対してflexscriptでは、bufferにNULLを渡し、戻り値は受信された実際の文字列です。noblocking = 1のとき、このコマンドはFlexSimプログラムの実行をブロックしません。noblocking = 0のとき、クライアントから何かが受信されるまでFlexSimプログラムの実行はブロック(フリーズ)されます。
例
c++: int bytes = clientreceive(1,Buf,15,0);
flexscript: string readstr = clientreceive(1, NULL, 15, 0);
flexscript: string readstr = clientreceive(1, NULL, 15, 0);
ソケットからメッセージを送信する
説明
このコマンドは、socketで指定されるソケットからメッセージを送信します。socketとして渡される数値は、clientcreate()により返された数値です。charlengthは渡される文字列の長さで、通常は省略可能です。送信される文字列にNULL文字が含まれている場合のみ必須となります。
例
clientsend(1,"REQ:service");
ODBCデータベースに、tablenameで指定される名前のテーブルを開く
説明
このコマンドは、tablenameで指定される名前のテーブルをデータベースに開きます。データベースがSQLモードで開いている場合、このコマンドは何もしません。このコマンドが呼び出されたとき開いていたテーブルは閉じられます。新しいテーブルのみが読み取り可能です。これにより、ユーザーはデータベース全体を閉じて再度開く必要なしに、テーブルモードで複数のテーブルを読み取ることができます。
例
dbchangetable("Inventory");
現在開いているテーブルを閉じ、Inventoryという名前のテーブルを開きます。
現在開いているテーブルを閉じ、Inventoryという名前のテーブルを開きます。
現在開いているODBCデータベースを閉じる
説明
このコマンドは、現在開いているODBCデータベースを閉じます。同時に開くことのできるデータベースは1つだけです。このコマンドは、dbopen()よりも前に呼び出された場合は何も行いません。SQLの「INSERT」コマンドの後に呼び出されると、エラーメッセージが返されます。dbclose()を呼び出す前に、通常の「SELECT」ステートメントを使用してください。
例
if (current.donegatheringdata == 1)
dbclose();
ラベルdonegatheringdataが現在1に設定されていれば、現在のデータベースが閉じられます。
dbclose();
ラベルdonegatheringdataが現在1に設定されていれば、現在のデータベースが閉じられます。
説明
指定されたノードから始まるテーブルを、現在開いているデータベーステーブルにエクスポートします。
テーブルの開始の行と列、およびエクスポートする行と列の数を指定します。
テーブルの開始の行と列、およびエクスポートする行と列の数を指定します。
例
dbexportnode(so(),1,1,4,5);
グローバルテーブルtablenameを、現在開いているODBCテーブルにエクスポートする
説明
指定されたグローバルテーブルを、現在開いているデータベーステーブルにエクスポートします。
テーブルの開始の行と列、およびインポートする行と列の数を指定します。
テーブルの開始の行と列、およびインポートする行と列の数を指定します。
例
dbexportnode("MyTable4",2,2,3,3);
開いているODBCデータベースのフィールド名を取得する
説明
このコマンドは、現在開いているODBCデータベースで、fieldnumにより指定されるフィールドまたは列の名前を返します。データベースが現在開いていない場合、空の文字列が返されます。存在しないフィールド番号を指定すると、例外が発生します。
例
string ColName = dbgetfieldname(1);
現在のデータベースにある最初の列の名前を、ColNameに設定します。
現在のデータベースにある最初の列の名前を、ColNameに設定します。
開いているODBCデータベースの現在のモードを取得する
説明
このコマンドは、現在開いているODBCデータベースのモードを返します。戻り値は次のとおりです。
DBMODE_CLOSED - 0 - データベースが開いていない
DBMODE_SQL - 1 - データベースがSQLモードで開いている
DBMODE_TABLE - 2 - データベースがテーブルモードで開いている
DBMODE_CLOSED - 0 - データベースが開いていない
DBMODE_SQL - 1 - データベースがSQLモードで開いている
DBMODE_TABLE - 2 - データベースがテーブルモードで開いている
例
if (dbgetmode() != DBMODE_CLOSED)
ColName = dbgetfieldname(1);
データベースが開いていれば、データベースにある最初の列の名前が、ColNameに設定されます。
ColName = dbgetfieldname(1);
データベースが開いていれば、データベースにある最初の列の名前が、ColNameに設定されます。
開いているODBCデータベースの列数を取得する
説明
このコマンドは、現在開いているODBCデータベースの列数を返します。データベースが開いていなければ、0が返されます。
例
for (int x=1; x<=dbgetnumcols(); x++)
Table("MyTable")[1][x] = stringtonum(dbgettablecell(1,x));
データベースの列の値を、GlobalTableの列にコピーします。
Table("MyTable")[1][x] = stringtonum(dbgettablecell(1,x));
データベースの列の値を、GlobalTableの列にコピーします。
開いているODBCデータベースの行数を取得する
説明
このコマンドは、現在開いているODBCデータベースの行数を返します。データベースが開いていなければ、0が返されます。
例
for (int x=1; x<=dbgetnumrows(); x++)
Table("MyTable")[x][1] = stringtonum(dbgettablecell(x,1));
データベースの行の値を、GlobalTableの行にコピーします。
Table("MyTable")[x][1] = stringtonum(dbgettablecell(x,1));
データベースの行の値を、GlobalTableの行にコピーします。
開いているODBCデータベースのrowおよびcolと関連付けられている文字列を取得する
説明
このコマンドは、現在開いているODBCデータベースでrowおよびcolにより指定されるセルの情報を含む文字列を返します。データベースが開いていない場合、この関数はnull文字列(値0)を返します。
例
double tablevalue = stringtonum(dbgettablecell(1,1));
tablevalueを、データベースの最初の行、最初の列に格納されている数値に設定します。
tablevalueを、データベースの最初の行、最初の列に格納されている数値に設定します。
現在開いているODBCテーブルの行、列の数値を取得する
説明
現在のデータベーステーブルで、指定されたrowおよびcolにある数値を返します。
例
double val = dbgettablenum(2,3);
現在開いているODBCテーブルの行、列の文字列を取得する
説明
現在のデータベーステーブルで、指定された行および列にある文字列を返します。
注意:FlexScriptのみのフィールドで使用された場合は数値が返され、tostring()を使用して明示的に文字列に変換する必要があります。
注意:FlexScriptのみのフィールドで使用された場合は数値が返され、tostring()を使用して明示的に文字列に変換する必要があります。
例
string val = dbgettablenum(2,3);
現在開いているODBCテーブルからtablenodeにインポートする
説明
現在開いているデータベーステーブルを、指定されたノードから始まるテーブルにインポートします。
テーブルの開始の行と列、およびインポートする行と列の数を指定します。
テーブルの開始の行と列、およびインポートする行と列の数を指定します。
例
dbimportnode(so(),1,1,4,5);
現在開いているODBCテーブルからグローバルテーブルtablenameにインポートする
説明
現在開いているデータベーステーブルを、指定されたグローバルテーブルにインポートします。
テーブルの開始の行と列、およびインポートする行と列の数を指定します。
テーブルの開始の行と列、およびインポートする行と列の数を指定します。
例
dbimportnode("MyTable4",2,2,3,3);
ODBCデータベースを開く
説明
このコマンドは、ODBCデータベースを開く動作を試みます。成功した場合は1、失敗した場合は0が返されます。データベースを開く前に、ODBCエイリアス(またはデータソース名DSN)が定義されている必要があります。この操作は、Windowsコントロールパネルの[データソース]オプションを使用して行います。エイリアス名はdatabasenameとしてコマンドに渡されます。データベースのファイル名は渡しません。データベースは2つの異なるモードで開くことができます。これらのモードは、動作および使用可能なコマンドが多少異なります。SQLモードとテーブルモードがあります。パラメータtablemodeが1ならデータベースはテーブルモードで開き、commandには開くデータベースのテーブル名を使用します。テーブルが正しく開かれると、テーブル全体を読み取れるようになります。テーブルモードでは各セルを編集できます。データベースがテーブルモードのとき、SQLコマンドは呼び出せません。tablemodeが0ならデータベースはSQLモードで開き、commandには最初のSQLクエリを使用します。クエリが正しく実行されると、クエリの結果のみを読み取ることができます。SQLモードでは各セルを編集できません。ただし、データベースが開くとSQL更新クエリを呼び出すことができます。showloginが1なら、データベースへの接続を行う前に標準のログインプロンプト(ユーザー名/パスワード)が表示されます。
例
dbopen("itemdrive","timetable",1);
データベースをエイリアス「itemdrive」で開き、「timetable」という名前のテーブルをテーブルモードで開きます。
dbopen("warehouse","select * from inventory",0);
データベースをエイリアス「warehouse」で開き、SQLクエリを実行します。データベースはSQLモードで開きます。
データベースをエイリアス「itemdrive」で開き、「timetable」という名前のテーブルをテーブルモードで開きます。
dbopen("warehouse","select * from inventory",0);
データベースをエイリアス「warehouse」で開き、SQLクエリを実行します。データベースはSQLモードで開きます。
開いているODBCデータベースの行、セルの値を設定する
説明
このコマンドは、現在開いているODBCデータベースで、rowおよびcolで指定されるセルの値をvalueに設定します。データベースがSQLモードで開いている場合、このコマンドは何もしません。データベースのエイリアスが読み取り専用に設定されている場合、このコマンドは例外を引き起こします。エイリアスは、Windowsコントロールパネルの[データソース]オプションで読み取り専用に設定されます。関数に数値を渡す必要がある場合は、strintonum()コマンドを使用します。
例
for (int x=1; x<= model().subnodes.length; x++)
dbsettablecell(x,1,model().subnodes[x].name);
モデルのすべてのオブジェクトの名前を、現在のデータベースの最初の列に置きます。
dbsettablecell(x,1,model().subnodes[x].name);
モデルのすべてのオブジェクトの名前を、現在のデータベースの最初の列に置きます。
現在開いているODBCテーブルのrowおよびcolの数値を設定する
説明
現在のデータベーステーブルで、指定されたrowおよびcolの値を、与えられた数値に設定します。
例
dbsettablenum(2,3,56.5);
現在開いているODBCテーブルの行、列に文字列を設定する
説明
現在のデータベーステーブルで、指定されたrowおよびcolの値を、与えられた文字列に設定します。
例
dbgettablestr(1,1,"John");
開いているODBCデータベースにSQLクエリを実行する
説明
このコマンドは、現在開いているデータベースに対して、queryにより指定されたSQLクエリを実行します。結果は現在のテーブルとなります。データベースがテーブルモードのとき、このコマンドは何もしません。クエリによりテーブルが返された場合、dbgettablecell()コマンドを使用してテーブルを読み取ることができます。クエリにより更新が行われた場合、dbgettablecell()コマンドを実行すると例外が引き起こされます。
このコマンドでUPDATEステートメントを実行した場合はテーブルが返されないため、直後にSELECTを呼び出します。このコマンドはSQLモードでのみ使用できます。forwardOnlyCursorが1の場合、結果は順方向のみのカーソルの結果と想定されます。順方向のみのカーソルにはdbgetnumrows()を使用できません。その代わりに、dbsqlquery()の後でdbnextrow()を呼び出してください。このコマンドはアクティブ化された行を返します。テーブルの末尾に到達すると、-1を返します。
このコマンドでUPDATEステートメントを実行した場合はテーブルが返されないため、直後にSELECTを呼び出します。このコマンドはSQLモードでのみ使用できます。forwardOnlyCursorが1の場合、結果は順方向のみのカーソルの結果と想定されます。順方向のみのカーソルにはdbgetnumrows()を使用できません。その代わりに、dbsqlquery()の後でdbnextrow()を呼び出してください。このコマンドはアクティブ化された行を返します。テーブルの末尾に到達すると、-1を返します。
例
dbsqlquery("select processtime from timetable where type='1'");
渡されたSQLクエリに基づく新しいテーブルを返します。
dbsqlquery("update timetable set processtime=type*2");
渡されたクエリに基づいてデータベースを更新します。
渡されたSQLクエリに基づく新しいテーブルを返します。
dbsqlquery("update timetable set processtime=type*2");
渡されたクエリに基づいてデータベースを更新します。
dbopen()でODBCデータベースにアクセスするため使用するユーザー名とパスワードを設定する
説明
このコマンドは、次にdbopen()を呼び出すときデータベースにアクセスするため使用する、ユーザー名とパスワードを設定します。これにより、モデル作成者はdbopen()で提供されるユーザー名とパスワードのプロンプトを使用せず、データベースに要求されるログインパラメータを使用できます。このコマンドで設定されるユーザー名とパスワードは、再度dbusername()を呼び出して変更されるまで、dbopen()呼び出しのたびに使用されます。ユーザー名、パスワード、または両方を空の文字列に設定することもできます。
例
dbusername("user1","abc123XYZ");
ユーザー名を「user1」、パスワードを「abc123XYZ」に設定します。これらの値は、次にdbopen()が呼び出されるときデータベースにアクセスするため使用されます。
dbusername("","");
最後に設定したユーザー名とパスワードをクリアします。dbopen()が次に呼び出されたとき、データベースはユーザー名とパスワードなしでアクセスされます。
ユーザー名を「user1」、パスワードを「abc123XYZ」に設定します。これらの値は、次にdbopen()が呼び出されるときデータベースにアクセスするため使用されます。
dbusername("","");
最後に設定したユーザー名とパスワードをクリアします。dbopen()が次に呼び出されたとき、データベースはユーザー名とパスワードなしでアクセスされます。
読み取り専用ダイアログボックスを開き、現在ロードされているODBCテーブルを表示する
説明
ダイアログボックスを開き、現在ロードされているデータベーステーブルを表示します。このダイアログからはテーブルを編集できません。
例
dbviewtable();
現在開いているExcelワークブックを閉じる
説明
このコマンドは、現在開いているExcelワークブックを閉じます。saveが1なら、ワークブックは閉じる前に保存されます。saveが0なら、ワークブックに加えられた変更内容は破棄されます。
例
excelopen()の例を参照してください。
現在開いているExcelワークブックに新しいワークシートを作成します。
説明
新しいワークシートを作成します。新しいシートにはnameで指定した名前が付けられます。
例
excelcreatesheet("MyNewSheet");
Excelワークブックを作成する
説明
このコマンドは、Excelでワークブックを作成します。同時に開くことのできるワークブックは1つだけです。ユーザーは、別のワークブックを開くまたは作成する、新しいモデルを開く、現在のモデルをコンパイルする、またはFlexSimを閉じる前に、excelclose()を呼び出す必要があります。開いているファイルから読み取りを行う前には、excelsetsheet()も呼び出す必要があります。
例
excelcreateworkbook();
excelsetsheet("Sheet1");
excelwritenum(1,1,1);
excelsave("NewWorkBook.xlsx");
excelclose(0);
最初にFlexSimと新しいExcelワークブックとの間にリンクを作成し、ワークブックのアクティブなシートを「Sheet1」に設定し、行1列1に1を書き込み、ワークブックを保存して、ワークブックを閉じます。
excelsetsheet("Sheet1");
excelwritenum(1,1,1);
excelsave("NewWorkBook.xlsx");
excelclose(0);
最初にFlexSimと新しいExcelワークブックとの間にリンクを作成し、ワークブックのアクティブなシートを「Sheet1」に設定し、行1列1に1を書き込み、ワークブックを保存して、ワークブックを閉じます。
現在開いているExcelワークブックの指定範囲を削除します。
説明
指定範囲を削除します。範囲内のデータには影響しません。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
例
exceldeleterange("MyRange");
現在開いているExcelワークブックのワークシートを削除します。
説明
指定されたワークシートを削除します。allowwarningが1なら、データのあるシートを削除する前に警告が与えられます。
例
exceldeletesheet("MyNewSheet");
excelexporttable (str/node/num table, num startrow, num startcol, num numrows, num numcols [, num rowchar, num colchar])
FlexSim内のテーブルから、現在開いているExcelワークブックにデータをエクスポートする
説明
FlexSim内のテーブルから、Excelにデータをエクスポートします。テーブルはGlobalTableの名前で参照することも、テーブルノードへのツリーノード参照を使用することもできます。エクスポートされるデータタイプ(文字列または数値)は、FlexSimテーブルのセルのデータタイプにより決定されます。ユーザーは、Excelの開始行および列番号と、エクスポートする行および列の総数を指定します。
例
excelexporttable("Table1",1,1,5,3);
現在開いているExcelワークブックの名前付き範囲についての位置パラメータを取得する
説明
名前付き範囲についての位置パラメータを取得します。パラメータの有効な値は次のとおりです。
1 = 開始行番号
2 = 開始列番号
3 = 終了行番号
4 = 終了列番号
5 = 幅
6 = 高さ
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
1 = 開始行番号
2 = 開始列番号
3 = 終了行番号
4 = 終了列番号
5 = 幅
6 = 高さ
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
例
int width = excelgetrangeparam("MyRange",5);
現在開いているExcelワークブックのrangenameと関連付けられているワークシートの名前を取得する
説明
指定された範囲が位置するワークシートの名前を返します。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
例
pt(excelgetrangesheet("MyRange"));
現在開いているExcelワークブックから、FlexSimのテーブルにデータをインポートします。
説明
Excelから、FlexSimのテーブルにデータをインポートします。テーブルはGlobalTableの名前で参照することも、テーブルノードへのツリーノード参照を使用することもできます。エクスポートされるデータタイプ(文字列または数値)は、FlexSimテーブルのセルのデータタイプにより決定されます。ユーザーは、Excelの開始行および列番号と、エクスポートする行および列の総数を指定します。
例
excelimporttable("MyTable",1,1,5,3);
Microsoft Excelを開始する
説明
このコマンドは、Microsoft Excelを開き、FlexSimからアクセスできるようにします。launchdirが指定されていない場合、[ツール]|[Excel]|[グローバル設定]で定義されているパスが使用されます。それ以外の場合、launchdirはハードドライブ上でEXCEL.EXEが置かれている場所を指す正確なパスである必要があります。一般には"C:/Program Files/Microsoft Office/Office10"のような形式ですが、インストールされているExcelのバージョンによって異なる可能性があります。通常、Excelとの通信を行う前にExcelを開始する必要はありません。ただし、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(デフォルト動作ではなく、maintenance(1000,1)を呼び出して)場合は、通信を行う前にExcelが実行されている必要があります。通信の開始時にexcellaunch()を呼び出しれた場合、ユーザーが新しいモデルを開く、現在のモデルをコンパイルする、またはFlexSimを閉じる前に、excelquit()を呼び出す必要があります。
例
excellaunch("C:/Program Files/Microsoft Office/Office10");
excelopen("C:/mybook.xls");
excelsetsheet("Sheet1");
double thenum = excelreadnum(1,1);
excelclose(true);
excelquit();
Excelを開始し、「mybook」という名前のワークブックを開き、そのワークブックの行1、列1から読み取った値を保存して、ファイルとExcelを閉じます。
excelopen("C:/mybook.xls");
excelsetsheet("Sheet1");
double thenum = excelreadnum(1,1);
excelclose(true);
excelquit();
Excelを開始し、「mybook」という名前のワークブックを開き、そのワークブックの行1、列1から読み取った値を保存して、ファイルとExcelを閉じます。
ExcelからFlexSimテーブルにデータの自動インポートを開始する
説明
[ツール]|[Excel]|[複数テーブルのインポート]ウィンドウでのセットアップに従い、ExcelシートからFlexSimテーブルにデータの自動インポートを開始します。
例
excelmultitableimport()
Excelワークブックを開く
説明
このコマンドは、workbookで指定される名前のファイルをExcelで開きます。同時に開くことのできるワークブックは1つだけです。ユーザーは、別のワークブックを開く、新しいモデルを開く、現在のモデルをコンパイルする、またはFlexSimを閉じる前に、excelclose()を呼び出す必要があります。開いているファイルから読み取りを行う前には、excelsetsheet()も呼び出す必要があります。
例
excelopen("mydata.xls");
excelsetsheet("Sheet1");
double myvalue = excelreadnum(1,2);
excelclose(0);
最初にFlexSimと、「mydata.xls」という名前のExcelワークブックとの間にリンクを作成し、ワークブックのアクティブなシートを「Sheet1」に設定し、行1列2から読み取られた数値をmyvalueという名前のローカル変数に設定して、保存せずにワークブックを閉じます。
excelsetsheet("Sheet1");
double myvalue = excelreadnum(1,2);
excelclose(0);
最初にFlexSimと、「mydata.xls」という名前のExcelワークブックとの間にリンクを作成し、ワークブックのアクティブなシートを「Sheet1」に設定し、行1列2から読み取られた数値をmyvalueという名前のローカル変数に設定して、保存せずにワークブックを閉じます。
Microsoft Excelを閉じる
説明
このコマンドは、Microsoft Excelが開いていれば、閉じます。このコマンドを呼び出した後は、Excelへの他のコマンドは呼び出せません。開いているExcelファイルは、このコマンドを呼び出す前に閉じる必要があります。開いているワークブックについて、変更の保存を求めるExcelプロンプトが表示されることがあります。これを回避するにはexcelclose()を使用します。以前にexcellaunch()を呼び出した場合、このコマンドを呼び出す必要があります。
例
excellaunch()を参照してください。
現在開いているExcelワークブックの指定範囲のセルから数値を読み取る
説明
指定された名前付き範囲の、行および列により定義されたセルから数値を読み取ります。範囲の左上のセルが行1、列1です。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
例
excelreadnum("MyRange",5,1)
現在開いているExcelワークブックの指定範囲のセルからテキスト値を読み取る
説明
指定された名前付き範囲の、rowおよびcolumnにより定義されたセルからテキスト値を読み取ります。範囲の左上のセルが行1、列1です。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
例
excelreadstr("MyRange",5,1)
現在開いているExcelワークブックの指定範囲のセルに数値を書き込む
説明
指定された名前付き範囲の、rowおよびcolumnにより定義されたセルに数値を書き込みます。範囲の左上のセルが行1、列1です。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。テーブル全体の値をExcelに書き込むには、excelrangewriteを使用します。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。テーブル全体の値をExcelに書き込むには、excelrangewriteを使用します。
例
excelwritenum("MyRange",5,1,99.87)
現在開いているExcelワークブックの指定範囲のセルに文字列値を書き込む
説明
指定された名前付き範囲の、rowおよびcolumnにより定義されたセルに文字列値を書き込みます。範囲の左上のセルが行1、列1です。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。テーブル全体の値をExcelに書き込むには、excelrangewriteを使用します。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。テーブル全体の値をExcelに書き込むには、excelrangewriteを使用します。
例
excelwritestr("MyRange",5,1,"My String")
アクティブなワークシートのセルの値をバリアントとして返す
説明
アクティブなワークシートのセルの値をバリアントとして返します。Excelから何を返すかを正確に指定するため、flagsを指定できます。使用できるフラグはEXCEL_DATA_NUMBER、EXCEL_DATA_STRING、EXCEL_DATE_AS_NUMです。
EXCEL_DATA_NUMBERは、Excelデータを数値として読み取ります。
EXCEL_DATA_STRINGは、Excelデータを文字列として読み取ります。
EXCEL_DATE_AS_NUMは、Excelの日付をFlexsimで読み取り可能な日付数値として解釈します。
EXCEL_DATA_NUMBERは、Excelデータを数値として読み取ります。
EXCEL_DATA_STRINGは、Excelデータを文字列として読み取ります。
EXCEL_DATE_AS_NUMは、Excelの日付をFlexsimで読み取り可能な日付数値として解釈します。
例
Variant value = excelreadcell(1, 5, EXCEL_DATA_NUMBER | EXCEL_DATE_AS_NUM);
最初の行に含まれる5つの列の値を数値として返します。その値が日付の場合、Flexsimで日付として読み取り可能な数値が返されます。
最初の行に含まれる5つの列の値を数値として返します。その値が日付の場合、Flexsimで日付として読み取り可能な数値が返されます。
現在開いているExcelワークブックのアクティブなシートのセルから数値を読み取る
説明
現在開いているExcelワークブックのアクティブなシートのrowおよびcolumnで定義されるセルから、数値を読み取ります。
例
excelreadnum(5,1)
現在開いているExcelワークブックのアクティブなシートのセルからテキスト値を読み取る
説明
現在開いているExcelワークブックのアクティブなシートのrowおよびcolumnで定義されるセルから、テキスト値を読み取ります。
例
excelreadstr(5,1)
現在開いているExcelファイルを保存する
説明
現在開いているExcelファイルを保存します。このコマンドにfilenameが渡された場合、その名前でファイルが保存されます。これは、Excelの[ファイル]メニューで[名前を付けて保存]を選択するのと同じです。このコマンドにパラメータが渡されない場合、ファイルは現在の名前で保存され、元のファイルが上書きされます。これは、Excelの[ファイル]メニューで[上書き保存]を選択するのと同じです。
例
excelsave("runresults_001.xls")
現在開いているExcelワークブックの名前付き範囲を作成または変更する
説明
名前付き範囲を作成または変更します。この範囲はアクティブなシート上のものです。範囲の左上のセルがstartrowとstartcolumnにより定義されます。右下のセルはendrowとendcolumnにより定義されます。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
このコマンドは、FlexSimがDDEを使用してExcelと通信を行うよう設定されている(FlexSimのデフォルト設定ではなく、maintenance(1000,1)を呼び出して)場合は何もしません。
例
excelsetrange("MyRange",5,5,10,15);
現在開いているExcelワークブックのアクティブなワークシートの設定
説明
このコマンドは、現在開いているExcelワークブックのアクティブなワークシートを設定します。excelreadnum()またはexcelreadstr()が呼び出されるたびに、値はアクティブなワークシートから読み取られます。開いている同一のワークブックについて、アクティブなワークシートは何回でも設定できます。
例
excelopen()の例を参照してください。
現在開いているExcelワークブックのアクティブなシートのセルに数値を書き込む
説明
現在開いているExcelワークブックのアクティブなシートのrowおよびcolumnで定義されるセルに、数値を書き込みます。
例
excelwritenum(5,1,99.87)
現在開いているExcelワークブックのアクティブなシートのセルに文字列値を書き込む
説明
現在開いているExcelワークブックのアクティブなシートのrowおよびcolumnで定義されるセルに、文字列値を書き込みます。
例
excelwritestr(5,1,"My String")
ファイルタイプのデフォルトのアプリケーションを使用してファイルを開く
説明
指定された拡張子のファイルを、そのコンピュータでデフォルトのアプリケーションを使用して開きます。使用可能なコマンドはedit、explore、find、open、printです。戻り値が32より大きい場合は成功を意味します。
例
rundocument("open","C:/myfile.doc");
myfile.docを、コンピュータで*.docファイルを開くためのデフォルトのアプリケーションで開きます。
myfile.docを、コンピュータで*.docファイルを開くためのデフォルトのアプリケーションで開きます。
外部プログラムを実行する
説明
外部プログラムを実行します。このコマンドは、オペレーティングシステムにコマンドを発行します。コマンドラインにはプログラムの完全な引数を含めることができます。戻り値が31より大きい場合は成功を意味します。
例
runprogram("c:/myprogram.exe")
サーバーでクライアント接続の受け付けを試みる
説明
サーバーで、クライアント接続の受け付けを試みます。noblocking = 0なら、このコマンドは接続が作成されるまでブロックを行います。作成された接続への参照に使用されるインデックスが返されます。
サーバーは、待機中のクライアントから接続の受け付けを試みます。確立された接続のインデックスが数値として返されます。戻り値が0の場合、接続が作成されなかったことを示します。この値は、以後のすべてのサーバー呼び出しで使用されます。noblocking = 1なら、サーバーはFlexSimプログラムの実行をブロックしませんが、クライアントが接続を試みなかった場合に0を返します。noblocking = 0なら、サーバーはクライアントが接続を試みるまでFlexSimプログラムの実行をブロック(フリーズ)します。クライアントとの接続を作成するのはこのコマンドのみです。
サーバーは、待機中のクライアントから接続の受け付けを試みます。確立された接続のインデックスが数値として返されます。戻り値が0の場合、接続が作成されなかったことを示します。この値は、以後のすべてのサーバー呼び出しで使用されます。noblocking = 1なら、サーバーはFlexSimプログラムの実行をブロックしませんが、クライアントが接続を試みなかった場合に0を返します。noblocking = 0なら、サーバーはクライアントが接続を試みるまでFlexSimプログラムの実行をブロック(フリーズ)します。クライアントとの接続を作成するのはこのコマンドのみです。
例
int client = serveraccept(0);
クライアント接続を閉じる
説明
クライアントへの指定された接続を閉じます。メインサーバーソケットは閉じられません。サーバーがクライアントとの通信を完全に終了したとき、このコマンドを使用します。
例
servercloseconnection(1);
メインサーバーソケットと、開いているすべての接続を閉じる
説明
メインサーバーソケットと、まだ開いているすべての接続を閉じます。再度接続が作成されるまで、以後の通信は行われません。このコマンドを呼び出す前に、すべての接続を閉じてください。
例
serverclosemain()
指定のポートへの接続をリッスンするサーバーソケットを作成する
説明
指定のポートでの接続をリッスンするサーバーソケットを作成します。一部のポート(既知のポートと呼ばれます)は、特別なアプリケーション用に予約されています。通常、1024より大きい番号のポートはすべて安全に使用できます。
例
servercreatemain(1880);
接続からメッセージを受信する
説明
指定の接続からメッセージを受信します。このコマンドは、flexscriptとc++で動作が異なります。c++では、bufferはchar*デスティネーションへの有効なポインターの必要があり、読み取られたバイトはこのバッファにコピーされます。戻り値は、受信した合計バイト数です。クライアントのメッセージから最大でbufsizeまでのバイトが読み取られ、bufという名前の事前に割り当てられた文字配列に格納されます。これに対してflexscriptでは、bufferにNULLを渡し、戻り値は受信された実際の文字列です。noblocking = 1のとき、このコマンドはFlexSimプログラムの実行をブロックしません。noblocking = 0のとき、クライアントから何かが受信されるまでFlexSimプログラムの実行はブロック(フリーズ)されます。
例
c++: int bytes = serverreceive(1,Buf,15,0);
flexscript: string readstr = serverreceive(1, NULL, 15, 0);
flexscript: string readstr = serverreceive(1, NULL, 15, 0);
クライアント接続から接続にメッセージを送信する
説明
指定された接続に接続されているクライアントへ、指定のテキストメッセージを送信します。正しく送信されたバイト(文字)数が返されます。送信するテキストメッセージは、char*に変換する必要があります。charlengthは渡される文字列の長さで、通常は省略可能です。送信される文字列にNULL文字が含まれている場合のみ必須となります。
例
serversend(1,"MadeConnection");
socketinit()で開始されたプロセスをシャットダウンする
説明
このコマンドは、socketinit()で開始されたプロセスをシャットダウンします。モデルが、開いたソケットでの作業を完全に終了したとき、このコマンドを呼び出します。この関数は、ソケットが正常にシャットダウンされた場合に真を返します。詳細については、clientsend()を参照してください。
例
socketend();
Windows Socketsを使用可能にするバックグラウンドプロセスを初期化する
説明
このコマンドは、Windows Socketsを使用可能にするバックグラウンドプロセスを初期化します。ソケットコマンドの呼び出しを行う前に呼び出す必要があります。この関数は、初期化が成功した場合に真を返します。詳細については、clientsend()を参照してください。
例
socketinit();
変換
単位、データタイプ、空間座標を変換するコマンド。
文字列とchar*としてアサートする
説明
タイプをC形式の文字列(例:char*)としてアサートします。stringtopcharのエイリアスです。
例
apchar("hello")
指定された値(時間)を、ある時間形式から別の時間形式に変換する
説明
指定された値(時間)を、ある時間形式から別の時間形式に変換します。fromおよびto引数には、次の値のみを使用できます。
FS_DATETIME
XL_DATETIME
MODEL_TIME
DATE_STR
TIME_STR
DATETIME_STR
FS_DATETIME - 1601年1月1日から計算した秒数。getmodelunit(START_TIME)はFS_DATETIME単位で数値を返します。
XL_DATETIME - 1900年1月1日を1として順に計算した日数。2025年2月10日、午後1時30分は、XL_DATETIME単位では45698.5625です。この形式は、Microsoft Excelで日付に使用されます。
MODEL_TIME - モデル開始時間から後のモデル単位数。
DATE_STR - datetime値の日付部分を表す文字列。結果として得られるテキストは、モデル設定で指定された日付形式によって異なります。この形式から変換する場合、それらの設定に従って値の書式を設定する必要があります。
TIME_STR - datetime値の時刻部分を表す文字列。結果として得られるテキストは、モデル設定で指定された時刻形式によって異なります。この形式から変換する場合、それらの設定に従って値の書式を設定する必要があります。
DATETIME_STR - datetime値の日付と時刻の部分を表す文字列。結果として得られるテキストは、モデル設定で指定された日時と時刻の形式によって異なります。この形式から変換する場合、それらの設定に従って値の書式を設定する必要があります。時刻部分が先で、1つのスペースによって日付部分と区切る必要があります。
このコマンドでは、3000年およびそれ以後はサポートされないことに注意してください。
FS_DATETIME
XL_DATETIME
MODEL_TIME
DATE_STR
TIME_STR
DATETIME_STR
FS_DATETIME - 1601年1月1日から計算した秒数。getmodelunit(START_TIME)はFS_DATETIME単位で数値を返します。
XL_DATETIME - 1900年1月1日を1として順に計算した日数。2025年2月10日、午後1時30分は、XL_DATETIME単位では45698.5625です。この形式は、Microsoft Excelで日付に使用されます。
MODEL_TIME - モデル開始時間から後のモデル単位数。
DATE_STR - datetime値の日付部分を表す文字列。結果として得られるテキストは、モデル設定で指定された日付形式によって異なります。この形式から変換する場合、それらの設定に従って値の書式を設定する必要があります。
TIME_STR - datetime値の時刻部分を表す文字列。結果として得られるテキストは、モデル設定で指定された時刻形式によって異なります。この形式から変換する場合、それらの設定に従って値の書式を設定する必要があります。
DATETIME_STR - datetime値の日付と時刻の部分を表す文字列。結果として得られるテキストは、モデル設定で指定された日時と時刻の形式によって異なります。この形式から変換する場合、それらの設定に従って値の書式を設定する必要があります。時刻部分が先で、1つのスペースによって日付部分と区切る必要があります。
このコマンドでは、3000年およびそれ以後はサポートされないことに注意してください。
例
convert(42308, XL_DATETIME, MODEL_TIME) // Excelの日付を有効なモデル時間に変換する
タイプをノードポインターとしてアサートする
説明
タイプをノードポインターとしてアサートします。C++でのみ実際の役割を果たします。
例
tonode(getnodenum(couplingnode))
couplingnodeの数値をtreenodeに変換する
couplingnodeの数値をtreenodeに変換する
タイプを数値としてアサートする
説明
タイプを数値としてアサートします。C++でのみ実際の役割を果たします。
例
return tonum(current);
現在のオブジェクトへのポインターを数値にキャストして返します。
現在のオブジェクトへのポインターを数値にキャストして返します。
説明
開発者向けです。タイプをポインターとしてアサートします。引数thingをタイプvoid*としてアサートします。C++でのみ実際の役割を果たしますが、flexscriptでも安全に使用できます。
例
toptr(so())
コンベヤ
説明
廃止されました。Conveyorクラスを使用してください。
例
conveyorinfo(conveyor, CONV_INFO_ESTIMATE_CONVEY_TIME);
説明
廃止されました。Conveyorクラスを使用してください。
例
conveyorresumeitem(item);
説明
廃止されました。Conveyorクラスを使用してください。
例
conveyorsenditem(item, outobject(current, 1));
説明
廃止されました。Conveyorクラスを使用してください。
例
conveyorsetspeed(conveyor, 1);
説明
廃止されました。Conveyor.MergeControllerクラスを使用してください。
例
mergegetlanestate(current, 5)
説明
廃止されました。Conveyor.MergeControllerクラスを使用してください。
例
mergegetnumlanes(current)
説明
廃止されました。Conveyor.MergeControllerクラスを使用してください。
例
mergeislaneclear(current, 5)
説明
廃止されました。Conveyor.MergeControllerクラスを使用してください。
例
mergereleaselane(current, 1)
廃止
コマンドのサポートが終了したか、別のコマンドが作成されました。これらのコマンドのドキュメントは更新されていないため、不正確な可能性があります。多くのコマンドは後方互換性のため依然として動作しますが、代替コマンドの使用をお勧めします。
廃止されました。+オペレーターを使用してください。
説明
このコマンドは廃止されました。代わりに+オペレーターを使用してください。
value1をvalue2に加算します。value1+value2の数値演算式の結果が返されます。
value1をvalue2に加算します。value1+value2の数値演算式の結果が返されます。
例
double sum = add(1,2);
廃止
説明
このコマンドは廃止されました。移動テーブルに新しいエントリを追加します。このエントリは、全履歴が有効なときに記録されます。この新しいエントリは、flowitemidで識別されるフローアイテムが原点オブジェクトから目的地オブジェクトへ、指定した時間に移動したことを記録します。このエントリは、移動時点のフローアイテムのアイテムタイプが、3番目のパラメータとして渡されたitemtypeであることも記録します。ユーザーがこのコマンドを使用する必要があるのは非常に稀な状況のみです。
例
addfullhistorymoverecord(getnodenum(uniqueid(item)), time(), current, current.outObjects[1], item.type);
廃止
説明
このコマンドは廃止されました。状態テーブルに新しいエントリを追加します。このエントリは、全履歴が有効なときに記録されます。この新しいエントリは、3番目のパラメータで渡された指定のオブジェクトが、最初のパラメータで入力された時間に、指定の状態に変化したことを記録します。このコマンドを呼び出す必要があるのは、setstate()以外のsoemコマンドでオブジェクトの状態が変化する場合のみです。
例
addfullhistorystaterecord(time(), STATE_IDLE, current);
廃止、&&オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに&&オペレーターを使用してください。
例
廃止、tonode()を使用すること
説明
このコマンドは廃止されました。代わりにtonode()を使用してください。
タイプをノードポインターとしてアサートします。
タイプをノードポインターとしてアサートします。
例
anode(so())
廃止、tonum()を使用すること
説明
このコマンドは廃止されました。代わりにtonum()を使用してください。
タイプを数値としてアサートします。
タイプを数値としてアサートします。
例
anum(so())
廃止、toptr()を使用すること
説明
このコマンドは廃止されました。代わりにtoptr()を使用してください。
タイプをポインターとしてアサートします。
タイプをポインターとしてアサートします。
例
aptr(so())
廃止、getvarnode()を使用すること
説明
このコマンドは廃止されました。代わりにvar()、var_s()、getvarnode()を使用してください。
例
att(current,1)
廃止、getvarnode()を使用すること
説明
このコマンドは廃止されました。代わりにgetvarnode()を使用してください。
オブジェクトの属性ノードを名前で取得します。属性ノードは、オブジェクトの構造の「変数」ノード内に存在するものです。この関数は、オブジェクトの変数ノード内にある、nameで指定された名前のノードへのポインターを返します。このコマンドはvar_sに置き換えられました。
オブジェクトの属性ノードを名前で取得します。属性ノードは、オブジェクトの構造の「変数」ノード内に存在するものです。この関数は、オブジェクトの変数ノード内にある、nameで指定された名前のノードへのポインターを返します。このコマンドはvar_sに置き換えられました。
例
att_s(current,"myatt")
説明
このコマンドは廃止されました。代わりに動画レコーダーを使用してください。
例
説明
このコマンドは廃止されました。代わりに動画レコーダーを使用してください。
例
説明
このコマンドは廃止されました。代わりに動画レコーダーを使用してください。
例
bcgetitemkinematics (obj basicconveyor, obj item, num kinematictype {0 - メインキネマティクス、1 - 時間に依存、2 - 搬送に依存})
廃止、レガシーコンベヤのサポートは終了
説明
廃止されました。レガシーコンベヤのサポートは終了しました。
このコマンドは、BasicConveyorオブジェクトと組み合わせて使用されます。
bcgetitemkinematicsコマンドは、BasicConveyorのフローアイテム移動に関連付けられている3つのキネマティクスのいずれかへの参照を取得するため使用されます。
0 = メインコンベヤ状態キネマティクス。これからキネマティクス情報を取得できますが、キネマティクスに追加や初期化の変更を加えることはできません。
1 = ユーザー定義可能なキネマティクスで、シミュレーション時間に依存します。
2 = ユーザー定義可能なキネマティクスで、コンベヤ上のフローアイテムの搬送位置に依存します。
2つのユーザー定義可能なキネマティクスは、ユーザーがコンベヤの長さに応じた移動に加え、カスタマイズされたキネマティクス動作をセットアップするため使用できます。bcgetitemkinematicsを使用して目的のキネマティクスノードへの参照を取得してから、標準のinitkinematics()およびaddkinematic()コマンドを通常に使用します。代替のinitkinematicsパラメータリストとして、initkinematics(node, x, y, z, rx, ry, rz, managerots, localcoords)を使用する必要があります。また、タイプ2の搬送依存のキネマティクスノードにキネマティクスを追加する場合、そのキネマティクス用の時間単位はどれも、実際のシミュレーションの時間単位には適用されないことに注意してください。代わりに、それらの時間単位は「搬送単位」と解釈されます。たとえば、速度5は時間単位当たり5単位とは解釈されず、搬送単位ごとに5単位と解釈されます。加速は時間あたりの距離の二乗ではなく、搬送単位ごとの距離の二乗です。開始時間はキネマティクスを開始する時間ではなく、コンベヤに沿った位置がキネマティクスを開始する時間です。例として、「start time」 5および「max speed」 0.5を使用して、搬送依存のキネマティクスノードに、y方向へ1単位移動するキネマティクスを追加したとします。搬送依存のキネマティクスでは、アイテムがコンベヤに沿って5単位に到達してから、y方向に移動を開始すると解釈されます。また、コンベヤの長さに沿って移動するすべての単位について、y方向に0.5単位移動します(搬送単位ごとに0.5 y単位)。このため、コンベヤに沿って7単位移動すると、yキネマティクスは終了します。アイテムが累積によって中間、たとえば搬送位置6でブロックされた場合、yキネマティクスも停止して、アイテムがコンベヤに沿った移動を再開するまではキネマティクスも再開されません。
BasicConveyorオブジェクトの一般的な説明については、bcsetitemconveystateコマンドのドキュメントを参照してください。
このコマンドは、BasicConveyorオブジェクトと組み合わせて使用されます。
bcgetitemkinematicsコマンドは、BasicConveyorのフローアイテム移動に関連付けられている3つのキネマティクスのいずれかへの参照を取得するため使用されます。
0 = メインコンベヤ状態キネマティクス。これからキネマティクス情報を取得できますが、キネマティクスに追加や初期化の変更を加えることはできません。
1 = ユーザー定義可能なキネマティクスで、シミュレーション時間に依存します。
2 = ユーザー定義可能なキネマティクスで、コンベヤ上のフローアイテムの搬送位置に依存します。
2つのユーザー定義可能なキネマティクスは、ユーザーがコンベヤの長さに応じた移動に加え、カスタマイズされたキネマティクス動作をセットアップするため使用できます。bcgetitemkinematicsを使用して目的のキネマティクスノードへの参照を取得してから、標準のinitkinematics()およびaddkinematic()コマンドを通常に使用します。代替のinitkinematicsパラメータリストとして、initkinematics(node, x, y, z, rx, ry, rz, managerots, localcoords)を使用する必要があります。また、タイプ2の搬送依存のキネマティクスノードにキネマティクスを追加する場合、そのキネマティクス用の時間単位はどれも、実際のシミュレーションの時間単位には適用されないことに注意してください。代わりに、それらの時間単位は「搬送単位」と解釈されます。たとえば、速度5は時間単位当たり5単位とは解釈されず、搬送単位ごとに5単位と解釈されます。加速は時間あたりの距離の二乗ではなく、搬送単位ごとの距離の二乗です。開始時間はキネマティクスを開始する時間ではなく、コンベヤに沿った位置がキネマティクスを開始する時間です。例として、「start time」 5および「max speed」 0.5を使用して、搬送依存のキネマティクスノードに、y方向へ1単位移動するキネマティクスを追加したとします。搬送依存のキネマティクスでは、アイテムがコンベヤに沿って5単位に到達してから、y方向に移動を開始すると解釈されます。また、コンベヤの長さに沿って移動するすべての単位について、y方向に0.5単位移動します(搬送単位ごとに0.5 y単位)。このため、コンベヤに沿って7単位移動すると、yキネマティクスは終了します。アイテムが累積によって中間、たとえば搬送位置6でブロックされた場合、yキネマティクスも停止して、アイテムがコンベヤに沿った移動を再開するまではキネマティクスも再開されません。
BasicConveyorオブジェクトの一般的な説明については、bcsetitemconveystateコマンドのドキュメントを参照してください。
例
treenode kin = bcgetitemkinematics(current, item, 2);
treenode kin2 = bcgetitemkinematics(current, item, 1);
initkinematics(kin, 0,0,0, 0,0,0, 0,0);
addkinematic(kin, 0,1,1,0.5,1,1,0,0, 5, KINEMATIC_TRAVEL);
initkinematics(kin2, 0,0,0, 0,0,0, 0,0);
addkinematic(kin2, 0,0,720,360,0,0,0,0, time()+5.0, KINEMATIC_ROTATE);
treenode kin2 = bcgetitemkinematics(current, item, 1);
initkinematics(kin, 0,0,0, 0,0,0, 0,0);
addkinematic(kin, 0,1,1,0.5,1,1,0,0, 5, KINEMATIC_TRAVEL);
initkinematics(kin2, 0,0,0, 0,0,0, 0,0);
addkinematic(kin2, 0,0,720,360,0,0,0,0, time()+5.0, KINEMATIC_ROTATE);
廃止、レガシーコンベヤのサポートは終了
説明
廃止されました。レガシーコンベヤのサポートは終了しました。
このコマンドは、BasicConveyorオブジェクトと組み合わせて使用されます。
bcgetitempositionコマンドは、BasicConveyorオブジェクト上のアイテムの現在位置を返します。この位置は、コンベヤの長さに沿って、コンベヤの頭部から、フローアイテムでコンベヤの頭部から最も離れたエッジまで測定されます。
BasicConveyorオブジェクトの一般的な説明については、bcsetitemconveystateコマンドのドキュメントを参照してください。
このコマンドは、BasicConveyorオブジェクトと組み合わせて使用されます。
bcgetitempositionコマンドは、BasicConveyorオブジェクト上のアイテムの現在位置を返します。この位置は、コンベヤの長さに沿って、コンベヤの頭部から、フローアイテムでコンベヤの頭部から最も離れたエッジまで測定されます。
BasicConveyorオブジェクトの一般的な説明については、bcsetitemconveystateコマンドのドキュメントを参照してください。
例
bcgetitemposition(current,current.first);
廃止、レガシーコンベヤのサポートは終了
説明
廃止されました。レガシーコンベヤのサポートは終了しました。
このコマンドは、BasicConveyorオブジェクトと組み合わせて使用されます。
bcsetdirectionコマンドは、コンベヤ上のすべてのフローアイテムを停止し、移動方向を1=順方向および0=逆方向に設定します。すべてのフローアイテムは、再度移動を開始する前にbcsetitemconveystate()コマンドで搬送状態をリセットする必要があります。次の例は、コンベヤを停止してから、すべてのフローアイテムを逆方向に速度1まで加速する方法を示しています。すべての追加アイテムキネマティクスは、方向の変更後もアクティブのままです。
BasicConveyorオブジェクトの一般的な説明については、bcsetitemconveystateコマンドのドキュメントを参照してください。
このコマンドは、BasicConveyorオブジェクトと組み合わせて使用されます。
bcsetdirectionコマンドは、コンベヤ上のすべてのフローアイテムを停止し、移動方向を1=順方向および0=逆方向に設定します。すべてのフローアイテムは、再度移動を開始する前にbcsetitemconveystate()コマンドで搬送状態をリセットする必要があります。次の例は、コンベヤを停止してから、すべてのフローアイテムを逆方向に速度1まで加速する方法を示しています。すべての追加アイテムキネマティクスは、方向の変更後もアクティブのままです。
BasicConveyorオブジェクトの一般的な説明については、bcsetitemconveystateコマンドのドキュメントを参照してください。
例
bcsetdirection(so(),0);
for(int i = 1; i <= so().subnodes.length; i++)
{
treenode item = so().subnodes[i];
bcsetitemconveystate(so(), item, bcgetitemposition(so(), item), 0, 1, 0.2);
}
for(int i = 1; i <= so().subnodes.length; i++)
{
treenode item = so().subnodes[i];
bcsetitemconveystate(so(), item, bcgetitemposition(so(), item), 0, 1, 0.2);
}
bcsetitemconveystate (obj basicconveyor, obj item, num startpoint, num startspeed, num targetspeed, num accdec)
廃止、レガシーコンベヤのサポートは終了
説明
廃止されました。レガシーコンベヤのサポートは終了しました。
このコマンドは、BasicConveyorオブジェクトと組み合わせて使用されます。
BasicConveyorオブジェクトを使用すると、フローアイテムをどの時点、どの位置でもコンベヤの中に、またはコンベヤから外に移動できます。BasicConveyorの各フローアイテムに独自のキネマティクスプロファイルを割り当ておよび再割り当てし、フローアイテムがコンベヤに沿ってどのように移動するかを定義できます。1つのフローアイテムが、コンベヤ上で停止または低速で移動している他のフローアイテムに追い付くと、そのフローアイテムの速度に合わせてただちに減速されます。フローアイテムはコンベヤに沿ってどちらの方向にも移動する可能性がありますが、特定の時点で見ると、すべてのフローアイテムが同じ方向に移動します。コンベヤの移動方向はbcsetdirection()コマンドで設定されます。フローアイテムがコンベヤの中に、またはコンベヤから外に移動するとき、コンベヤ上の他のフローアイテムはコンベヤ上で利用可能な空間が増加または減少したことを認識し、自然に集積を行います。フローアイテムがコンベヤに進入した後で、receiveitem()コマンドで間接的に、またはmoveobject()コマンドで直接的に、フローアイテムの初期キネマティクスプロファイルを定義する必要があります。このプロファイルはフローアイテムの「搬送状態」と呼ばれ、bcsetitemconveystate()コマンドで設定されます。フローアイテムの搬送状態は、必要に応じて何回でも設定できます。フローアイテムの搬送状態を定義するため使用されるパラメータの定義は次のとおりです。
basicconveyor = コンベヤへの参照。
item = フローアイテムへの参照。
startpoint = フローアイテムの開始位置。コンベヤの先頭から、コンベヤの長さ方向に沿って、コンベヤの頭から最も離れたフローアイテムのエッジまで測定されます(コンベヤの方向が順方向なら前縁、逆方向なら後縁)。
startspeed = フローアイテムの移動開始時の速度。
targetspeed = フローアイテムが到達を試みる目標速度。targetspeedがstartspeedよりも大きい場合、フローアイテムは目標速度まで加速します。そうでない場合、目標速度まで減速します。startspeedとtargetspeedが両方とも0に設定されている場合、フローアイテムはstartpointのまま移動しません。
accdec = 時間の経過とともに目標速度に到達するため使用される、加速度または減速度。値が0なら、無限大の加速度/減速度を意味します。言い換えれば、フローアイテムは一瞬でtargetspeedに達します。
フローアイテムは、コンベヤの終端に到達する、別のフローアイテムに衝突する、または搬送状態が再度変更されるまでコンベヤに沿って移動を続けるため、目的地や終端速度は必要ありません。BasicConveyorでは、長さ方向に沿って複数の「決定点」を定義できます。これらのトリガーポイントは、フローアイテムの搬送状態を更新するため便利な場所です。フローアイテムには、bcsetitemconveystate()コマンドで割り当てられたメイン搬送状態キネマティクスに加え、2つの別のキネマティクス構造が関連付けられており、コンベヤに沿った移動の動作だけでなく、カスタムのキネマティクス動作(平行移動または回転)も適用できます。キネマティクス構造の1つはシミュレーションの時間単位に基づいており、もう1つはコンベヤの長さ方向に沿った距離単位に基づいています。これらのキネマティクス構造にアクセスするには、bcgetitemkinematics()コマンドを使用してからinitkinematics()およびaddkinematic()コマンドを使用して、必要なカスタムキネマティクス動作を作成します。詳細については、bcgetitemkinematics()コマンドのドキュメントを参照してください。
このコマンドは、BasicConveyorオブジェクトと組み合わせて使用されます。
BasicConveyorオブジェクトを使用すると、フローアイテムをどの時点、どの位置でもコンベヤの中に、またはコンベヤから外に移動できます。BasicConveyorの各フローアイテムに独自のキネマティクスプロファイルを割り当ておよび再割り当てし、フローアイテムがコンベヤに沿ってどのように移動するかを定義できます。1つのフローアイテムが、コンベヤ上で停止または低速で移動している他のフローアイテムに追い付くと、そのフローアイテムの速度に合わせてただちに減速されます。フローアイテムはコンベヤに沿ってどちらの方向にも移動する可能性がありますが、特定の時点で見ると、すべてのフローアイテムが同じ方向に移動します。コンベヤの移動方向はbcsetdirection()コマンドで設定されます。フローアイテムがコンベヤの中に、またはコンベヤから外に移動するとき、コンベヤ上の他のフローアイテムはコンベヤ上で利用可能な空間が増加または減少したことを認識し、自然に集積を行います。フローアイテムがコンベヤに進入した後で、receiveitem()コマンドで間接的に、またはmoveobject()コマンドで直接的に、フローアイテムの初期キネマティクスプロファイルを定義する必要があります。このプロファイルはフローアイテムの「搬送状態」と呼ばれ、bcsetitemconveystate()コマンドで設定されます。フローアイテムの搬送状態は、必要に応じて何回でも設定できます。フローアイテムの搬送状態を定義するため使用されるパラメータの定義は次のとおりです。
basicconveyor = コンベヤへの参照。
item = フローアイテムへの参照。
startpoint = フローアイテムの開始位置。コンベヤの先頭から、コンベヤの長さ方向に沿って、コンベヤの頭から最も離れたフローアイテムのエッジまで測定されます(コンベヤの方向が順方向なら前縁、逆方向なら後縁)。
startspeed = フローアイテムの移動開始時の速度。
targetspeed = フローアイテムが到達を試みる目標速度。targetspeedがstartspeedよりも大きい場合、フローアイテムは目標速度まで加速します。そうでない場合、目標速度まで減速します。startspeedとtargetspeedが両方とも0に設定されている場合、フローアイテムはstartpointのまま移動しません。
accdec = 時間の経過とともに目標速度に到達するため使用される、加速度または減速度。値が0なら、無限大の加速度/減速度を意味します。言い換えれば、フローアイテムは一瞬でtargetspeedに達します。
フローアイテムは、コンベヤの終端に到達する、別のフローアイテムに衝突する、または搬送状態が再度変更されるまでコンベヤに沿って移動を続けるため、目的地や終端速度は必要ありません。BasicConveyorでは、長さ方向に沿って複数の「決定点」を定義できます。これらのトリガーポイントは、フローアイテムの搬送状態を更新するため便利な場所です。フローアイテムには、bcsetitemconveystate()コマンドで割り当てられたメイン搬送状態キネマティクスに加え、2つの別のキネマティクス構造が関連付けられており、コンベヤに沿った移動の動作だけでなく、カスタムのキネマティクス動作(平行移動または回転)も適用できます。キネマティクス構造の1つはシミュレーションの時間単位に基づいており、もう1つはコンベヤの長さ方向に沿った距離単位に基づいています。これらのキネマティクス構造にアクセスするには、bcgetitemkinematics()コマンドを使用してからinitkinematics()およびaddkinematic()コマンドを使用して、必要なカスタムキネマティクス動作を作成します。詳細については、bcgetitemkinematics()コマンドのドキュメントを参照してください。
例
bcsetitemconveystate(current, item, position, 0, 60, 0);
廃止、&オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに&オペレーターを使用してください。
2つの32ビット整数値のビット単位AND演算の結果を返します。
2つの32ビット整数値のビット単位AND演算の結果を返します。
例
int bwa = bitwiseand(0x460, 0x040);
この例は、bwaを値0x020に設定します。
この例は、bwaを値0x020に設定します。
廃止、~オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに~オペレーターを使用してください。
32ビット整数値のビット単位NOTの結果を返します。
32ビット整数値のビット単位NOTの結果を返します。
例
int bwn = bitwisenot(0x0);
この例は、bwnを値0xffffffffに設定します。
この例は、bwnを値0xffffffffに設定します。
廃止、|オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに|オペレーターを使用してください。
32ビット整数値のビット単位ORの結果を返します。
32ビット整数値のビット単位ORの結果を返します。
例
int bwa = bitwiseand(0x15, 0x01);
この例は、bwoを値0x15に設定します。
この例は、bwoを値0x15に設定します。
廃止、^オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに^オペレーターを使用してください。
32ビット整数値のビット単位XORの結果を返します。
32ビット整数値のビット単位XORの結果を返します。
例
int bwxo = bitwisexor(0x15, 0x01);
この例は、bwxo を値0x14に設定します。
この例は、bwxo を値0x14に設定します。
廃止、Tableクラスを使用すること
説明
このコマンドは廃止されました。代わりにTableクラスを使用してください。
例
廃止、Object.centerObjects[]を使用すること
説明
例
廃止、conveyor.targetSpeedを使用すること
説明
例
changeconveyorspeed(current, 4);
この例は、コンベヤの速度を4に変更します。
この例は、コンベヤの速度を4に変更します。
出力コンソールをクリアする
説明
このコマンドは、出力コンソールが開いているなら、クリアします。出力コンソールは、pt()、pf()、pr()コマンドの出力が表示される場所です。
例
if (v_printerror == 1)
{
clearconsole();
pt("An Error occurred");
}
出力コンソールをクリアし、変数printerrorが1の場合は簡単なエラーメッセージを表示します。
{
clearconsole();
pt("An Error occurred");
}
出力コンソールをクリアし、変数printerrorが1の場合は簡単なエラーメッセージを表示します。
廃止
説明
このコマンドは廃止されました。全履歴システムにより収集されたすべてのデータを削除します。resetuniqueidが1なら、このコマンドが呼び出された後で作成されるフローアイテムの固有IDは、また1から始まります。このパラメータは通常は0で、以前のフローアイテムと新しいフローアイテムの混同がないよう、番号付けがリセットされずに続けられます。
例
clearfullhistory(0);
廃止、Tableクラスを使用すること
説明
このコマンドは廃止されました。代わりにTableクラスを使用してください。
例
廃止、Object.input.close()を使用すること
説明
このコマンドは廃止されました。代わりにUse Object.input.close()を使用してください。
このコマンドは、オブジェクトの入力をブロックします。エントリをブロックするには、入力ポート自体、または一般的な入力のみを閉じる必要があります。ポート接続がビューウィンドウに十分なサイズで表示されているとき、オブジェクトの入力ポート(正方形)すべてにわたって小さな赤色のバーが描画され、入力ポートがブロックされていることを示します。個別のポートを開くことはでき、開いているポートは緑色で表示されますが、赤いバーのためにオブジェクトへの進入はブロックされます。このコマンドをstopinput()と比較してください。
このコマンドは、オブジェクトの入力をブロックします。エントリをブロックするには、入力ポート自体、または一般的な入力のみを閉じる必要があります。ポート接続がビューウィンドウに十分なサイズで表示されているとき、オブジェクトの入力ポート(正方形)すべてにわたって小さな赤色のバーが描画され、入力ポートがブロックされていることを示します。個別のポートを開くことはでき、開いているポートは緑色で表示されますが、赤いバーのためにオブジェクトへの進入はブロックされます。このコマンドをstopinput()と比較してください。
例
if (current.subnodes.length == getvarnum(current,"maxcontent")
closeinput(current);
current内のオブジェクトが多すぎる場合、currentの入力ポートをブロックします。
closeinput(current);
current内のオブジェクトが多すぎる場合、currentの入力ポートをブロックします。
廃止、Object.output.close()を使用すること
説明
このコマンドは廃止されました。代わりにObject.output.close()を使用してください。
このコマンドは、オブジェクトの出力をブロックします。出口をブロックするには、出力ポート自体、または一般的な出力のみを閉じる必要があります。ポート接続がビューウィンドウに十分なサイズで表示されているとき、オブジェクトの出力ポート(正方形)すべてにわたって小さな赤色のバーが描画され、出力ポートがブロックされていることを示します。個別のポートを開くことはでき、開いているポートは緑色で表示されますが、赤いバーのためにオブジェクトからの出口はブロックされます。このコマンドをstopoutput()と比較してください。
このコマンドは、オブジェクトの出力をブロックします。出口をブロックするには、出力ポート自体、または一般的な出力のみを閉じる必要があります。ポート接続がビューウィンドウに十分なサイズで表示されているとき、オブジェクトの出力ポート(正方形)すべてにわたって小さな赤色のバーが描画され、出力ポートがブロックされていることを示します。個別のポートを開くことはでき、開いているポートは緑色で表示されますが、赤いバーのためにオブジェクトからの出口はブロックされます。このコマンドをstopoutput()と比較してください。
例
if (current.subnodes.length == current.mincontent)
closeoutput(current);
current内のオブジェクトが少なすぎる場合、currentの出力ポートをブロックします。
closeoutput(current);
current内のオブジェクトが少なすぎる場合、currentの出力ポートをブロックします。
廃止、==オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに==オペレーターを使用してください。myStr == "Hello"
で文字列が等しいかどうかテストできます。
で文字列が等しいかどうかテストできます。
例
廃止、+オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに+オペレーターを使用してください。"a" + "b" + "c"
文字列を互いに連結します。
文字列を互いに連結します。
例
廃止、contextdragconnection()を使用すること
説明
このコマンドは廃止されました。代わりにcontextdragconnection()を使用してください。
2つのオブジェクトのポートを接続します。2つのオブジェクトを接続するため、該当のオブジェクトにポートが存在するかどうかチェックしてから、接続が行われます。最初のオブジェクトの出力ポートは、2番目のオブジェクトの入力に接続されます。ポートが存在しない、または既に接続済みのとき、このコマンドは中断されます。2つのオブジェクトを、ポートを追加して自動的に接続するには、objectconnect()コマンドを参照してください。
2つのオブジェクトのポートを接続します。2つのオブジェクトを接続するため、該当のオブジェクトにポートが存在するかどうかチェックしてから、接続が行われます。最初のオブジェクトの出力ポートは、2番目のオブジェクトの入力に接続されます。ポートが存在しない、または既に接続済みのとき、このコマンドは中断されます。2つのオブジェクトを、ポートを追加して自動的に接続するには、objectconnect()コマンドを参照してください。
例
connect(model().subnodes[2],1,model().subnodes[3],2)
廃止、追跡変数または処理フローを使用すること
説明
このコマンドは廃止されました。カスタム統計を追跡するには、追跡変数、処理フロー、または両方を使用してください。
例
廃止、追跡変数または処理フローを使用すること
説明
このコマンドは廃止されました。カスタム統計を追跡するには、追跡変数、処理フロー、または両方を使用してください。
例
説明
repeat()、findmatch()、findmin()、findmax()などのコマンドに使用される反復子の値。countの値は、現在どの反復が実行されているかによって異なります。
例
findmax(Table("MyTable").numRows, Table("MyTable")[count][5])
テーブルMyTableのすべての行について、列5の最大値を返します。
テーブルMyTableのすべての行について、列5の最大値を返します。
廃止、使用しないこと
説明
このコマンドは廃止されました。使用してはいけません。
例
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、dispatcherにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、現在のタスクはdelaytime秒だけ一時停止されます。遅延時間の間は、stateで指定される状態に維持されます。タスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです:
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、dispatcherにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、現在のタスクはdelaytime秒だけ一時停止されます。遅延時間の間は、stateで指定される状態に維持されます。タスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです:
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createdelaytask(current.centerObjects[1], 25, SCHEDULED_DOWN, 1, PREEMPT_NOT);
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
与えられた動的パラメータ1~5を使用して名前付きグローバルタスクシーケンスのインスタンスを作成し、指定のディスパッチャーに送付します。作成されたグローバルタスクシーケンスへの参照が返されます。このコマンドはタスクシーケンスを送付しないことに注意してください。送付はdispatchtasksequence()を使用して行う必要があります。
与えられた動的パラメータ1~5を使用して名前付きグローバルタスクシーケンスのインスタンスを作成し、指定のディスパッチャーに送付します。作成されたグローバルタスクシーケンスへの参照が返されます。このコマンドはタスクシーケンスを送付しないことに注意してください。送付はdispatchtasksequence()を使用して行う必要があります。
例
treenode ts = createglobaltasksequence("GlobalTS", current.centerObjects[1])
dispatchtasksequence(ts)
dispatchtasksequence(ts)
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、フローアイテムがロードされます。オフジェクトは、フローアイテムをロードする前に、フローアイテムへ移動しません。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです:
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、フローアイテムがロードされます。オフジェクトは、フローアイテムをロードする前に、フローアイテムへ移動しません。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです:
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createloadtask(current.centerObjects[1],current.centerObjects[2],item, 1, PREEMPT_NOT);
createsendmessagetask (obj taskexecuter, obj receiver, num priority, num preempting , num param1, num param2, num param3)
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、dispatcherにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、receiverで指定されたオブジェクトにメッセージが送信されます。受信側オブジェクトのOnMessageトリガーは、メッセージの送信時に実行されます。param1、param2、param3で渡される値は、param()コマンドを使用してトリガー関数で使用可能です。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです:
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、dispatcherにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、receiverで指定されたオブジェクトにメッセージが送信されます。受信側オブジェクトのOnMessageトリガーは、メッセージの送信時に実行されます。param1、param2、param3で渡される値は、param()コマンドを使用してトリガー関数で使用可能です。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです:
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createsendmessagetask(current, current.centerObjects[1],1,PREEMPT_NOT,5, 6, 7);
createstandardtask (obj taskexecuter, obj origin, obj destination, obj flowitem, num priority, num preempting)
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これによりオブジェクトは原点に移動し、フローアイテムをロードして、目的地に移動してから、フローアイテムをアンロードします。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これによりオブジェクトは原点に移動し、フローアイテムをロードして、目的地に移動してから、フローアイテムをアンロードします。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createstandardtaskcurrent.centerObjects[1],current.centerObjects[2],current.centerObjects[3],item, 1, PREEMPT_NOT);
createtravelloadtask (obj taskexecuter, obj destination, obj flowitem, num priority, num preempting)
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトは目的地に移動してフローアイテムをロードします。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトは目的地に移動してフローアイテムをロードします。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createtravelloadtask(current.centerObjects[1],current.centerObjects[2],item, 1, PREEMPT_NOT);
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトは目的地に移動します。オブジェクトは、前端が目的地に到達するまで移動します。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトは目的地に移動します。オブジェクトは、前端が目的地に到達するまで移動します。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createtraveltask( current.centerObjects[1], current.centerObjects[2], 1, PREEMPT_NOT);
createtraveltolocandwaittask (obj taskexecuter, num relativeloc, num x, num y, num z, num endspeed, num state, num priority, num preempting)
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトはxlox、y、zにより指定されたポイントに移動します。オブジェクトがそのポイントに到達すると、stateで指定された状態のまま、endwaittask()がそのオブジェクトに対して発行されるまで待機します。有効な状態のリストについては、setstate()を参照してください。relativelocが1なら、指定されたポイントはディスパッチャーの原点に対する相対位置です。relativelocが0なら、指定されたポイントは
モデルの中でディスパッチャーの移動先となる正確なポイントです。オブジェクトは、前端が指定されたポイントに到達するまで移動します。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトはxlox、y、zにより指定されたポイントに移動します。オブジェクトがそのポイントに到達すると、stateで指定された状態のまま、endwaittask()がそのオブジェクトに対して発行されるまで待機します。有効な状態のリストについては、setstate()を参照してください。relativelocが1なら、指定されたポイントはディスパッチャーの原点に対する相対位置です。relativelocが0なら、指定されたポイントは
モデルの中でディスパッチャーの移動先となる正確なポイントです。オブジェクトは、前端が指定されたポイントに到達するまで移動します。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createtraveltolocandwaittask(current.centerObjects[1], 1, 5.15, 2.5, 0, 0, STATE_IDLE, 1, PREEMPT_NOT);
createtraveltoloctask (obj dispatcher, num relativeloc, num x, num y, num z, num endspeed, num priority, num preempting)
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトはxlox、y、zにより指定されたポイントに移動します。relativelocが1なら、指定されたポイントはディスパッチャーの原点に対する相対位置です。relativelocが0なら、指定されたポイントはモデルの中でディスパッチャーの移動先となる正確なポイントです。オブジェクトは、前端が指定されたポイントに到達するまで移動します。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトはxlox、y、zにより指定されたポイントに移動します。relativelocが1なら、指定されたポイントはディスパッチャーの原点に対する相対位置です。relativelocが0なら、指定されたポイントはモデルの中でディスパッチャーの移動先となる正確なポイントです。オブジェクトは、前端が指定されたポイントに到達するまで移動します。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createtraveltoloctask(current.centerObjects[1], 1, 5.15, 2.5, 0, 0, 1, PREEMPT_NOT);
createtravelunloadtask (obj taskexecuter, obj destination, obj flowitem, num priority, num preempting)
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトは目的地に移動してフローアイテムをアンロードします。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトは目的地に移動してフローアイテムをアンロードします。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createtravelunloadtask(current.centerObjects[1],current.centerObjects[2],item, 1, PREEMPT_NOT);
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、destinationで指定されたオブジェクトにフローアイテムがアンロードされます。オブジェクトはアンロードの前に、指定場所に移動しません。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、destinationで指定されたオブジェクトにフローアイテムがアンロードされます。オブジェクトはアンロードの前に、指定場所に移動しません。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createunloadtask(current.centerObjects[1],current.centerObjects[2],item, 1, PREEMPT_NOT);
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。
このコマンドは、ディスパッチャーとして指定されたオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトはリリースされるまで、与えられる新しいタスクシーケンスを実行しません。オブジェクトはendwaittask()コマンドでリリースできます。オブジェクトは待機中、stateで指定される状態に維持されます。可能な状態のリストについては、setstate()コマンドを参照してください。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
このコマンドは、ディスパッチャーとして指定されたオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトはリリースされるまで、与えられる新しいタスクシーケンスを実行しません。オブジェクトはendwaittask()コマンドでリリースできます。オブジェクトは待機中、stateで指定される状態に維持されます。可能な状態のリストについては、setstate()コマンドを参照してください。このタスクシーケンスの優先度はpriorityで、プリエンプト値はpreemptingで与えられます。preemptingの値は次のいずれかです。
0 - PREEMPT_NOT
1 - PREEMPT_ONLY
2 - PREEMPT_AND_ABORT_ACTIVE
3 - PREEMPT_AND_ABORT_ALL
例
createwaittask(current.centerObjects[1], STATE_IDLE, 1, PREEMPT_NOT);
説明
このコマンドは廃止されました。このコマンドは、今後setcurrentコマンドとともに特殊コマンドとして使用してはいけません。代わりに、treenode変数タイプをcurrentとして宣言し、コード内で他の変数タイプと同様にcurrentを使用してください。
例
treenode current = model().subnodes[3];
pt(current.name);
モデル内で3にランクされるオブジェクトをcurrentに設定し、出力コンソールにその名前を表示します。
pt(current.name);
モデル内で3にランクされるオブジェクトをcurrentに設定し、出力コンソールにその名前を表示します。
廃止、contextdragconnection()を使用すること
説明
このコマンドは廃止されました。代わりにcontextdragconnection()を使用してください。
指定されたcharacterpressedに応じて、fromobjectとtoobjectとの間のポートを接続または接続解除します。このコマンドは、オブジェクトのポートを接続/切断するため使用されるキーボートおよびマウスの操作を模倣します。たとえば、「A」はキーボードの「A」を押し下げたまま、fromobjectをクリックしてtoobjectにドラッグする操作に相当します。「A」および「Q」なら、出力ポートを入力ポートに接続および接続解除します。「S」および「W」なら、セントラルポートを接続および接続解除します。C++でのみ使用でき、flexscriptでは使用できません。
指定されたcharacterpressedに応じて、fromobjectとtoobjectとの間のポートを接続または接続解除します。このコマンドは、オブジェクトのポートを接続/切断するため使用されるキーボートおよびマウスの操作を模倣します。たとえば、「A」はキーボードの「A」を押し下げたまま、fromobjectをクリックしてtoobjectにドラッグする操作に相当します。「A」および「Q」なら、出力ポートを入力ポートに接続および接続解除します。「S」および「W」なら、セントラルポートを接続および接続解除します。C++でのみ使用でき、flexscriptでは使用できません。
例
defaultdragconnection(model().subnodes[count], model().subnodes[2], 'A')
廃止、/オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに/オペレーターを使用してください。
value1をvalue2で除算します。value2が0のとき計算は中断され、0が返されます。
value1をvalue2で除算します。value2が0のとき計算は中断され、0が返されます。
例
div(10,2)
廃止、/オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに/オペレーターを使用してください。
これはdiv()のエイリアスです。
これはdiv()のエイリアスです。
例
divide(10,2)
廃止
説明
このコマンドは廃止されました。全履歴収集をオン/オフします。渡されたパラメータが1なら、全履歴がオンになります。0ならオフになります。このコマンドは直接呼び出しません。代わりに、[全履歴を有効にする]メニューオプションを使用して全履歴をオン/オフしてください。
例
enablefullhistory(1); // 全履歴収集をオンにする
廃止、処理フローまたはfreeoperators()を使用すること
説明
このコマンドは廃止されました。代わりに、処理フローまたはfreeoperators()コマンドを使用してください。
このコマンドは、ディスパッチャーとして指定されたオブジェクトを、createwaittask()により発行された待機タスクからリリースします。オブジェクトがリリースされると以前の状態に戻り、タスクシーケンスキューに存在するタスクシーケンスの実行を開始します。
このコマンドは、ディスパッチャーとして指定されたオブジェクトを、createwaittask()により発行された待機タスクからリリースします。オブジェクトがリリースされると以前の状態に戻り、タスクシーケンスキューに存在するタスクシーケンスの実行を開始します。
例
endwaittask(current.centerObjects[1]);
excelexportnode (node table, num startrow, num startcol, num numrows, num numcols [, num rowchar, num colchar])
廃止、excelexporttable()を使用すること
説明
このコマンドは廃止されました。代わりにexcelexporttable()を使用してください。
例
excelexportnode(reftable("Table1"),1,1,5,3);
excelimportnode (obj node, num startrow, num startcol, num numrows, num numcols [, num rowchar, num colchar])
廃止、excelimporttable()を使用すること
説明
このコマンドは廃止されました。代わりにexcelimporttable()を使用してください。
例
excelimportnode(so(),1,1,5,3);
廃止
説明
このコマンドは廃止されました。このコマンドは、ユーザーがExcel 4.0のマクロコマンドをExcelに送信するためのものです。この言語はMicrosoftでのサポートが終了しており、Excelの将来のバージョンでは削除される可能性があります。
例
excelmacro("select(\"r1c1:r5c5\")");
ワークブックの行1、列1から行5、列5までのセクションを選択します。
ワークブックの行1、列1から行5、列5までのセクションを選択します。
excelrangeread (str rangename[treenode target], num row, num col[, num numRows, num numCols, num flags])
Excelの範囲を読み込み、ツリーノードにダンプする
説明
この関数は、渡された引数に応じて2つの関数にオーバーロードされます。最初の関数(文字列を渡した場合)は廃止されました。代わりにexcelrangereadnum()とexcelrangereadstr()を使用してください。
2番目の関数(ツリーノードを渡した場合)はExcelのある範囲を読み込み、その範囲に含まれるすべてのデータをターゲットのツリーノードに割り当てます。ツリーノードにバンドルデータが存在する場合、Excelデータはバンドルに設定されます。それ以外の場合、ターゲットのツリーノードの下にサブノードが挿入されます。Excelのデータはこのサブノードに文字列または数値データとして、グローバルテーブルと同じ形式で設定されます。
範囲の原点は渡されたrowおよびcolにより指定され、2番目の数値のペアは範囲のサイズを指定します。これらのいずかに0が渡された場合、FlexSimはその方向のExcel範囲について、データが存在する範囲の境界を自動的に選択します。
flagsを渡すことで、Excelから正確に何を読み込むかを変更できます。flagsはEXCEL_DATA_AUTOMATIC、EXCEL_DATA_NUMBER、EXCEL_DATA_STRING、EXCEL_DATE_AS_NUM、EXCEL_USE_COLUMNHEADERS、EXCEL_USE_ROWHEADERSのいずれかです。
EXCEL_DATA_AUTOMATICは、Excelセルのデータタイプに応じて文字列または数値データを割り当てます。これはデフォルトの動作です。
EXCEL_DATA_NUMBERは、すべてのExcelデータを数値として読み込みます。
EXCEL_DATA_STRINGは、すべてのExcelデータを文字列として読み込みます。
EXCEL_DATE_AS_NUMは、Excel日付を、FlexSimで日付として読み込み可能な数値として読み込みます。それ以外の場合、データは文字列となります。
EXCEL_USE_COLUMNHEADERSは、データの最初の行をデータではなくテーブルの列の名前として使用します。
EXCEL_USE_ROWHEADERSは、データの最初の列をデータではなくテーブルの行の名前として使用します。
2番目の関数(ツリーノードを渡した場合)はExcelのある範囲を読み込み、その範囲に含まれるすべてのデータをターゲットのツリーノードに割り当てます。ツリーノードにバンドルデータが存在する場合、Excelデータはバンドルに設定されます。それ以外の場合、ターゲットのツリーノードの下にサブノードが挿入されます。Excelのデータはこのサブノードに文字列または数値データとして、グローバルテーブルと同じ形式で設定されます。
範囲の原点は渡されたrowおよびcolにより指定され、2番目の数値のペアは範囲のサイズを指定します。これらのいずかに0が渡された場合、FlexSimはその方向のExcel範囲について、データが存在する範囲の境界を自動的に選択します。
flagsを渡すことで、Excelから正確に何を読み込むかを変更できます。flagsはEXCEL_DATA_AUTOMATIC、EXCEL_DATA_NUMBER、EXCEL_DATA_STRING、EXCEL_DATE_AS_NUM、EXCEL_USE_COLUMNHEADERS、EXCEL_USE_ROWHEADERSのいずれかです。
EXCEL_DATA_AUTOMATICは、Excelセルのデータタイプに応じて文字列または数値データを割り当てます。これはデフォルトの動作です。
EXCEL_DATA_NUMBERは、すべてのExcelデータを数値として読み込みます。
EXCEL_DATA_STRINGは、すべてのExcelデータを文字列として読み込みます。
EXCEL_DATE_AS_NUMは、Excel日付を、FlexSimで日付として読み込み可能な数値として読み込みます。それ以外の場合、データは文字列となります。
EXCEL_USE_COLUMNHEADERSは、データの最初の行をデータではなくテーブルの列の名前として使用します。
EXCEL_USE_ROWHEADERSは、データの最初の列をデータではなくテーブルの行の名前として使用します。
例
treenode myTable = node ("Tools/GlobalTables/GlobalTable1>variables/data", model());
excelrangeread(myTable, 1, 1, 5, 0, EXCEL_DATA_AUTOMATIC | EXCEL_USE_COLUMNHEADERS);
アクティブなシートのセルA1からデータを読み込みます。最初の5行について、データが存在する列をすべて読み込みます。最初の行は、書き込み先のグローバルテーブルの列名に使用されます。したがって、Excelシートにデータの存在する列が10存在するなら、グローバルテーブルのデータ変数の下に合計40のノードが挿入されます。これらの各ノードは、対応するExcelセルのデータタイプになります。
excelrangeread(myTable, 1, 1, 5, 0, EXCEL_DATA_AUTOMATIC | EXCEL_USE_COLUMNHEADERS);
アクティブなシートのセルA1からデータを読み込みます。最初の5行について、データが存在する列をすべて読み込みます。最初の行は、書き込み先のグローバルテーブルの列名に使用されます。したがって、Excelシートにデータの存在する列が10存在するなら、グローバルテーブルのデータ変数の下に合計40のノードが挿入されます。これらの各ノードは、対応するExcelセルのデータタイプになります。
ソーステーブルノードからデータを読み込み、アクティブなExcelシートに置き込む
説明
この関数は、ソーステーブルノードのすべてのデータを、アクティブなExcelシートに書き込みます。ツリーノードにバンドルデータが存在する場合、バンドルデータを読み込んでシートに書き込みます。それ以外の場合、グローバルテーブルと同様に、データの存在する子ノードを探します。渡されるrowとcolは、Excelシートのどこからデータの書き込みを開始するかを指定します。常に、ソースノードのすべてのデータが書き込まれます。flagsを渡すと、ヘッダーの使用方法を変更できます。flagsに使用できるのは、EXCEL_USE_COLUMNHEADERSとEXCEL_USE_ROWHEADERSです。
EXCEL_USE_COLUMNHEADERSを使用すると、既存の列ヘッダーをExcelテーブルの別の行として書き込みます。
EXCEL_USE_ROWHEADERSを使用すると、既存の行ヘッダーをExcelテーブルの別の列として書き込みます。
EXCEL_USE_COLUMNHEADERSを使用すると、既存の列ヘッダーをExcelテーブルの別の行として書き込みます。
EXCEL_USE_ROWHEADERSを使用すると、既存の行ヘッダーをExcelテーブルの別の列として書き込みます。
例
treenode myTable = node("Tools/GlobalTables/GlobalTable1>variables/data", model());
excelrangewrite(myTable, 1, 1, EXCEL_USE_ROWHEADERS | EXCEL_USE_COLUMNHEADERS);
GlobalTable1のすべてのデータを取得し、アクティブなExcelシートのA1から始まるセルに書き込みます。実際のデータを書き込む前に、列ヘッダーの行と行ヘッダーの列があります。
excelrangewrite(myTable, 1, 1, EXCEL_USE_ROWHEADERS | EXCEL_USE_COLUMNHEADERS);
GlobalTable1のすべてのデータを取得し、アクティブなExcelシートのA1から始まるセルに書き込みます。実際のデータを書き込む前に、列ヘッダーの行と行ヘッダーの列があります。
廃止、excelreadnum()、excelreadstr()、excelreadcell()のいずれかを使用すること
説明
このコマンドは廃止されました。代わりにexcelreadnum()、excelreadstr()、excelreadcell()のいずれかを使用してください。
例
廃止、excelwritenum()およびexcelwritestr()を使用すること
説明
このコマンドは廃止されました。代わりにexcelwritenum()とexcelwritestr()を使用してください。
例
廃止、Table.executeCell()またはTableの[]オペレーターを使用すること
説明
このコマンドは廃止されました。代わりにTable.executeCell()またはTableクラスの[]オペレーターを使用してください。
テーブルセルのテキストをFlexscriptとして実行します。
テーブルセルのテキストをFlexscriptとして実行します。
例
廃止
説明
このコマンドは廃止されました。実行中に収集された全履歴データをデータベース(.mdbファイル)に書き込みます。このコマンドにファイル名が渡された場合、その名前がデータベースに使用されます。ファイル名が渡されない場合、ユーザーはデータの保存先のファイルを指定するように求められます。ファイル(コマンドに渡された、またはダイアログで選択されたもの)が存在しない場合、新たに作成されます。
例
exportfullhistory("myrundata.mdb");
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。
新しいファミリー(リレーショナル情報の編成に使用されるノードのリスト)を作成します。
新しいファミリー(リレーショナル情報の編成に使用されるノードのリスト)を作成します。
例
familycreate(item,"family1")
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。
ファミリーを削除します。
ファミリーを削除します。
例
familydelete(item,"family1")
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。
指定されたファミリーのメンバーへのポインターを返します。
指定されたファミリーのメンバーへのポインターを返します。
例
familymember(item,"family1",2)
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。
指定されたfamilycontainerに新しいファミリーメンバーを追加します。
指定されたfamilycontainerに新しいファミリーメンバーを追加します。
例
familymemberadd(item,"family1",item.subnodes[1])
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。
指定されたfamilycontainerからファミリーメンバーを削除します。
指定されたfamilycontainerからファミリーメンバーを削除します。
例
familymemberdel(item,"family1",item.subnodes[2])
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。
指定されたファミリーのサイズを返します。
指定されたファミリーのサイズを返します。
例
familymemberqty(item,"family1")
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。配列リテラルを使用して配列を構築するには、Arrayクラスを使用してください。Array arr = [1, 2, 3];
ローカル配列に値を入力します。
ローカル配列に値を入力します。
例
説明
定義された回数だけ一致テストを実行し、一致が見つかった場合は、その一致と関連付けられたユーザ定義可能な値を返します。一致の式と戻り値の式では、チェックの反復の何回目かを「count」を使用して判定できます。これを使用して、何かのリストを検索し、一致するアイテムや条件を探すことができます。呼び出しにreturnexpressionが含まれていない場合、findmatch()は一致の式に関連付けられているcountを返します。一致が見つからなかった場合、findmatch()は0を返します。reverseorderが1なら、countにnrを最初に代入し、次にnr - 1を代入し、以下1まで逆順にカウントします。returnexpressionが指定されていない場合、findmatchは見つかった一致に関連付けられているcountを返します。
例
int portNr = findmatch(current.outObjects.length, current.outObjects[count].subnodes.length < 5);
この例は、currentの出力ポートに接続されている、コンテンツが5より小さい最初のオブジェクトに対応する出力ポート番号を返します。
treenode object = findmatch(current.outObjects.length, current.outObjects[count].subnodes.length < 5, current.outObjects[count]);
この例は前の例とほぼ同じですが、関連付けられているポート番号ではなくオブジェクト自体を返します。
int item2Rank = findmatch(current.subnodes.length, current.subnodes[count].type == 2);
この例は、currentのキューで見つかった、アイテムタイプが2である最初のアイテムのランク番号を返します。
この例は、currentの出力ポートに接続されている、コンテンツが5より小さい最初のオブジェクトに対応する出力ポート番号を返します。
treenode object = findmatch(current.outObjects.length, current.outObjects[count].subnodes.length < 5, current.outObjects[count]);
この例は前の例とほぼ同じですが、関連付けられているポート番号ではなくオブジェクト自体を返します。
int item2Rank = findmatch(current.subnodes.length, current.subnodes[count].type == 2);
この例は、currentのキューで見つかった、アイテムタイプが2である最初のアイテムのランク番号を返します。
findmax (num nr, num valueexpression[, returnexpression = maxvalue, num criterion = true, num reverseorder = 0])
説明
式を繰り返し評価し、見つかった最大値、またはその最大値に関連付けられているユーザー定義可能な戻り値を返します。値の式、戻り値の式、およひ基準では、チェックの反復の何回目かを「count」を使用して判定できます。戻り値の式が定義されていない場合、見つかった最大値が返されます。また、無効な値を除外するための基準を指定できます。基準が定義されており、基準を満たす値が存在しない場合、0が返されます。
例
double latestCreation = findmax(current.subnodes.length, getcreationtime(current.subnodes[count]));
この例は、currentに含まれるすべてのアイテムの最大作成時間を返します。
int largestQueuePortNr = findmax(current.inObjects.length, current.inObjects[count].subnodes.length;
この例は、アイテムの最も大きなキューを持つオブジェクトに関連付けられている入力ポート番号を返します。
int largestQueuePortNr = findmax(current.inObjects.length, current.inObjects[count].subnodes.length, count, getitemstate(current.inObjects[count].first) == FR_STATE_READY);
この例は前の例とほぼ同じですが、上流オブジェクトの最初のアイテムがリリースされているという条件が追加されています。
この例は、currentに含まれるすべてのアイテムの最大作成時間を返します。
int largestQueuePortNr = findmax(current.inObjects.length, current.inObjects[count].subnodes.length;
この例は、アイテムの最も大きなキューを持つオブジェクトに関連付けられている入力ポート番号を返します。
int largestQueuePortNr = findmax(current.inObjects.length, current.inObjects[count].subnodes.length, count, getitemstate(current.inObjects[count].first) == FR_STATE_READY);
この例は前の例とほぼ同じですが、上流オブジェクトの最初のアイテムがリリースされているという条件が追加されています。
findmin (num nr, num valueexpression[, returnexpression = maxvalue, num criterion = true, num reverseorder = 0])
説明
式を繰り返し評価し、見つかった最小値、またはその最小値に関連付けられているユーザー定義可能な戻り値を返します。findmin()はfindmax()とほぼ同じですが、最大値ではなく最小値を探します。詳細については、findmax()のドキュメントを参照してください。
例
findmax()を参照
説明
このコマンドは廃止されました。代わりにselectedobject()を使用してください。
選択されたビューで、選択された(赤色)および強調表示された(黄色)ノードについて繰り返し処理を行います。ループ内で「a」を使用し、選択および強調表示されたノードを参照します。
選択されたビューで、選択された(赤色)および強調表示された(黄色)ノードについて繰り返し処理を行います。ループ内で「a」を使用し、選択および強調表示されたノードを参照します。
例
forobjecthighlightedin(sv())
{
pt(a.name); pr();
}
モデルの最初のレベルに存在する、選択および強調表示されたノードの名前を出力コンソールに表示します。
{
pt(a.name); pr();
}
モデルの最初のレベルに存在する、選択および強調表示されたノードの名前を出力コンソールに表示します。
説明
このコマンドは廃止されました。代わりにfor()またはwhile()コマンドを使用してください。
containerとして指定されたノードの直下にあるツリーレイヤーの各ノードに対して、コードブロックを実行します。ループ内で現在アクティブなノードにアクセスするため、「a」コマンドが使用されます。forobjectlayerunder()コマンドはflexscriptでのみ使用でき、C++では使用できません。
containerとして指定されたノードの直下にあるツリーレイヤーの各ノードに対して、コードブロックを実行します。ループ内で現在アクティブなノードにアクセスするため、「a」コマンドが使用されます。forobjectlayerunder()コマンドはflexscriptでのみ使用でき、C++では使用できません。
例
forobjectlayerunder(model())
{
pt(a.name); pr();
}
モデルの最初のレベルに存在するすべてのオブジェクトの名前を、出力コンソールに表示します。
{
pt(a.name); pr();
}
モデルの最初のレベルに存在するすべてのオブジェクトの名前を、出力コンソールに表示します。
説明
このコマンドは廃止されました。代わりにfor()またはwhile()コマンドを使用してください。
thenodeとして指定されたオブジェクトと同じレイヤーに属し、オブジェクトのランクと同じ、またはより小さいランク値を持つ各ノードに対して、コードブロックを実行します。ループ内で現在アクティブなノードにアクセスするため、「a」コマンドが使用されます。forobjectsbefore()コマンドはflexscriptでのみ使用でき、C++では使用できません。
thenodeとして指定されたオブジェクトと同じレイヤーに属し、オブジェクトのランクと同じ、またはより小さいランク値を持つ各ノードに対して、コードブロックを実行します。ループ内で現在アクティブなノードにアクセスするため、「a」コマンドが使用されます。forobjectsbefore()コマンドはflexscriptでのみ使用でき、C++では使用できません。
例
forobjectsbefore(model.subnodes[5]))
{
pt(a.name); pr();
}
モデルの最初にある5つのオブジェクトの名前を、出力コンソールに表示します。
{
pt(a.name); pr();
}
モデルの最初にある5つのオブジェクトの名前を、出力コンソールに表示します。
説明
このコマンドは廃止されました。代わりにfor()またはwhile()コマンドを使用してください。
thenodeとして指定されたオブジェクトと同じレイヤーに属し、オブジェクトのランクと同じ、またはより大きいランク値を持つ各ノードに対して、コードブロックを実行します。ループ内で現在アクティブなノードにアクセスするため、「a」コマンドが使用されます。forobjectsbehind()コマンドはflexscriptでのみ使用でき、C++では使用できません。
thenodeとして指定されたオブジェクトと同じレイヤーに属し、オブジェクトのランクと同じ、またはより大きいランク値を持つ各ノードに対して、コードブロックを実行します。ループ内で現在アクティブなノードにアクセスするため、「a」コマンドが使用されます。forobjectsbehind()コマンドはflexscriptでのみ使用でき、C++では使用できません。
例
forobjectsbehind(model.subnodes[5])
{
pt(a.name); pr();
}
モデルの6番目から始めて、それ以後のオブジェクトの名前を、出力コンソールに表示します。
{
pt(a.name); pr();
}
モデルの6番目から始めて、それ以後のオブジェクトの名前を、出力コンソールに表示します。
説明
このコマンドは廃止されました。代わりに次のコードを使用してください。
for(int i =1; i<= container.subnodes.length; i++)
{
if(switch_selected(container.subnodes[i]))
{
pt(container.subnodes[i].name); pr();
}
}
container内で選択された各オブジェクトに対して、コマンド以後のブロックが一回ずつ実行されます。「a」コマンドの値は、繰り返し実行が行われる対象のオブジェクトへのポインターを返します。このコマンドは、C++では使用できません。
for(int i =1; i<= container.subnodes.length; i++)
{
if(switch_selected(container.subnodes[i]))
{
pt(container.subnodes[i].name); pr();
}
}
container内で選択された各オブジェクトに対して、コマンド以後のブロックが一回ずつ実行されます。「a」コマンドの値は、繰り返し実行が行われる対象のオブジェクトへのポインターを返します。このコマンドは、C++では使用できません。
例
forobjectselectionset(library()) { pt(a.name); pr(); }
ライブラリツリーで現在選択されているすべてのオブジェクトの名前を、出力コンソールに表示します。
ライブラリツリーで現在選択されているすべてのオブジェクトの名前を、出力コンソールに表示します。
廃止、ラベルを使用すること
説明
このコマンドは廃止されました。代わりにラベルを使用してください。
フローアイテムのitemtype値を返します。
フローアイテムのitemtype値を返します。
例
getitemtype(so())
廃止、treenode.LabelNameを使用すること
説明
例
廃止、treenode.LabelNameを使用すること
説明
例
廃止、treenode.LabelNameを使用すること
説明
例
説明
このコマンドは廃止されました。代わりにgetmodelunit()を使用してください。
現在のモデル単位の名前または略語を返します。
現在のモデル単位の名前または略語を返します。
例
廃止
説明
このコマンドは廃止されました。全履歴レポート用に記録された移動レコードを返します。全履歴が有効な場合、フローアイテムがオブジェクトから別のオブジェクトに移動するごとに、移動レコードが作成されます。この関数に渡されるパラメータは、ユーザーが取得するレコードの番号(1から開始)です。このコマンドがC++で呼び出された場合、戻り値はMoveRecord*です。このコマンドがFlexScriptで呼び出された場合、戻り値はintに代入できます。
例
getnummoverecords()の例を参照してください。
廃止
説明
このコマンドは廃止されました。関数の最初のパラメータとして渡された移動レコードから、値の1つを返します。このレコードは、getmoverecord()への呼び出しで返される戻り値です。この関数の2番目のパラメータとして渡される値は、移動レコードのどの値をユーザーが取得するかを示します。
0 = レコードID。これは、移動テーブルのレコードの行番号です。
1 = レコードに移動が記録されたフローアイテムのItemID。
2 = フローアイテムが移動した時間。
3 = フローアイテムの移動元のオブジェクト。この値はintとして返され、tonode()を使用してtreenodeに変換する必要があります。
4 = フローアイテムの移動先のオブジェクト。この値はintとして返され、tonode()を使用してtreenodeに変換する必要があります。
5 = フローアイテムが移動した時点でのアイテムタイプ。
0 = レコードID。これは、移動テーブルのレコードの行番号です。
1 = レコードに移動が記録されたフローアイテムのItemID。
2 = フローアイテムが移動した時間。
3 = フローアイテムの移動元のオブジェクト。この値はintとして返され、tonode()を使用してtreenodeに変換する必要があります。
4 = フローアイテムの移動先のオブジェクト。この値はintとして返され、tonode()を使用してtreenodeに変換する必要があります。
5 = フローアイテムが移動した時点でのアイテムタイプ。
例
getnummoverecords()の例を参照してください。
廃止
説明
このコマンドは廃止されました。全履歴レポート用に収集された移動レコードの数を返します。モデルがリセットされるとレコードは削除されるため、モデルの実行前は0が返されます。全履歴が有効でない場合、0が返されます。
例
// 記録された移動レコードを出力する
for (int rec = 1; rec <= getnummoverecords(); rec++)
{
int record = getmoverecord(rec);
pd(getmoverecordvalue(record,0)); pt(" ");
pd(getmoverecordvalue(record,1)); pt(" ");
pf(getmoverecordvalue(record,2)); pt(" ");
pt(getmoverecordvalue(record,3).name); pt(" ");
pt(getmoverecordvalue(record,4).name); pt(" ");
pd(getmoverecordvalue(record,5)); pt(" ");
}
for (int rec = 1; rec <= getnummoverecords(); rec++)
{
int record = getmoverecord(rec);
pd(getmoverecordvalue(record,0)); pt(" ");
pd(getmoverecordvalue(record,1)); pt(" ");
pf(getmoverecordvalue(record,2)); pt(" ");
pt(getmoverecordvalue(record,3).name); pt(" ");
pt(getmoverecordvalue(record,4).name); pt(" ");
pd(getmoverecordvalue(record,5)); pt(" ");
}
廃止
説明
このコマンドは廃止されました。全履歴レポート用に収集された状態変化レコードの数を返します。モデルがリセットされるとレコードは削除されるため、モデルの実行前は0が返されます。全履歴が有効でない場合、0が返されます。
例
// 記録された状態変化レコードを出力する
for (int rec = 1; rec <= getnumstaterecords(); rec++)
{
int record = getstaterecord(rec);
pd(getstaterecordvalue(record,0)); pt(" ");
pf(getstaterecordvalue(record,1)); pt(" ");
pd(getstaterecordvalue(record,2)); pt(" ");
pt(getstaterecordvalue(record,3).name); pr();
}
for (int rec = 1; rec <= getnumstaterecords(); rec++)
{
int record = getstaterecord(rec);
pd(getstaterecordvalue(record,0)); pt(" ");
pf(getstaterecordvalue(record,1)); pt(" ");
pd(getstaterecordvalue(record,2)); pt(" ");
pt(getstaterecordvalue(record,3).name); pr();
}
廃止、使用しないこと
説明
このコマンドは廃止されました。使用してはいけません。
objectのベースに現在割り当てられているbmpまたはjpeg画像のインデックス番号を返します。
objectのベースに現在割り当てられているbmpまたはjpeg画像のインデックス番号を返します。
例
getobjectimageindex(item);
廃止、Table.query()を使用すること
説明
このコマンドは廃止されました。代わりにTable.query()を使用してください。
最後のquery()結果で一致する行に関連付けられている、ソーステーブルの行番号を返します。
table - 文字列の場合、FROMステートメントで定義されたテーブルの名前です。エイリアスを使用した場合、テーブルのエイリアスを使用します。数値の場合、FROMステートメントのテーブルの1から始まるインデックスです。クエリにテーブルが1つしか存在しない場合、1を使用します。複数のテーブルの場合、FROMの最初のテーブルが1、2番目が2の順序です。
matchRow - クエリの結果テーブルの行で、1から始まります。
SELECT句の中でMIN()、MAX()、AVG()などの集計関数を使用している場合、このコマンドは動作しないことに注意してください。集計関数が使用されている場合、このコマンドは単にソーステーブル内の行数を返します。
最後のquery()結果で一致する行に関連付けられている、ソーステーブルの行番号を返します。
table - 文字列の場合、FROMステートメントで定義されたテーブルの名前です。エイリアスを使用した場合、テーブルのエイリアスを使用します。数値の場合、FROMステートメントのテーブルの1から始まるインデックスです。クエリにテーブルが1つしか存在しない場合、1を使用します。複数のテーブルの場合、FROMの最初のテーブルが1、2番目が2の順序です。
matchRow - クエリの結果テーブルの行で、1から始まります。
SELECT句の中でMIN()、MAX()、AVG()などの集計関数を使用している場合、このコマンドは動作しないことに注意してください。集計関数が使用されている場合、このコマンドは単にソーステーブル内の行数を返します。
例
廃止
説明
このコマンドは廃止されました。全履歴レポート用に記録された状態変化レコードを返します。全履歴が有効なとき、オブジェクトの状態が変化するごとに状態変化レコードが作成されます。この関数に渡されるパラメータは、ユーザーが取得するレコードの番号(1から開始)です。このコマンドがC++で呼び出された場合、戻り値はStateRecord*です。このコマンドがFlexScriptで呼び出された場合、戻り値はintに代入できます。
例
getnumstaterecords()の例を参照してください。
廃止
説明
このコマンドは廃止されました。関数の最初のパラメータとして渡された状態変化レコードから、値の1つを返します。このレコードは、getstaterecord()への呼び出しで返される戻り値です。この関数の2番目のパラメータとして渡される値は、状態変化レコードのどの値をユーザーが取得するかを示します。
0 = レコードID。これは、移動テーブルのレコードの行番号です。
1 = 状態変化の時間。
2 = オブジェクトの変化後の状態。
3 = 状態が変化したオブジェクト。この値はintとして返され、tonode()を使用してtreenodeに変換する必要があります。
0 = レコードID。これは、移動テーブルのレコードの行番号です。
1 = 状態変化の時間。
2 = オブジェクトの変化後の状態。
3 = 状態が変化したオブジェクト。この値はintとして返され、tonode()を使用してtreenodeに変換する必要があります。
例
getnumstaterecords()の例を参照してください。
廃止、Table.getColHeader()またはTable.getRowHeader()を使用すること
説明
例
廃止、Tableの[]オペレーターを使用すること
説明
このコマンドは廃止されました。代わりにTableクラスの[]オペレーターを使用してください。
テーブルのセルの数値を取得します。
テーブルのセルの数値を取得します。
例
廃止、Tableの[]オペレーターを使用すること
説明
このコマンドは廃止されました。代わりにTableクラスの[]オペレーターを使用してください。
テーブルのセルのテキスト値を取得します。
テーブルのセルのテキスト値を取得します。
例
廃止、TrackedVariableクラスを使用すること
説明
このコマンドは廃止されました。代わりにTrackedVariableクラスを使用してください。
例
廃止、mesh() APIを使用すること
説明
このコマンドは廃止されました。使用してはいけません。代わりにmesh() APIを使用してください。
例
廃止、fglColor()を使用すること
説明
このコマンドは廃止されました。代わりにfglColor()を使用してください。
例
廃止、fglColor()を使用すること
説明
このコマンドは廃止されました。代わりにfglColor()を使用してください。
例
廃止、fglNormal()を使用すること
説明
このコマンドは廃止されました。代わりにfglNormal()を使用してください。
例
glNormal3d(1,0,0);
廃止、List("GlobalListName")を使用すること
説明
このコマンドは廃止されました。代わりにList("GlobalListName")を使用してください。
グローバルリストを名前で参照します。
グローバルリストを名前で参照します。
例
廃止、fglRotate()を使用すること
説明
このコマンドは廃止されました。代わりにfglRotate()を使用してください。
例
廃止、mesh() APIを使用すること
説明
このコマンドは廃止されました。使用してはいけません。代わりにmesh() APIを使用してください。
例
廃止、fglTranslate()を使用すること
説明
このコマンドは廃止されました。代わりにfglTranslate()を使用してください。
例
廃止、mesh() APIを使用すること
説明
このコマンドは廃止されました。使用してはいけません。代わりにmesh() APIを使用してください。
例
廃止、Group[]を使用すること
説明
このコマンドは廃止されました。代わりにGroup[]を使用してください。
グループメンバーへの参照を取得します。
グループメンバーへの参照を取得します。
例
廃止、Group.removeMember()を使用すること
説明
例
説明
開発者向けです。コマンドについての情報の取得に使用します。パラメータ3にコマンド名を入力します。戻り値はdestnodeの文字列データにコピーされます。
「what」は、どの情報が必要なのかを次のように定義します。
1 - コマンドのドキュメントを含むxmlフラグメント文字列を返します。
「what」は、どの情報が必要なのかを次のように定義します。
1 - コマンドのドキュメントを含むxmlフラグメント文字列を返します。
例
helpcommands()
廃止、switch_hidelabel()を使用すること
説明
このコマンドは廃止されました。代わりにswitch_hidelabel()を使用してください。
このコマンドは、指定されたobjectについて、名前と基本統計を画面上で表示/非表示にします。値が1なら表示、0なら非表示になります。オブジェクトの名前と統計が非表示のとき、どのビューウィンドウにも表示されません。ビューウィンドウには、ビューのすべてのオブジェクトについて、このコネクタ表示を制御する属性もあります。
このコマンドは、指定されたobjectについて、名前と基本統計を画面上で表示/非表示にします。値が1なら表示、0なら非表示になります。オブジェクトの名前と統計が非表示のとき、どのビューウィンドウにも表示されません。ビューウィンドウには、ビューのすべてのオブジェクトについて、このコネクタ表示を制御する属性もあります。
例
Hidelabel(current,0);
currentで参照されるオブジェクトの名前と統計を表示しないよう設定します。
currentで参照されるオブジェクトの名前と統計を表示しないよう設定します。
廃止、switch_hideconnectors()を使用すること
説明
このコマンドは廃止されました。代わりにswitch_hideconnectors()を使用してください。
このコマンドは、指定されたobjectについて、ポートと接続を表示/非表示に設定します。値が1なら表示、0なら非表示になります。オブジェクトのポートと接続が非表示のとき、どのビューウィンドウにも表示されません。
このコマンドは、指定されたobjectについて、ポートと接続を表示/非表示に設定します。値が1なら表示、0なら非表示になります。オブジェクトのポートと接続が非表示のとき、どのビューウィンドウにも表示されません。
例
hideports(current,1);
currentオブジェクトのポートと接続をすべてのビューウィンドウに表示するよう設定します。
currentオブジェクトのポートと接続をすべてのビューウィンドウに表示するよう設定します。
廃止、+=オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに+=オペレーターを使用してください。myNode.value += 2;
ノードの値を定義された数値だけ増やします。
ノードの値を定義された数値だけ増やします。
例
inc(current.mylabel,1)
廃止、TrackedVariableクラスを使用すること
説明
このコマンドは廃止されました。代わりにTrackedVariableクラスを使用してください。
例
廃止、ユーザーライブラリを使用すること
説明
このコマンドは廃止されました。代わりにユーザーライブラリを使用してください。
サービスパック(.fpk)をインストールします。
サービスパック(.fpk)をインストールします。
例
installpackage("C:/mypak.fpk")
説明
このコマンドは廃止されました。このコマンドは、今後setitemコマンドとともに特殊コマンドとして使用してはいけません。代わりに、treenode変数タイプをアイテムとして宣言し、コード内で他の変数タイプと同様にアイテムを使用してください。
例
treenode item = model().subnodes[3];
pt(item.name);
モデル内で3にランクされるオブジェクトをitemに設定し、出力コンソールにその名前を表示します。
pt(item.name);
モデル内で3にランクされるオブジェクトをitemに設定し、出力コンソールにその名前を表示します。
廃止、for()またはwhile()コマンドを使用すること
説明
このコマンドは廃止されました。代わりにfor()またはwhile()コマンドを使用してください。
カウンターの値をstartからendまで、step単位で増やしながら、次に続く{}ブロックを繰り返し実行します。countコマンドを使用して、繰り返しごとに現在のカウンターの値にアクセスできます。countの戻り値は、現在何回目の反復が実行されているかによって異なります。
カウンターの値をstartからendまで、step単位で増やしながら、次に続く{}ブロックを繰り返し実行します。countコマンドを使用して、繰り返しごとに現在のカウンターの値にアクセスできます。countの戻り値は、現在何回目の反復が実行されているかによって異なります。
例
iterate(1,9,2)
{
pd(count);pr();
}
次の数値を出力コンソールに表示します:1,3,5,7,9
{
pd(count);pr();
}
次の数値を出力コンソールに表示します:1,3,5,7,9
廃止、List.backOrders()を使用すること
説明
例
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。
リストに値が出現する場所のインデックス。この関数は長さqtyのリストを検索し、値valが出現する位置を返します。
リストに値が出現する場所のインデックス。この関数は長さqtyのリストを検索し、値valが出現する位置を返します。
例
listinlist(5,3,2,1,2,3,4)
5つの数値のリストで、3は4番目の数値なので、インデックス番号4が返されます。
5つの数値のリストで、3は4番目の数値なので、インデックス番号4が返されます。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。
最も大きな値のインデックス。この関数は長さqtyのリストを検索し、最も大きな値が出現する位置を返します。
最も大きな値のインデックス。この関数は長さqtyのリストを検索し、最も大きな値が出現する位置を返します。
例
listmax(5,2,1,2,3,4)
5つの数値のリストで、4が最も大きな値なので、5が返されます。
5つの数値のリストで、4が最も大きな値なので、5が返されます。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。
最大値。この関数は長さqtyのリストを検索し、最も大きな値を返します。
最大値。この関数は長さqtyのリストを検索し、最も大きな値を返します。
例
listmaximum(5,2,1,2,3,4)
リストで最も大きな値が4なので、4が返されます。
リストで最も大きな値が4なので、4が返されます。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。
値の平均値。この関数は、長さqtyのリストから値の平均値を返します。
値の平均値。この関数は、長さqtyのリストから値の平均値を返します。
例
listmean(5,2,1,2,3,4)
2.5が返されます。
2.5が返されます。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。
最も小さな値のインデックス。この関数は長さqtyのリストを検索し、最も小さな値が出現する位置を返します。
最も小さな値のインデックス。この関数は長さqtyのリストを検索し、最も小さな値が出現する位置を返します。
例
listmin(5,2,1,2,3,4)
リストで最も小さな値が1で、2番目の値なので、2が返されます。
リストで最も小さな値が1で、2番目の値なので、2が返されます。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。
最小値。この関数は長さqtyのリストを検索し、最も小さな値を返します。
最小値。この関数は長さqtyのリストを検索し、最も小さな値を返します。
例
listminimum(5,2,1,2,3,4)
リストで最も小さな値が1なので、1が返されます。
リストで最も小さな値が1なので、1が返されます。
廃止、*オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに*オペレーターを使用してください。
リストの積。この関数は、長さqtyのリストに含まれるすべての値の積を返します。
リストの積。この関数は、長さqtyのリストに含まれるすべての値の積を返します。
例
listmul(5,2,1,2,3,4)
値48を返します。
値48を返します。
廃止、List.backOrders()[backOrderNum].remove()またはList.entries()[enterNum].remove()を使用すること
説明
このコマンドは廃止されました。代わりにList.backOrders()[backOrderNum].remove()またはList.entries()[entryNum].remove()を使用してください。
所有しているリストからエントリまたはバックオーダーを削除します。
所有しているリストからエントリまたはバックオーダーを削除します。
例
廃止、-オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに-オペレーターを使用してください。
リストの減算。この関数は、長さqtyのリストについて最初の値を取得してから、以後のすべての値を減算し、結果を返します。
リストの減算。この関数は、長さqtyのリストについて最初の値を取得してから、以後のすべての値を減算し、結果を返します。
例
listsub(5,2,1,2,3,4)
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりに+オペレーターを使用してください。
値の合計。この関数は、長さqtyのリストの値すべての合計を返します。
値の合計。この関数は、長さqtyのリストの値すべての合計を返します。
例
listsum(5,2,1,2,3,4)
廃止、soundload()を使用すること
説明
このコマンドは廃止されました。代わりにsoundload()を使用してください。
ディスク上のサウンドファイルがFlexSimにロードされ、メディアリストに記録されます。FlexSimのメディアリストは、ロードされたすべてのサウンドのリストを保持します。それぞれのサウンドには、対応する名前とインデックスが存在します。このコマンドは、ロードされたサウンドに対応するインデックスを返します。このサウンドは.wavファイルの必要があります。
ディスク上のサウンドファイルがFlexSimにロードされ、メディアリストに記録されます。FlexSimのメディアリストは、ロードされたすべてのサウンドのリストを保持します。それぞれのサウンドには、対応する名前とインデックスが存在します。このコマンドは、ロードされたサウンドに対応するインデックスを返します。このサウンドは.wavファイルの必要があります。
例
int applauseindex = loadsound("c:/My Music/APPLAUSE.WAV");
廃止、ローカル変数を使用すること
説明
このコマンドは廃止されました。代わりに、treenode、int、double、stringなどのローカル変数を使用してください。
インデックス付きローカル変数をツリーノードとして、参照を取得します。いくつのローカル変数を使用するか、およびどのデータタイプを保有するかは、localarray()を使用して定義する必要があります。flexscriptでのみ使用できます。
インデックス付きローカル変数をツリーノードとして、参照を取得します。いくつのローカル変数を使用するか、およびどのデータタイプを保有するかは、localarray()を使用して定義する必要があります。flexscriptでのみ使用できます。
例
setnodenum(local(1),4);
ローカル配列の最初の変数を4に設定します。
ローカル配列の最初の変数を4に設定します。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。
指定された数のローカル変数を持つ、汎用ローカル配列を割り当てます。
タイプは次のいずれかです:1 = num、2 = str、3 = coupling、4 = objflexscriptでのみ使用できます。
指定された数のローカル変数を持つ、汎用ローカル配列を割り当てます。
タイプは次のいずれかです:1 = num、2 = str、3 = coupling、4 = objflexscriptでのみ使用できます。
例
localarray(1,4)
対数正規分布からランダムなサンプルを返す
説明
lognormal()とlognormal2()は類似の関数ですが、パラメータの定義が異なります。lognormal()は、wikipediaや他のサイトで定義されているパラメータ定義を使用します。lognormal2()は、Expertfitの最新版で定義されているパラメータを使用します。本質的に、パラメータは次のように変換できます。
lognormal( location, normalmean, normalstdev ) = lognormal2( location, Math.exp( normalmean ), normalstdev )
lognormal2( location, scale, shape ) = lognormal( location, Math.log( scale ), shape ) (Math.exp(x)はeのx乗で、Math.log(x)はxの自然対数です)。
正しい分布を使用していることを確認してください。誤った分布を使用すると、不適切なシミュレーション結果が得られることがあります。
lognormal( location, normalmean, normalstdev, stream )は連続確率分布です。
入力:
location : ( - ∞, ∞ )
(Math.exp( normalmean ) > 0)となるようなnormalmean
(normalstdev > 0)となるようなnormalstdev
streamは、FlexSimの乱数ストリーム{0,1,2,...}のいずれかを参照します。
出力:
range = ( location , ∞ )
mean = location + Math.exp( normalmean + normalstdev²⁄ 2)
variance = Math.exp( 2*normalmean + normalstdev² ) [ Math.exp( normalstdev² ) − 1 ]
確率密度関数:

可能な用途:
一部のタスクを実行する時間のモデル化、および多数の他の数量の積となる数量をモデル化するため使用されます。データがない場合に概略モデルとしても使用できます。
コメント:
対数正規分布の確率密度は、normalstdev > 1についてはgamma( normalstdev, normalmean )およびweibull( normalstdev, normalmean )の密度に近い形となりますが、x=0付近で大きなスパイクが発生することがあり、多くの場合にはこれが有用です。
lognormal( location, normalmean, normalstdev ) = lognormal2( location, Math.exp( normalmean ), normalstdev )
lognormal2( location, scale, shape ) = lognormal( location, Math.log( scale ), shape ) (Math.exp(x)はeのx乗で、Math.log(x)はxの自然対数です)。
正しい分布を使用していることを確認してください。誤った分布を使用すると、不適切なシミュレーション結果が得られることがあります。
lognormal( location, normalmean, normalstdev, stream )は連続確率分布です。
入力:
location : ( - ∞, ∞ )
(Math.exp( normalmean ) > 0)となるようなnormalmean
(normalstdev > 0)となるようなnormalstdev
streamは、FlexSimの乱数ストリーム{0,1,2,...}のいずれかを参照します。
出力:
range = ( location , ∞ )
mean = location + Math.exp( normalmean + normalstdev²⁄ 2)
variance = Math.exp( 2*normalmean + normalstdev² ) [ Math.exp( normalstdev² ) − 1 ]
確率密度関数:

可能な用途:
一部のタスクを実行する時間のモデル化、および多数の他の数量の積となる数量をモデル化するため使用されます。データがない場合に概略モデルとしても使用できます。
コメント:
対数正規分布の確率密度は、normalstdev > 1についてはgamma( normalstdev, normalmean )およびweibull( normalstdev, normalmean )の密度に近い形となりますが、x=0付近で大きなスパイクが発生することがあり、多くの場合にはこれが有用です。
例
対数正規分布からランダムなサンプルを返す
説明
このコマンドは、データが存在しないときlognormal2コマンドの代替として使用されます。平均と標準偏差を指定でき、コマンドはこれらのパラメータからlognormal2コマンド用の正しい場所、スケール、形状のパラメータを計算し、その分布からサンプルを返します。分布の形状は鐘型の曲線で、右側に妥当な長さのテール部があるよう事前定義されていることに注意してください。したがって、このコマンドはlognormal2コマンドほど柔軟ではありません。このコマンドは三角分布と同様に、データが存在せず、分布の平均値と標準偏差が判明しており、分布が右傾斜している(右側のテールの方が長い)と想定できるが、分布に一致する実際のデータセットが存在しない場合に使用します。詳細については、lognormal2を参照してください。lognormal2の分布を記述する図に関して、lognormalmeanstdevコマンドはnormalstdev/shapeに値0.75を使用して形状を定義します。分布の形状は固定されているため、平均値と標準偏差値によっては負の値が返される場合もあることに注意してください。
例
double cycletime = lognormalmeanstdev(10, 2);
この例は、平均値が10、標準偏差が2の右傾斜した対数正規分布に従うランダムな値を返します。
この例は、平均値が10、標準偏差が2の右傾斜した対数正規分布に従うランダムな値を返します。
廃止、maintree()を使用すること
説明
このコマンドは廃止されました。代わりにmaintree()を使用してください。
メインツリーノードを取得します。これは、FlexSimの2つの主要なデータベースの1つです。「プロジェクトツリー」とも呼ばれます。他の主要なデータベースはビューツリーノードで、「ビューレイアウトツリー」とも呼ばれます。
メインツリーノードを取得します。これは、FlexSimの2つの主要なデータベースの1つです。「プロジェクトツリー」とも呼ばれます。他の主要なデータベースはビューツリーノードで、「ビューレイアウトツリー」とも呼ばれます。
例
main()
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArray(qty)を使用してください。Array array = Array(4);
ローカル配列を初期化します。
ローカル配列を初期化します。
例
廃止
説明
このコマンドは廃止されました。代わりに、バージョン4で提供されるDLL機能を使用してください。
dllプラグインで使用されます。タイプは次のいずれかです。
MOD_LOAD (1)
MOD_UNLOAD (2)
MOD_GETFUNCTION (3)
MOD_RUNFUNCTION (4)
dllプラグインで使用されます。タイプは次のいずれかです。
MOD_LOAD (1)
MOD_UNLOAD (2)
MOD_GETFUNCTION (3)
MOD_RUNFUNCTION (4)
例
module(MOD_UNLOAD,main.find("project/exec/dll/1"))
廃止、*オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに*オペレーターを使用してください。
aとbの積。value1*value2の数値演算の結果を返します。
aとbの積。value1*value2の数値演算の結果を返します。
例
double product = mul(3,4);
廃止、Object.centerObjects.lengthを使用すること
説明
例
廃止、Object.outObjects.lengthを使用すること
説明
例
ntravelto (obj traveler, obj spline, num endx, num endy, num endz, num vmax, num acc, num dec, num startspeed, num endspeed)
廃止、代わりにキネマティクスを使用すること
説明
このコマンドは廃止されました。代わりにキネマティクスを使用してください。
与えられたrzにオブジェクトを移動し、シミュレーションでの到着時間を返します。traveltoコマンドと似ていますが、開始および終了速度の定義が含まれます。TaskExecuterの開発に使用されます。
与えられたrzにオブジェクトを移動し、シミュレーションでの到着時間を返します。traveltoコマンドと似ていますが、開始および終了速度の定義が含まれます。TaskExecuterの開発に使用されます。
例
ntravelto(current, 0, 5, 8, 0, 1, 1, 1, 0, 1)
廃止、代わりにキネマティクスを使用すること
説明
このコマンドは廃止されました。代わりにキネマティクスを使用してください。
ntravelto()コマンドが呼び出された後で、objectのrzを更新します。TaskExecuterのOnPreDrawで、位置を更新するため使用されます。
ntravelto()コマンドが呼び出された後で、objectのrzを更新します。TaskExecuterのOnPreDrawで、位置を更新するため使用されます。
例
ntraveltoupdate(current)
廃止、contextdragconnection()を使用すること
説明
このコマンドは廃止されました。代わりにcontextdragconnection()を使用してください。
2つのオブジェクトを接続し、必要なポートを追加します。必要ならobject1には出力ポートが、object2には入力が追加されます。その後でポート同士が接続されます。
2つのオブジェクトを接続し、必要なポートを追加します。必要ならobject1には出力ポートが、object2には入力が追加されます。その後でポート同士が接続されます。
例
connect(so(),so().next)
廃止、getshapeindex()を使用すること
説明
このコマンドは廃止されました。代わりにgetshapeindex()を使用してください。
オブジェクトのデフォルト形状のインデックスを取得します。FlexSimのメディアリストは、ロードされたすべての形状のリストを保持します。それぞれの形状には、対応する名前とインデックスが存在します。このコマンドは、オブジェクトのデフォルト形状に対応するインデックスを返します。
オブジェクトのデフォルト形状のインデックスを取得します。FlexSimのメディアリストは、ロードされたすべての形状のリストを保持します。それぞれの形状には、対応する名前とインデックスが存在します。このコマンドは、オブジェクトのデフォルト形状に対応するインデックスを返します。
例
objectshapecode(so())
廃止、getobjecttextureindex()を使用すること
説明
このコマンドは廃止されました。代わりにgetobjecttextureindex()を使用してください。
objectのデフォルト画像のインデックスを取得します。FlexSimのメディアリストは、ロードされたすべてのテクスチャ(画像)のリストを保持します。それぞれのテクスチャには、対応する名前とインデックスが存在します。このコマンドは、オブジェクトのデフォルトテクスチャ(画像)に対応するインデックスを返します。
objectのデフォルト画像のインデックスを取得します。FlexSimのメディアリストは、ロードされたすべてのテクスチャ(画像)のリストを保持します。それぞれのテクスチャには、対応する名前とインデックスが存在します。このコマンドは、オブジェクトのデフォルトテクスチャ(画像)に対応するインデックスを返します。
例
objecttexcode(current)
廃止、fglColor()を使用すること
説明
このコマンドは廃止されました。代わりにfglColor()を使用してください。
例
廃止、fglEnable(GL_LIGHTING)およびfglDisable(GL_LIGHTING)を使用すること
説明
このコマンドは廃止されました。代わりにfglEnable(GL_LIGHTING)およびfglDisable(GL_LIGHTING)を使用してください。
例
廃止、Object.input.open()を使用すること
説明
このコマンドは廃止されました。代わりにObject.input.open()を使用してください。
このコマンドは、以前にcloseinput()コマンドでブロックされたオブジェクトの入力のブロックを解除します。進入を許可する前に、入力ポート自体と入力全般を開く必要があります。モデラーは、senddelayedmessage()コマンドによりトリガーされたOnMessageフィールドを除いて、いかなるフィールドでもこのコマンドを使用しないことをお勧めします。これは、ポートを開くコマンドは多くの場合、トランジションイベントで行うべきでない複数の他の動作を引き起こすためです。このコマンドをresumeinput()と比較してください。
このコマンドは、以前にcloseinput()コマンドでブロックされたオブジェクトの入力のブロックを解除します。進入を許可する前に、入力ポート自体と入力全般を開く必要があります。モデラーは、senddelayedmessage()コマンドによりトリガーされたOnMessageフィールドを除いて、いかなるフィールドでもこのコマンドを使用しないことをお勧めします。これは、ポートを開くコマンドは多くの場合、トランジションイベントで行うべきでない複数の他の動作を引き起こすためです。このコマンドをresumeinput()と比較してください。
例
if (current.subnodes.length < maxcontent)
openinput(current);
openinput(current);
廃止、Object.output.open()を使用すること
説明
このコマンドは廃止されました。代わりにObject.output.open()を使用してください。
このコマンドは、以前にcloseoutput()コマンドでブロックされたオブジェクトの出力のブロックを解除します。退出を許可する前に、出力ポート自体と出力全般を開く必要があります。モデラーは、senddelayedmessage()コマンドによりトリガーされたOnMessageフィールドを除いて、いかなるフィールドでもこのコマンドを使用しないことをお勧めします。これは、ポートを開くコマンドは多くの場合、トランジションイベントで行うべきでない複数の他の動作を引き起こすためです。このコマンドをresumeoutput()と比較してください。
このコマンドは、以前にcloseoutput()コマンドでブロックされたオブジェクトの出力のブロックを解除します。退出を許可する前に、出力ポート自体と出力全般を開く必要があります。モデラーは、senddelayedmessage()コマンドによりトリガーされたOnMessageフィールドを除いて、いかなるフィールドでもこのコマンドを使用しないことをお勧めします。これは、ポートを開くコマンドは多くの場合、トランジションイベントで行うべきでない複数の他の動作を引き起こすためです。このコマンドをresumeoutput()と比較してください。
例
if (current.subnodes.length > mincontent)
openoutput(current);
openoutput(current);
廃止、||オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに||オペレーターを使用してください。
例
廃止、Object.outObjects[]を使用すること
説明
例
廃止、param()を使用すること
説明
このコマンドは廃止されました。代わりにparamを使用してください。
このコマンドは、nodefunction()コマンドにより呼び出される関数の内部で使用されます。nodefunctionに渡された、indexにより指定されたパラメータを、ノード(またはツリーノード)として返します。nodefunction()に渡される最初の追加パラメータはパラメータ1、2番目はパラメータ2の順に番号が付けられます。パラメータをparval()およびparstr()で取得し、それぞれ数値と文字列にキャストすることもできます。
このコマンドは、nodefunction()コマンドにより呼び出される関数の内部で使用されます。nodefunctionに渡された、indexにより指定されたパラメータを、ノード(またはツリーノード)として返します。nodefunction()に渡される最初の追加パラメータはパラメータ1、2番目はパラメータ2の順に番号が付けられます。パラメータをparval()およびparstr()で取得し、それぞれ数値と文字列にキャストすることもできます。
例
トリガー/フィールドが
nodefunction(thefuncnode, item)
で呼び出された場合、そのトリガー/フィールド内で、最初の追加パラメータとして渡されたアイテムへのアクセスが、次のように取得されます。
treenode item = parnode(1);
nodefunction(thefuncnode, item)
で呼び出された場合、そのトリガー/フィールド内で、最初の追加パラメータとして渡されたアイテムへのアクセスが、次のように取得されます。
treenode item = parnode(1);
廃止、param()を使用すること
説明
このコマンドは廃止されました。代わりにparamを使用してください。
このコマンドは、nodefunction()コマンドにより呼び出される関数の内部で使用されます。nodefunctionに渡された、indexにより指定されたパラメータを、文字列として返します。nodefunction()に渡される最初の追加パラメータはパラメータ1、2番目はパラメータ2の順に番号が付けられます。パラメータをparam()コマンドで取得することもできます。
このコマンドは、nodefunction()コマンドにより呼び出される関数の内部で使用されます。nodefunctionに渡された、indexにより指定されたパラメータを、文字列として返します。nodefunction()に渡される最初の追加パラメータはパラメータ1、2番目はパラメータ2の順に番号が付けられます。パラメータをparam()コマンドで取得することもできます。
例
トリガー/フィールドが
nodefunction(thefuncnode, passingstr)
で呼び出された場合、そのトリガー/フィールド内で、最初の追加パラメータとして渡されたpassingstr文字列へのアクセスが、次のように取得されます。
string passedstr = parstr(1);
nodefunction(thefuncnode, passingstr)
で呼び出された場合、そのトリガー/フィールド内で、最初の追加パラメータとして渡されたpassingstr文字列へのアクセスが、次のように取得されます。
string passedstr = parstr(1);
廃止、使用しないこと
説明
このコマンドは廃止されました。「particle」オブジェクトに値を設定するため使用されていましたが、このオブジェクトのサポートは終了しました。
例
廃止、param()を使用すること
説明
このコマンドは廃止されました。代わりにparamを使用してください。
このコマンドは、nodefunction()コマンドにより呼び出される関数の内部で使用されます。indexにより指定されたnodefunctionに渡されたパラメータを、数値として返します。nodefunction()に渡される最初の追加パラメータはパラメータ1、2番目はパラメータ2の順に番号が付けられます。パラメータをparnode()およびparstr()で取得し、それぞれツリーノードと文字列にキャストすることもできます。
このコマンドは、nodefunction()コマンドにより呼び出される関数の内部で使用されます。indexにより指定されたnodefunctionに渡されたパラメータを、数値として返します。nodefunction()に渡される最初の追加パラメータはパラメータ1、2番目はパラメータ2の順に番号が付けられます。パラメータをparnode()およびparstr()で取得し、それぞれツリーノードと文字列にキャストすることもできます。
例
トリガー/フィールドが
nodefunction(thefuncnode, passingval)
で呼び出された場合、そのトリガー/フィールド内で、最初の追加パラメータとして渡されたpassingvalへのアクセスが、次のように取得されます。
double passedval = parval(1);
nodefunction(thefuncnode, passingval)
で呼び出された場合、そのトリガー/フィールド内で、最初の追加パラメータとして渡されたpassingvalへのアクセスが、次のように取得されます。
double passedval = parval(1);
廃止、print()を使用すること
説明
このコマンドは廃止されました。代わりにprint()コマンドを使用してください。
ASCII文字を出力コンソールに表示します。
ASCII文字を出力コンソールに表示します。
例
廃止、print()を使用すること
説明
このコマンドは廃止されました。代わりにprint()コマンドを使用してください。
浮動小数点数を出力コンソールに表示します。
浮動小数点数を出力コンソールに表示します。
例
説明
このコマンドは廃止されました。このコマンドは、今後setportコマンドとともに特殊コマンドとして使用してはいけません。代わりに、int変数タイプをポートとして宣言し、コード内で他の変数タイプと同様にポートを使用してください。
例
int port = param(3);
pd(port);
ポートをparam(3)に設定し、出力コンソールに値を表示します。
pd(port);
ポートをparam(3)に設定し、出力コンソールに値を表示します。
廃止、Table("GlobalTableName")を使用すること
説明
このコマンドは廃止されました。代わりにTableクラスを使用してください。
グローバルテーブルへの参照を取得します。
グローバルテーブルへの参照を取得します。
例
Table table = reftable("GlobalTable1")
廃止、Vec3.project()を使用すること
説明
例
double x = relloc(current,model(),1);
double y = relloc(current,model(),2);
double z = relloc(current,model(),3);
x、y、zに、currentオブジェクトのx、y、z位置を、モデル空間への相対位置として設定します。
double y = relloc(current,model(),2);
double z = relloc(current,model(),3);
x、y、zに、currentオブジェクトのx、y、z位置を、モデル空間への相対位置として設定します。
説明
指定された回数だけ式を実行します。式では「count」を使用して実行された繰り返し回数を取得できます(1から始まります)。
例
repeat(current.outObjects.length, current.outObjects[count].input.close);
この例は、currentの出力ポートに接続されているすべてのオブジェクトの入力を閉じます。
この例は、currentの出力ポートに接続されているすべてのオブジェクトの入力を閉じます。
廃止、resetmodel()を使用すること
説明
このコマンドは廃止されました。代わりにresetmodel()を使用してください。
開発者向けです。このコマンドはモデルをリセットします。シミュレーションクロックは0に設定され、モデルのすべてのオブジェクトについてOnResetイベント関数が呼び出されます。OnResetイベントは一般に、ユーザーが定義したResetTrigger関数を呼び出します。モデルはリセット前にコンパイル済みの必要があります。通常は、reset()の代わりにresetmodel()コマンドを呼び出します。
開発者向けです。このコマンドはモデルをリセットします。シミュレーションクロックは0に設定され、モデルのすべてのオブジェクトについてOnResetイベント関数が呼び出されます。OnResetイベントは一般に、ユーザーが定義したResetTrigger関数を呼び出します。モデルはリセット前にコンパイル済みの必要があります。通常は、reset()の代わりにresetmodel()コマンドを呼び出します。
例
reset();
go();
モデルをリセットしてから実行します。
go();
モデルをリセットしてから実行します。
廃止、使用しないこと
説明
このコマンドは廃止されました。使用してはいけません。
例
廃止、ユーザーライブラリを使用すること
説明
このコマンドは廃止されました。代わりにユーザーライブラリを使用してください。
ノードをサービスパックファイル(.fpk)としてディスクに保存します。
ファイルの保存ダイアログボックスが表示され、ファイルのパスと名前を定義できます。サービスパックは、サブノードを持つノードです。最初のサブノードはトグルされたflexscriptで、文字列データとコードを含むと見なされます。サービスパックが[ファイル]|[サービスパックのインストール]を使用してロードされると、サービスパックの最初のサブノードが自動的に実行されます。このコードは通常、他のサブノードをMAINおよびVIEWツリーにコピーします。
ノードをサービスパックファイル(.fpk)としてディスクに保存します。
ファイルの保存ダイアログボックスが表示され、ファイルのパスと名前を定義できます。サービスパックは、サブノードを持つノードです。最初のサブノードはトグルされたflexscriptで、文字列データとコードを含むと見なされます。サービスパックが[ファイル]|[サービスパックのインストール]を使用してロードされると、サービスパックの最初のサブノードが自動的に実行されます。このコードは通常、他のサブノードをMAINおよびVIEWツリーにコピーします。
例
savefpk(so());
廃止、Object.setLocation()を使用すること
説明
例
廃止、ラベルを使用すること
説明
このコマンドは廃止されました。代わりにラベルを使用してください。
このコマンドは、オブジェクトのitemtype属性をvalueに設定します。オブジェクトにitemtype属性が存在しない場合、このコマンドは何もしません。itemtype属性は通常、同じクラスでタイプが異なるフローアイテムを区別するため使用されます。
このコマンドは、オブジェクトのitemtype属性をvalueに設定します。オブジェクトにitemtype属性が存在しない場合、このコマンドは何もしません。itemtype属性は通常、同じクラスでタイプが異なるフローアイテムを区別するため使用されます。
例
setitemtype(item,duniform(1,3));
itemで参照されるフローアイテムのitemtype属性を、1から3までのランダムな整数に設定します。
itemで参照されるフローアイテムのitemtype属性を、1から3までのランダムな整数に設定します。
廃止、treenode.LabelNameを使用すること
説明
例
廃止、treenode.LabelNameを使用すること
説明
例
廃止、treenode.LabelNameを使用すること
説明
例
廃止、使用しないこと
説明
このコマンドは廃止されました。使用してはいけません。
オブジェクトのベースに割り当てられているbmpまたはjpeg画像(2D形状およびベース画像)のインデックス番号を設定します。新しいインデックスを有効にするには、オブジェクトのimagebaseノードを削除するか、名前を変更する必要があるため、このコマンドはimagebaseノードの名前を「_imagebase」に変更します。インデックス番号は、現在インポートされているbmpまたはjpeg画像の有効なインデックス番号の必要があります。現在インポートされている画像を表示する、または別のbmpやjpeg画像をインポートするには、ツールボックスの[メディアをインポート]オプションを使用してください。
オブジェクトのベースに割り当てられているbmpまたはjpeg画像(2D形状およびベース画像)のインデックス番号を設定します。新しいインデックスを有効にするには、オブジェクトのimagebaseノードを削除するか、名前を変更する必要があるため、このコマンドはimagebaseノードの名前を「_imagebase」に変更します。インデックス番号は、現在インポートされているbmpまたはjpeg画像の有効なインデックス番号の必要があります。現在インポートされている画像を表示する、または別のbmpやjpeg画像をインポートするには、ツールボックスの[メディアをインポート]オプションを使用してください。
例
setobjectimageindex(item,gettextureindex("fs3d\\BBsphere.bmp"));
廃止、Tableクラスを使用すること
説明
このコマンドは廃止されました。代わりにTableクラスを使用してください。
例
廃止、Table.setColHeader()またはTable.setRowHeader()を使用すること
説明
例
廃止、Tableの[]オペレーターを使用すること
説明
このコマンドは廃止されました。代わりにTableクラスの[]オペレーターを使用してください。
テーブルのセルの数値を設定します。
テーブルのセルの数値を設定します。
例
廃止、Tableの[]オペレーターを使用すること
説明
このコマンドは廃止されました。代わりにTableクラスの[]オペレーターを使用してください。
テーブルのセルのテキスト値を設定します。
テーブルのセルのテキスト値を設定します。
例
廃止、TrackedVariableクラスを使用すること
説明
このコマンドは廃止されました。代わりにTrackedVariableクラスを使用してください。
例
廃止
説明
このコマンドは廃止されました。このコマンドを使用しない、より高速で軽量な取り消し機能の実装が開発されたため、このコマンドは現在では廃止されています。
許可される取り消しの最大数を設定します。マウスがクリックされるか、キーが押されるごとに、モデル全体のコピーが保存されます。setundosコマンドを使用して、取り消し用に記憶されるモデルのコピーの最大数を指定できます。このコマンドを使用するには、最初にメインツリーにundoという名前のノードを作成し、数値データを与える必要があります。
許可される取り消しの最大数を設定します。マウスがクリックされるか、キーが押されるごとに、モデル全体のコピーが保存されます。setundosコマンドを使用して、取り消し用に記憶されるモデルのコピーの最大数を指定できます。このコマンドを使用するには、最初にメインツリーにundoという名前のノードを作成し、数値データを与える必要があります。
例
setundos(2);
廃止、drawtomodelscale()を使用すること
説明
このコマンドは廃止されました。代わりにdrawtomodelscale()を使用してください。
OpenGL空間をグローバルマトリクスに設定します。
OpenGL空間をグローバルマトリクスに設定します。
例
spaceglobal()
廃止、drawtoobjectscale()を使用すること
説明
このコマンドは廃止されました。使用してはいけません。代わりにdrawtoobjectscale()を使用してください。
例
spaceobject()
startanimation (obj object, num/str animation[, num speedtype, num speedvalue, num repeattype, num repeatvalue])
廃止、Animationクラスを使用すること
説明
このコマンドは廃止されました。代わりにAnimationクラスを使用してください。
objectのアニメーションを開始します。
objectのアニメーションを開始します。
例
startanimation(current, "Stand");
廃止、Modelクラスを使用すること
説明
このコマンドは廃止されました。代わりにModel.statisticalTimeを使用してください。
実験でウォームアップ時間が経過した後、またはresetstats()が実行された後など、状態が最後にリセットされたときに相対的な現在のシミュレーション時間を返します。
実験でウォームアップ時間が経過した後、またはresetstats()が実行された後など、状態が最後にリセットされたときに相対的な現在のシミュレーション時間を返します。
例
item.TimeIn = statisticaltime();
itemで参照されるオブジェクトの「TimeIn」というラベルを、現在のシミュレーションクロック時間に設定します。
itemで参照されるオブジェクトの「TimeIn」というラベルを、現在のシミュレーションクロック時間に設定します。
廃止、Animationクラスを使用すること
説明
このコマンドは廃止されました。代わりにAnimationクラスを使用してください。
オブジェクトのアニメーションを停止します。
オブジェクトのアニメーションを停止します。
例
stopanimation(current, "Walk");
廃止、Object.stop()を使用すること
説明
このコマンドは廃止されました。代わりにObject.stop()を使用してください。
オブジェクトに対して、現在行っている動作を停止し、指定された状態に移行して(指定されているなら状態プロファイルの状態に)、resumeobject()が呼び出されるまで待つように通知します。stopobjectコマンドは累積されます。すなわち、同じオブジェクトに対してstopobjectが2回呼び出されると、そのオブジェクトはresumeobjectが同様に2回呼び出されるまで動作を再開しません。オブジェクトの停止は、停止されるオブジェクトのタイプによって異なります。
FixedResourcesの場合、一般にイベントが無期限に遅延され、入力と出力が停止され、オブジェクトへ、およびオブジェクトからのあらゆる動作は停止されます。このため、TaskExecutersがオブジェクトへのロードやオブジェクトからのアンロードを試みるには、オブジェクトの再開まで待つ必要があります。
TaskExecutersの場合、イベントは遅延されませんが、TaskExecuter用に優先度100,000のプリエンプトのタスクシーケンスが作成され、その中に1つのTE_STOPタスクが含まれます。
同じオブジェクトに複数の停止リクエストが存在する場合、それぞれの停止リクエストの状態は記憶されないことに注意してください。オブジェクトがエンティティAにより状態12での停止を要求され、その後でエンティティBにより状態14での停止を要求された場合、オブジェクトは状態14に移行し、状態12は記憶されません。エンティティBがエンティティAより前にオブジェクトを再開させても、オブジェクトはすべての停止リクエストが再開されるまで状態14に維持されます。
最後の2つのパラメータidとpriorityはオプションで、前の段落に記載された問題を修正するために最近追加されたものです。これらのパラメータが指定されると、要求された停止の回数を増やすだけでなく、停止リクエストのレコードが保存されます。idは停止リクエストのキーと同様に扱われます。priorityは、オブジェクトが停止リクエストを優先度付けするために使用されます。たとえば、スケジュールされた停止状態用の停止リクエストと、故障状態用の停止リクエストが同時に存在する場合、オブジェクトは理論的には同時に2つの状態に置かれるべきですが、FlexSimのオブジェクトは同時に1つの状態しかとれないため、優先度の値で判断され、優先度が最も高い停止リクエストの状態に移行します。
id値は、後でresumeobject()コマンドに追加されるid値と一致する必要があります。この値は、停止リクエストと、対応する再開リクエストを一致するために使用されます。たとえば、オブジェクトをスケジュールされた保守のため、id値1で停止した場合、スケジュールされた保守が完了したら、同じ1のid値でオブジェクトを再開する必要があります。
オブジェクトに対して、現在行っている動作を停止し、指定された状態に移行して(指定されているなら状態プロファイルの状態に)、resumeobject()が呼び出されるまで待つように通知します。stopobjectコマンドは累積されます。すなわち、同じオブジェクトに対してstopobjectが2回呼び出されると、そのオブジェクトはresumeobjectが同様に2回呼び出されるまで動作を再開しません。オブジェクトの停止は、停止されるオブジェクトのタイプによって異なります。
FixedResourcesの場合、一般にイベントが無期限に遅延され、入力と出力が停止され、オブジェクトへ、およびオブジェクトからのあらゆる動作は停止されます。このため、TaskExecutersがオブジェクトへのロードやオブジェクトからのアンロードを試みるには、オブジェクトの再開まで待つ必要があります。
TaskExecutersの場合、イベントは遅延されませんが、TaskExecuter用に優先度100,000のプリエンプトのタスクシーケンスが作成され、その中に1つのTE_STOPタスクが含まれます。
同じオブジェクトに複数の停止リクエストが存在する場合、それぞれの停止リクエストの状態は記憶されないことに注意してください。オブジェクトがエンティティAにより状態12での停止を要求され、その後でエンティティBにより状態14での停止を要求された場合、オブジェクトは状態14に移行し、状態12は記憶されません。エンティティBがエンティティAより前にオブジェクトを再開させても、オブジェクトはすべての停止リクエストが再開されるまで状態14に維持されます。
最後の2つのパラメータidとpriorityはオプションで、前の段落に記載された問題を修正するために最近追加されたものです。これらのパラメータが指定されると、要求された停止の回数を増やすだけでなく、停止リクエストのレコードが保存されます。idは停止リクエストのキーと同様に扱われます。priorityは、オブジェクトが停止リクエストを優先度付けするために使用されます。たとえば、スケジュールされた停止状態用の停止リクエストと、故障状態用の停止リクエストが同時に存在する場合、オブジェクトは理論的には同時に2つの状態に置かれるべきですが、FlexSimのオブジェクトは同時に1つの状態しかとれないため、優先度の値で判断され、優先度が最も高い停止リクエストの状態に移行します。
id値は、後でresumeobject()コマンドに追加されるid値と一致する必要があります。この値は、停止リクエストと、対応する再開リクエストを一致するために使用されます。たとえば、オブジェクトをスケジュールされた保守のため、id値1で停止した場合、スケジュールされた保守が完了したら、同じ1のid値でオブジェクトを再開する必要があります。
例
stopobject(current.centerObjects[1], STATE_BLOCKED);
説明
このコマンドは廃止されました。このコマンドを使用しない、より高速で軽量な取り消し機能の実装が開発されたため、このコマンドは現在では廃止されています。
現在のモデルのアーカイブされたコピーを、メインツリーの取り消しフォルダに明示的に保存します。詳細については、undos()コマンドのドキュメントを参照してください。
現在のモデルのアーカイブされたコピーを、メインツリーの取り消しフォルダに明示的に保存します。詳細については、undos()コマンドのドキュメントを参照してください。
例
store();
説明
このコマンドは廃止されました。returnステートメントを使用して、C++のユーザーコマンドから簡単に文字列を返すことができます。
FlexSim 7.7より以前では、ユーザーコマンドのC++実装から文字列を返すために、このコマンドが使用されていました。このコマンドはC++でのみ必要でした。FlexScriptのユーザーコマンドでは、returnステートメントで簡単に文字列を返すことができます。
FlexSim 7.7より以前では、ユーザーコマンドのC++実装から文字列を返すために、このコマンドが使用されていました。このコマンドはC++でのみ必要でした。FlexScriptのユーザーコマンドでは、returnステートメントで簡単に文字列を返すことができます。
例
C++: stringreturn(result, callpoint); return 0;
廃止、apchar()を使用すること
説明
このコマンドは廃止されました。代わりにapchar()を使用してください。
このコマンドは、C++文字へのポインタとしして文字列を返します。char*のみを受け付ける一部のC++コマンド用に、stringタイプの変数をchar*タイプに変換するため使用されます。Flexscriptでは必要ありません。
このコマンドは、C++文字へのポインタとしして文字列を返します。char*のみを受け付ける一部のC++コマンド用に、stringタイプの変数をchar*タイプに変換するため使用されます。Flexscriptでは必要ありません。
例
setname(current,stringtopchar("ThisObjectName"));
currentで参照されるオブジェクトの名前を「ThisObjectName」に設定します。ここでstringtopchar()コマンドは必須ではありませんが、正当です。
currentで参照されるオブジェクトの名前を「ThisObjectName」に設定します。ここでstringtopchar()コマンドは必須ではありませんが、正当です。
廃止、\"を使用すること
説明
このコマンドは廃止されました。文字列に引用符を含めるには、代わりに\"を使用してください。
例
strquote("hello")
廃止、-オペレーターを使用すること
説明
このコマンドは廃止されました。代わりに-オペレーターを使用してください。
value1とvalue2の代わりにオペレーターを使用してください。数値演算式value1-value2の結果を返します。
value1とvalue2の代わりにオペレーターを使用してください。数値演算式value1-value2の結果を返します。
例
代わりにdoubleオペレーターを使用してください。 = sub(10,4);
廃止、使用しないこと
説明
このコマンドは廃止されました。使用してはいけません。オブジェクトの「2D形状を表示」フラグを取得または設定します。値が1なら非表示、0なら表示、-1なら現在の値を取得します。オブジェクトの2D形状(ベース)は、平面ビューウィンドウに表示されます。ビューウィンドウにはhideallbasesという名前の属性もあり、ビュー内のすべてのオブジェクトについて2D形状(ベース)の表示をコントロールしていることに注意してください。
例
switch_hidebase(so(),1)
廃止、追跡変数クラスを使用すること
説明
このコマンドは廃止されました。代わりにTrackedVariableクラスを使用してください。
例
廃止、キネマティクスを使用すること
説明
このコマンドは廃止されました。代わりにキネマティクスを使用してください。
オブジェクトの現在の移動パラメータを計算します。移動パスが計算されます。設定されると、このコマンドにより定義された移動パスに基づいてオブジェクトの位置が計算されます。この関数は、移動の終了時間を返します。この関数をスプラインと組み合わせて使用し、曲線の移動パスを作成できます。
オブジェクトの現在の移動パラメータを計算します。移動パスが計算されます。設定されると、このコマンドにより定義された移動パスに基づいてオブジェクトの位置が計算されます。この関数は、移動の終了時間を返します。この関数をスプラインと組み合わせて使用し、曲線の移動パスを作成できます。
例
travelto(traveler,NULL,100,100,0,5,1,6)
廃止、キネマティクスを使用すること
説明
このコマンドは廃止されました。代わりにキネマティクスを使用してください。
現在の移動パラメータに基づいてオブジェクトの位置を更新します。オブジェクトに対して実行されたtravelto()コマンドで計算された時間および移動パスのパラメータに基づいて、オブジェクトの位置を明示的に設定します。必要なら、パスのジオメトリとしてスプラインを使用します。
現在の移動パラメータに基づいてオブジェクトの位置を更新します。オブジェクトに対して実行されたtravelto()コマンドで計算された時間および移動パスのパラメータに基づいて、オブジェクトの位置を明示的に設定します。必要なら、パスのジオメトリとしてスプラインを使用します。
例
traveltoupdate(current)
以前のtraveto()コマンドで設定された移動パラメータに基づいて、currentオブジェクトの位置を更新します。このコマンドは通常、[カスタム描画コード]フィールドから実行されます。
以前のtraveto()コマンドで設定された移動パラメータに基づいて、currentオブジェクトの位置を更新します。このコマンドは通常、[カスタム描画コード]フィールドから実行されます。
説明
このコマンドは廃止されました。このコマンドを使用しない、より高速で軽量な取り消し機能の実装が開発されたため、このコマンドは現在では廃止されています。
このコマンドは、マウスがクリック、またはキーが押されるごとにモデルのコピーを自動的に保存するか(1)、しないか(0)を設定するため使用されます。setundosコマンドを使用して、取り消し用に記憶されるモデルのコピーの最大数を指定できます。このコマンドが正しく機能するには、最初にメインツリーにundoという名前のノードを作成し、数値データを与える必要があります。
このコマンドは、マウスがクリック、またはキーが押されるごとにモデルのコピーを自動的に保存するか(1)、しないか(0)を設定するため使用されます。setundosコマンドを使用して、取り消し用に記憶されるモデルのコピーの最大数を指定できます。このコマンドが正しく機能するには、最初にメインツリーにundoという名前のノードを作成し、数値データを与える必要があります。
例
undos(1);
廃止、Animationクラスを使用すること
説明
このコマンドは廃止されました。代わりにAnimationクラスを使用してください。
オブジェクトのアニメーションを更新します。
オブジェクトのアニメーションを更新します。
例
updateanimation(current);
廃止、ツールボックスを使用すること
説明
このコマンドは廃止されました。ツールボックスを使用してください。
ツールの追加または削除を反映してツールメニューを更新します。
ツールの追加または削除を反映してツールメニューを更新します。
例
updatetoolsmenu()
廃止、nodefunction()を使用すること
説明
このコマンドは廃止されました。nodefunction()はどのノードにも使用できるため、こちらを使用してください。
オブジェクトのuserfunctionsグループにある、指定されたランクのindexを持つノードと関連付けられているコードを実行します。呼び出された関数ノードの中でparam()を使用し、関数に渡された引数を取得してください。
オブジェクトのuserfunctionsグループにある、指定されたランクのindexを持つノードと関連付けられているコードを実行します。呼び出された関数ノードの中でparam()を使用し、関数に渡された引数を取得してください。
例
userfunction_s(current,4,1,2,3)
currentオブジェクトのuserfunctionsグループ内で4番目にランクされているノードと関連付けられているコードを実行します。
currentオブジェクトのuserfunctionsグループ内で4番目にランクされているノードと関連付けられているコードを実行します。
廃止、nodefunction()を使用すること
説明
このコマンドは廃止されました。nodefunction()はどのノードにも使用できるため、こちらを使用してください。
オブジェクトのuserfunctionsグループにある、指定された名前を持つノードと関連付けられているコードを実行します。呼び出された関数ノードの中でparam()を使用し、関数に渡された引数を取得してください。
オブジェクトのuserfunctionsグループにある、指定された名前を持つノードと関連付けられているコードを実行します。呼び出された関数ノードの中でparam()を使用し、関数に渡された引数を取得してください。
例
userfunction_s(current,"myfunc",1,2,3)
currentオブジェクトのuserfunctionsグループ内の、「myfunc」という名前のノードと関連付けられているコードを実行します。
currentオブジェクトのuserfunctionsグループ内の、「myfunc」という名前のノードと関連付けられているコードを実行します。
廃止、getvarnode()を使用すること
説明
このコマンドは廃止されました。代わりにgetvarnode()を使用してください。
「variables」内のオブジェクトのノードをインデックスで取得します。
「variables」内のオブジェクトのノードをインデックスで取得します。
例
var(so(),1)
廃止、getvarnode()を使用すること
説明
このコマンドは廃止されました。代わりにgetvarnode()を使用してください。
「variables」内のオブジェクトのノードを名前で取得します。
「variables」内のオブジェクトのノードを名前で取得します。
例
var_s(current,"myatt")
廃止、Object.getLocation()を使用すること
説明
例
廃止、Object.locationまたはObject.getLocation()を使用すること
説明
例
廃止、Object.rotationまたはObject.setRotation()を使用すること
説明
例
廃止、Object.getLocation()を使用すること
説明
例
廃止、Object.locationまたはObject.getLocation()を使用すること
説明
例
廃止、Object.getLocation()を使用すること
説明
例
廃止、Object.locationまたはObject.getLocation()を使用すること
説明
例
開発
高レベルの開発コマンドで、一般にエンドユーザー向けではありません。
addcommand (obj codenode, str commandname, str description, str parameters, str example [, str cppprefix, str shortdescription])
説明
開発者向けです。現在利用可能なコマンドのリストにFlexscriptコマンドを追加します。新しいコマンドは、次にコンパイルを行うときまで利用可能です。エンドユーザーが独自のコマンドを作成するには、[ツール]|[ユーザーコマンド]メニューを使用できます。
例
addcommand(...)
説明
開発者向けです。指定されたファイルの名前に!を追加し、ファイルをバックアップします。ファイルのコピーは行われないことに注意してください。ファイルを上書きする前に使用します。
例
backupfile(modeldir() + "mydocument.htm");
説明
開発者向けです。このコマンドは、Flexscriptノードとして割り当てられているツリー内のすべてのノードについて、Flexscriptツリーを構築します。Flexscriptノードを実行する前に、Flexscriptツリーを作成する必要があります。このオプションは、メインメニューの[構築]->[すべてのFlexScriptを構築]で使用できます。モデルのどこかにFlexscriptが記述されている場合、そのモデルを実行する前にこの操作を行う必要があります。また、GUIに変更を加えた後もこの操作を行います。
例
buildall();
ツリー内のすべてのFlexscriptノードにFlexscriptツリーを構築します。
ツリー内のすべてのFlexscriptノードにFlexscriptツリーを構築します。
説明
開発者向けです。このコマンドは、ノードとして指定されたノードがFlexscriptノードとして割り当てられているなら、そのノード用のFlexscriptツリーを構築します。Flexscriptノードを実行する前に、Flexscriptツリーを作成する必要があります。
例
buildnodeflexscript(Table("mytable").cell(1,2));
「mytable」という名前のGlobalTableの行1、列2にあるノードがFlexscriptノードなら、そのノード用のFlexscriptツリーを構築します。
「mytable」という名前のGlobalTableの行1、列2にあるノードがFlexscriptノードなら、そのノード用のFlexscriptツリーを構築します。
解像度を変更する
説明
解像度を変更します。
例
changedisplay(1024,768,0,0,0)
説明
開発者向けです。このコマンドは、指定されたノードから始めて、Flexscriptツリーを再帰的に削除します。
例
cleannodeflexscript(model());
モデル内のすべてのFlexscriptノードを削除します。
モデル内のすべてのFlexscriptノードを削除します。
説明
開発者向けです。destroyobject()を使用してください。
thenodeを削除します。
thenodeを削除します。
例
cmddelete(model().subnodes[4]))
説明
開発者向けです。
名前と拡張子により指定されるファイルをロードします。次のファイルが認識されます:プロジェクト(fsp)、セッション(fss)、モデル(fsm)、ビューレイアウト(fsv)。silentが0なら、ユーザーは開くファイルが正しいことを確認するよう求められます。
名前と拡張子により指定されるファイルをロードします。次のファイルが認識されます:プロジェクト(fsp)、セッション(fss)、モデル(fsm)、ビューレイアウト(fsv)。silentが0なら、ユーザーは開くファイルが正しいことを確認するよう求められます。
例
cmdloadbyextension("c:/mysession.fss",0)
説明
開発者向けです。
名前で指定されたセッションをロードします。
名前で指定されたセッションをロードします。
例
cmdloadsession("c:/mysession.fss")
説明
開発者向けです。
ファイルパスで指定されたツリーをdesttreeにロードします。デフォルトでは、ロード後にすべてのflexscriptが構築されます。nobuildが1なら、flexscriptは構築されません。flexscriptとして切り替えられるスクリプトノードからこのコマンドを実行する場合、nobuildに1を設定します。これを行わない場合、スクリプトは正常に終了しません。
ファイルパスで指定されたツリーをdesttreeにロードします。デフォルトでは、ロード後にすべてのflexscriptが構築されます。nobuildが1なら、flexscriptは構築されません。flexscriptとして切り替えられるスクリプトノードからこのコマンドを実行する場合、nobuildに1を設定します。これを行わない場合、スクリプトは正常に終了しません。
例
cmdloadtree(node("MAIN:/project/model/2"),"c:/mytree.t"))
説明
開発者向けです。
モデルを保存します。このコマンドにより[名前を付けてモデルを保存]ダイアログボックスが表示され、保存するモデルのファイル名を指定できます。
モデルを保存します。このコマンドにより[名前を付けてモデルを保存]ダイアログボックスが表示され、保存するモデルのファイル名を指定できます。
例
cmdsaveas()
名前を指定してツリーを保存する
説明
名前を指定してツリーを保存します。
例
cmdsavetree(node("MAIN:/project/library/1"),"c:\\mytree.t"))
説明
開発者向けです。オブジェクトから別のオブジェクトに属性をコピーします。maskパラメータを使用して、特定のグループを有効にできます(最下位ビットから)。
ATTCOPY_ALL
ATTCOPY_SPATIAL
ATTCOPY_OFFSETS
ATTCOPY_VISUAL
ATTCOPY_MEDIA ATTCOPY_LABELS
ATTCOPY_VARIABLES
ATTCOPY_DESCRIPTIVE
ATTCOPY_TABLES
ORオペレーター(|)を使用すると、これらの値をmaskパラメータの1つの値として組み合わせできます。
ATTCOPY_ALL
ATTCOPY_SPATIAL
ATTCOPY_OFFSETS
ATTCOPY_VISUAL
ATTCOPY_MEDIA ATTCOPY_LABELS
ATTCOPY_VARIABLES
ATTCOPY_DESCRIPTIVE
ATTCOPY_TABLES
ORオペレーター(|)を使用すると、これらの値をmaskパラメータの1つの値として組み合わせできます。
例
copyattributes(library().subnodes[1],model().subnodes[1],ATTCOPY_SPATIAL | ATTCOPY_VISUAL)
説明
開発者向けです。強調表示されたオブジェクトの色を、選択したオブジェクトすべてにコピーします。
例
copycolor(current)
説明
開発者向けです。パラメータ2で指定された名前、またはパラメータ2のノードの文字列データに保存されている名前のラベルを、パラメータ1のオブジェクトから、モデルで選択されたすべてのオブジェクトにコピーします。
例
copylabel(selectedobject(ownerview(c)), c.find(">labelname"))
説明
開発者向けです。パラメータ1のオブジェクトから、すべてのラベルを、モデルで選択されているすべてのオブジェクトにコピーします。デフォルトでは既存のラベルがすべてクリアされ、パラメータ1のオブジェクトのラベルで置き換えられます。modeが1なら、既存のラベルと同じ名前のラベルがコピーされた場合、既存のラベルが上書きされますが、それ以外の場合は変更されません。modeが2なら、選択されたオブジェクトに存在しないラベルのみがコピーされます。
例
copylabels(selectedobject(ownerview(c)), c.find(">labelname"))
説明
開発者向けです。パラメータ2で指定されたノードに保持されている名前の変数を、パラメータ1のオブジェクトから、モデルで選択されているすべてのオブジェクトにコピーします。
例
copyvariable(selectedobject(ownerview(c)), c.find(">variablename"))
説明
開発者向けです。パラメータ1のオブジェクトから、すべての変数を、モデルで選択されているすべてのオブジェクトにコピーします。
例
copyvariables(selectedobject(ownerview(c)))
説明
開発者向けです。パラメータ1のオブジェクトから、すべてのビジュアルを、モデルで選択されているすべてのオブジェクトにコピーします。
例
copyvisuals(selectedobject(ownerview(c)),1)
説明
開発者向けです。現在のモデルのコマンドドキュメントにアクセスし、ユーザーコマンドがコマンドのドキュメントに含まれるよう、usercommands.xmlという名前のファイルを更新します。
例
documentusercommands();
システム使用のみ
説明
システム使用のみ - ユーザー設定と一致するよう、グローバル変数を更新します。startupRT.txt、およびExcelユーザー設定GUIのOnSelectで呼び出されます。
例
excelupdatepreferences()
説明
開発者向けです。OpenGLのデバッグレベルを設定します。数値が大きいほどシステムが精密に調査され、多くの報告が行われます。0は調査なし、3は最大の精査です。
例
fgldebuglevel(3)
説明
開発者向けです(Dynamo)。指定されたファイルのPROPERTY_COMMENTSから、「READONLY」という文字列を探します。
例
fileisreadonly(pdir() + "\\flexsim.exe")
説明
開発者向けです。このコマンドは、指定されたstartingnodeより下(それ自体も含む)にあるすべてのflexscriptノードのエラーをチェックし、最低1つのエラーが見つかればコンパイラーコンソールに結果を出力します。
例
fscheckall(main());
説明
開発者向けです。指定されたイベントコードを持つオブジェクトのeventfunctionsグループにあるノードと関連付けられているコードを実行します。イベントコードはeventfunctionsグループのノードのランクではなく、次に示す定義済みFlexSimイベントのいずれかに対応します:
OnReset 1
OnMessage 2
OnEvent 3
OnDraw 4
OnInopen 5
OnOutopen 6
OnReceive 7
OnSend 8
OnEntering 9
OnExiting 10
OnCompile 11
OnCreate 12
OnDestroy 13
OnLoad 14
OnCollision 15
OnClick 16
OnRunend 17
OnRunstart 18
OnInterrupted 19
OnCaptured 20
OnListen 21
OnPredraw 22
OnDrawplanar 23
OnPredrawplanar 24
OnPreListen 25
OnReset 1
OnMessage 2
OnEvent 3
OnDraw 4
OnInopen 5
OnOutopen 6
OnReceive 7
OnSend 8
OnEntering 9
OnExiting 10
OnCompile 11
OnCreate 12
OnDestroy 13
OnLoad 14
OnCollision 15
OnClick 16
OnRunend 17
OnRunstart 18
OnInterrupted 19
OnCaptured 20
OnListen 21
OnPredraw 22
OnDrawplanar 23
OnPredrawplanar 24
OnPreListen 25
例
function_n(current,1,1,2,3)
currentオブジェクトに定義されているOnResetイベント関数を実行します。
currentオブジェクトに定義されているOnResetイベント関数を実行します。
説明
開発者向けです。指定された名前を持つオブジェクトのeventfunctionsグループにあるノードと関連付けられているコードを実行します。FlexSimで定義済みのシステムレベルイベントのリストについては、function_n()コマンドのドキュメントを参照してください。
例
function_s(current,"OnReset",1,2,3)
currentオブジェクトに定義されているOnResetイベント関数を実行します。
currentオブジェクトに定義されているOnResetイベント関数を実行します。
説明
開発者向けです。現在のアプリケーションのタイトルを文字列として返します。
例
msg(getapplicationtitle(),"Hello world.");
説明
開発者向けです。パラメータウィンドウで、[次へ]ボタンが押されたとき、次のオブジェクトにアクセスするため使用されます。
例
ビューツリーのオブジェクトパラメータプロパティのウィンドウを参照します。
説明
開発者向けです。指定されたファイルの、指定されたプロパティの値を取得します。
例
getproperty(modeldir() + "MyModel.fsm",1);
説明
開発者向けです。param(1)で渡されたオブジェクトを、param(2)で渡された文字を使用して、モデル内で選択されているすべてのオブジェクトと接続します。
一般にGUIで使用されます。
一般にGUIで使用されます。
例
groupconnectfrom(selectedobject(ownerview(c)),"A");
説明
開発者向けです。モデル内で選択されているすべてのオブジェクトを、param(2)で渡された文字を使用して、param(1)で渡されたオブジェクトと接続します。
一般にGUIで使用されます。
一般にGUIで使用されます。
例
groupconnectto(selectedobject(ownerview(c)),"A");
説明
開発者向けです。param(1)で渡されたオブジェクトの接続を、モデル内で選択されているすべてのオブジェクトにコピーします。
一般にGUIで使用されます。
一般にGUIで使用されます。
例
groupcopyconnections(selectedobject(ownerview(c)));
説明
開発者向けです。各種のライセンス操作を行います。
例
licenseactivation(LA_SET_ACTIVATION_SERVER_PARAMS,"@localhost",0);
説明
開発者向けです。保守スイッチを設定します。
最初のパラメータはオペレーションを割り当てます。2番目のパラメータは、設定する状態を割り当てます。
保守スイッチには次のものがあります。
0. このリストを出力する
1. デッドリンク
2. 属性のバインド方法(0=名前、1=インデックス、2=ブートストラップ)
3. numberprecision
4. バインディングレポートの表示
5. usercollisions
6. post-onsend
7. loadsavemode
8. disablefscheck
9. disablefspreprocess
10. splinetension
11. streamalizer
12. 拡張ドキュメントをただちにロード
13. 実験終了時にレポートを保存
14. オブジェクトライブラリのコンパイルを抑制
15. グローバルコンパイルを抑制
16. ランタイム情報の設定
17. ランタイム情報の取得
18. c++関数のバインド
19. c++関数の自動再バインドのオン/オフ
20. プレゼンテーションモードの取得
21. メインメニューの更新
22. optquestが有効か
23. flypathsの単位(秒)
24. chachedポートのオン/オフ
25. リセット時バインドのオン/オフ
26. カテゴリ名の設定(ユーザーコマンドグループは22、他のものは23、24以降は利用可能)
27. オブジェクトのsizermode 0、デフォルトは1。3軸
28. 非表示ノードをツリーに表示
29. 3dカーソルの非表示
30. simclock再描画の抑制
31. パーサー2の使用
32. グリッド描画の設定:ビット単位フィールド:0x1-グリッドを自動展開、0x2-グリッドの軸を表示、0x4-グリッドの原点を表示
1000. DDE
最初のパラメータはオペレーションを割り当てます。2番目のパラメータは、設定する状態を割り当てます。
保守スイッチには次のものがあります。
0. このリストを出力する
1. デッドリンク
2. 属性のバインド方法(0=名前、1=インデックス、2=ブートストラップ)
3. numberprecision
4. バインディングレポートの表示
5. usercollisions
6. post-onsend
7. loadsavemode
8. disablefscheck
9. disablefspreprocess
10. splinetension
11. streamalizer
12. 拡張ドキュメントをただちにロード
13. 実験終了時にレポートを保存
14. オブジェクトライブラリのコンパイルを抑制
15. グローバルコンパイルを抑制
16. ランタイム情報の設定
17. ランタイム情報の取得
18. c++関数のバインド
19. c++関数の自動再バインドのオン/オフ
20. プレゼンテーションモードの取得
21. メインメニューの更新
22. optquestが有効か
23. flypathsの単位(秒)
24. chachedポートのオン/オフ
25. リセット時バインドのオン/オフ
26. カテゴリ名の設定(ユーザーコマンドグループは22、他のものは23、24以降は利用可能)
27. オブジェクトのsizermode 0、デフォルトは1。3軸
28. 非表示ノードをツリーに表示
29. 3dカーソルの非表示
30. simclock再描画の抑制
31. パーサー2の使用
32. グリッド描画の設定:ビット単位フィールド:0x1-グリッドを自動展開、0x2-グリッドの軸を表示、0x4-グリッドの原点を表示
1000. DDE
例
maintenance(0)
説明
開発者向けです。現在のモデル編集モードを設定します。現在のモードは-1で照会できます。
例
modeleditmode("AConnect");
説明
開発者向けです。この単一のコマンドは、OptQuest DLLに定義されているすべての関数を呼び出します。
例
optquest(...)
ウィンドウを閉じるWindowsメッセージをポストする
説明
ウィンドウを閉じるメッセージをWindowsメッセージキューにポストします。これにより、ウィンドウが実際に閉じる前にスクリプトコードを完了できます。
例
postclosewindowmessage(ownerview(c));
説明
開発者向けです。メッセージをウィンドウにポストし、Windows APIのPostMessage()コマンドに直接アクセスします。ウィンドウハンドルにアクセスするには、windowfromnode()またはgetviewhwnd()を使用してください。詳細については、Windows APIのドキュメントを参照してください。[out]パラメータとしてlParamまたはwParamを使用するメッセージ、または構造体へのポインターを渡すメッセージは使用できないことに注意してください。lParamまたはwParamに文字列を渡すことが可能ですが、これらを[out]パラメータには使用できません。FlexSimのflexscriptマクロには、可能なすべてのWM_メッセージが含まれているわけではないため、flexscriptでこれらのメッセージを使用するには、Windowsのヘッダーファイルでその定義を見つけ、flexscriptコードに定義を追加する必要があります。
例
postwindowmessage(windowfromnode(view), WM_COPY, 0,0);
オブジェクトの属性を再バインドする
説明
与えられたノードのオブジェクト属性を再バインドします。オブジェクトの属性を削除または追加するとき、オブジェクトの属性キャッシュはその変更をすぐには反映しないため、rebindobjectattributesを呼び出してオブジェクトの属性キャッシュを更新できます。これは、オブジェクトを右クリックして[編集]|[オブジェクトの属性を再バインドする]を選択するのと同じです。
例
rebindobjectattributes(c)
説明
開発者向けです。Windows APIのSendMessage() コマンドに直接アクセスし、メッセージをウィンドウに送信します。ウィンドウハンドルにアクセスするには、windowfromnode()またはgetviewhwnd()を使用してください。詳細については、Windows APIのドキュメントを参照してください。[out]パラメータとしてlParamまたはwParamを使用するメッセージ、または構造体へのポインターを渡すメッセージは使用できないことに注意してください。lParamまたはwParamに文字列を渡すことが可能ですが、これらを[out]パラメータには使用できません。FlexSimのflexscriptマクロには、可能なすべてのWM_メッセージが含まれているわけではないため、flexscriptでこれらのメッセージを使用するには、Windowsのヘッダーファイルでその定義を見つけ、flexscriptコードに定義を追加する必要があります。
例
sendwindowmessage(windowfromnode(view), WM_COPY, 0,0);
説明
開発者向けです。現在のアプリケーションのタイトルを設定します。
例
setapplicationtitle("Custom Application Title");
説明
開発者向けです。メッセージループの各サイクルについてスリープ時間を設定し、cpu負荷を減らします。この値が大きいとFlexSimがユーザー入力に応答しなくなる可能性があるため、使用には注意してください。intervalで指定されたミリ秒ごとに、FlexSimはsleeptimeで指定されたミリ秒だけ一時停止します。このコマンドは、過剰なcpu使用によって過熱する傾向がある、一部のラップトップで役立つことがあります。
例
setmessageloopsleep(1)
説明
開発者向けです。指定されたファイルの、指定されたプロパティの値をnewvalueに設定します。
例
setproperty(modeldir() + "MyModel.fsm",1,"Custom Title");
説明
開発者向けです。ティッカースクリプトノードを設定します。tickspersecondが指定された場合、コードは1秒ごとにその回数だけ実行されます。指定されない場合、ノードに関連付けられているコードはWindowsのイベントループの繰り返しごとに実行されます。ノードはFlexScriptまたはC++で切り替える必要があります。ティッカーノードの実行に関連してモデルイベントが作成されることはありません。ティッカー実行をオフにするには、setticker(0)を使用します。
例
setticker(so())
説明
開発者向けです。統計収集の要素を有効または無効にします。32ビットのイネーブルマスクとして、フラグの合計を設定します。ビット:0 = 状態、1 = フロー、2 = ポート内部。
例
statsenablemask(add(1,2))
説明
開発者向けです。このコマンドは、ジョイスティックやコントローラーの状態を照会するか、機能を設定します。
sticknoは、照会するジョイスティックやゲームパッドのidを定義します。0から32までの数値です。通常は、コンピュータに接続されているジョイスティックは1つだけなので、sticknoの値には1を使用します。ゲームパッドを使用する場合、sticknoに2を使用することが必要な場合もあります。Xboxコントローラーの場合、sticknoの値は0から3までです。VRコントローラーの場合、sticknoは0または1です。Oculusタッチコントローラーの場合、sticknoの0は左手、1は右手です。sticknoに-1を使用すると、接続されているVRヘッドセットのステータス、位置、回転を取得できます。
commandは、このコマンドで実行する動作を定義します。次のマクロのいずれかを使用します。
STICK_JOY_STATUS - ジョイスティックの接続性を照会します。ジョイスティックが正しく接続されていれば、このコマンドは0を返します。戻り値が0以外の場合、ジョイスティックの接続性に何らかのエラーがあり、どのようなエラーなのかをシステムコンソールで確認できます。次のエラーが発生する可能性があります。
MMSYSERR_NODRIVER - ジョイスティックのドライバーが存在しません。
MMSYSERR_INVALPARAM - ジョイスティックのIDが無効か、hwndがNULLです。
JOYERR_NOCANDO - 必要なサービス(Windowsタイマーなど)が使用できないため、ジョイスティックの入力をキャプチャーできません。
JOYERR_UNPLUGGED - 指定されたジョイスティックはシステムに接続されていません。
JOYERR_PARMS - ジョイスティックのIDが無効か、hwndがNULLです。
STICK_JOY_XPOS - ジョイスティックの現在のX座標。0から65535までの数値です。0はジョイスティックが左へいっぱいまで押されていることを、65535は右へいっぱいまで押されていることを、32768は正確に中央の位置にあることを示します。ゲームパッドを使用している場合、左側のジョイスティックのx位置です。
STICK_JOY_YPOS - ジョイスティックの現在のY座標。この値も、0から65535までの数値です。0は上方向、65535は下方向を意味します。ゲームパッドを使用している場合、ゲームパッドの左側にあるジョイスティックの位置です。
STICK_JOY_ZPOS - ジョイスティックの現在のZ座標。ジョイスティックを使用している場合、これは通常、ジョイスティックのスロットルの現在の設定です。この値も、0から65535までの数値です。ゲームパッドを使用している場合、右側のジョイスティックのy位置を表します。
STICK_JOY_BUTTONS - ジョイスティックの32のボタンの現在の状態。ビット単位の整数で、各ビットは与えられたボタンの現在の状態を表します。ジョイスティックの場合、メインのトリガーボタンは通常0x00000001ビット、スティックの他のボタンは0x00000002および0x00000004、ジョイスティックのベースにあるボタンはより上位のビットで表されます。ジョイスティックごとに多少異なるので、自分でテストすることが必要です。
STICK_JOY_SET_CAPTURE - このコマンドは、ジョイスティックのキャプチャーを、指定したFlexSimウィンドウに設定します。このコマンドにはwinとpのパラメータを渡す必要があります。このコマンドを実行すると、ビューのOnStick属性にジョイスティックのメッセージが送信されます。たとえば、正投影ビューでジョイスティックのイベントをリッスンする場合、このコマンドを呼び出し、正投影ビューのHWNDハンドル(windowfromnode()を使用します)とポーリング期間を渡します。この期間は、OnStickイベントを繰り返し呼び出す時間間隔をミリ秒単位で指定します。pが0なら、ジョイスティックの状態が変化したときのみOnStickイベントが呼び出されます。pが0より大きい場合、サンプル時間間隔の終わりごとにOnStickイベントが呼び出されます。例:stick(1,5, windowfromnode(sv()), 200); は、200ミリ秒ごとにOnStickイベントが呼び出されるように設定します。このコマンドが動作するには、ビューにOnStick属性を追加する必要があります(ビューに属性を追加した後で、右クリック -> [編集]|[オブジェクトの属性を再バインドする]を使用して再バインドが必要な場合もあります)。
STICK_JOY_RELEASE_CAPTURE - このコマンドは、以前に5コマンドでキャプチャーしたウィンドウから、ジョイスティックのキャプチャーをリリースします。コマンド5と同様にwinパラメータを渡す必要があります。
STICK_JOY_RPOS - ジョイスティックのラダーまたは4番目の軸の現在の位置。ジョイスティックがz軸の周囲で回転できる場合、これは通常はジョイスティックの回転を示します。この値も、0から65535までの数値です。ゲームパッドを使用している場合、右側のジョイスティックのx位置です。
STICK_JOY_UPOS - ジョイスティックの5番目の軸の現在の位置。
STICK_JOY_VPOS - ジョイスティックの6番目の軸の現在の位置。
STICK_JOY_POV - ジョイスティックの視点コントロールの現在の位置。この値は0から35900までの数値で、度を100倍した数値を表します。ゲームパッドの場合、ゲームパッドの左側にある方向パッドを表します。上は0、右は9000、下は18000、左は27000です。方向パッドが押されていない場合、値は65535です。ジョイスティックを使用している場合、スティック自体に方向性サムコントローラがあり、上下左右に押せることがあります。このコマンドは、そのコントローラーの設定を取得します。
STICK_JOY_CURRENT_BUTTON - 現在押されているボタンの番号。
STICK_JOY_FLAGS - ジョイスティックについて有効な情報が返されていることを示すフラグ。
STICK_XBOX_STATUS - Xboxコントローラーの接続性を照会します。コントローラーが正しく接続されていれば、0を返します。
STICK_XBOX_BUTTONS - デバイスのデジタルボタンを示すビットマスク。セットされているビットは、対応するボタンが押されていることを意味します。
STICK_XBOX_LEFT_THUMB_X - 左側にあるサムスティックのx軸の値。サムスティックのそれぞれの軸メンバーは、-32768から32767までの符号付き数値で、サムスティックの位置を示します。値0は中央を示します。負の値は下または左を示します。正の値は上または右を示します。
STICK_XBOX_LEFT_THUMB_Y - 左側のサムスティックのy軸の値。値は-32768から32767までです。
STICK_XBOX_RIGHT_THUMB_X - 右側のサムスティックのx軸の値。値は-32768から32767までです。
STICK_XBOX_RIGHT_THUMB_Y - 右側のサムスティックのy軸の値。値は-32768から32767までです。
STICK_XBOX_LEFT_TRIGGER - 左側のトリガーアナログコントロールの現在の値。値は0から255までです。
STICK_XBOX_RIGHT_TRIGGER - 右側のトリガーアナログコントロールの現在の値。値は0から255までです。
STICK_VR_STATUS - Oculus Riftコントローラーがアクティブなら1を返します。HTC Viveコントローラーがアクティブなら2を返します。コントローラーが非アクティブなら0を返します。コントローラーがアタッチされていなければ、nullvarを返します。
STICK_VR_THUMB_X - サムスティックまたはトラックパッドのx軸の値で、-1から1までです。
STICK_VR_THUMB_Y - サムスティックまたはトラックパッドのy軸の値で、-1から1までです。
STICK_VR_INDEX_TRIGGER - インデックストリガーの値で、0から1までです。
STICK_VR_GRIP_TRIGGER - グリップトリガーの値で、0から1までです。HTC Viveでは、グリップボタンが押されています。
STICK_VR_BUTTON_1 - 最初のボタンが押されています。Oculus RiftではAまたはXです。HTC Viveでは使用されません。
STICK_VR_BUTTON_2 - 2番目のボタンが押されています。Oculus RiftではBまたはYです。HTC Viveでは使用されません。
STICK_VR_BUTTON_3 - 3番目のボタンが押されています。Oculus RiftではEnterまたはHomeです。HTC ViveではMenuです。
STICK_VR_BUTTON_4 - 4番目のボタンが押されています。Oculus Riftではサムスティックです。HTC Viveではトラックパッドです。
STICK_VR_TOUCH_BUTTON_1 - 最初のボタンがタッチされています。HTC Viveでは使用されません。
STICK_VR_TOUCH_BUTTON_2 - 2番目のボタンがタッチされています。HTC Viveでは使用されません。
STICK_VR_TOUCH_BUTTON_3 - 3番目のボタンがタッチされています。Oculus Riftでは使用されません。
STICK_VR_TOUCH_BUTTON_4 - 4番目のボタンがタッチされています。
STICK_VR_TOUCH_THUMB_REST - Oculus Riftのサムレストセンサーがタッチされています。HTC Viveでは使用されません。
STICK_VR_TOUCH_INDEX_TRIGGER - インデックストリガーセンサーがタッチされています。
STICK_VR_TOUCH_POINTING - Oculus Riftでハンドジェスチャがポイントされています。HTC Viveでは使用されません。
STICK_VR_TOUCH_THUMB_UP - Oculus Riftでハンドジェスチャがサムズアップされています。HTC Viveでは使用されません。
STICK_VR_HAND_POSITION - VR空間でのコントローラーの位置。
STICK_VR_HAND_ROTATION - VR回転座標でのコントローラーの回転。
STICK_VR_HAND_WORLD_POSITION - FlexSimのワールド空間でのコントローラーの位置。
STICK_VR_HAND_WORLD_ROTATION - FlexSim回転座標でのコントローラーの回転。
STICK_VR_HAND_OFFSET_POSITION - FlexSimのワールド空間でのコントローラーの位置ですが、コントローラーの回転に基づいてオフセットが適用されます。pパラメータには、オフセットベクトルとして配列を渡します。このオプションを使用して、コントローラーに対する相対ポイント、たとえば指の位置や、コントローラーのポイント先を取得できます。
STICK_VR_TARGET_FLOOR_POSITION - 床の上でコントローラーがポイントしている先の位置。pパラメータの値には、コントローラーからの最大距離を渡します。
STICK_VR_SET_VIBRATION - コントローラーを振動させます。Oculus Riftでは、pパラメータに配列を渡します。最初の要素は0から1までの値で、周波数を表します。2番目の要素は0から1までの値で、振幅を表します。HTC Viveでは、期間をミリ秒単位でpパラメータとして渡します。
STICK_VR_SUBMIT_VIBRATION - コントローラーを微振動させます。最初のOculus Touchコントローラーでは、pパラメータに振幅(0~255)の配列を渡し、この値がキューに入れられて実行されます。HTC ViveやOculus Rift Sコントローラーでは使用されません。
sticknoは、照会するジョイスティックやゲームパッドのidを定義します。0から32までの数値です。通常は、コンピュータに接続されているジョイスティックは1つだけなので、sticknoの値には1を使用します。ゲームパッドを使用する場合、sticknoに2を使用することが必要な場合もあります。Xboxコントローラーの場合、sticknoの値は0から3までです。VRコントローラーの場合、sticknoは0または1です。Oculusタッチコントローラーの場合、sticknoの0は左手、1は右手です。sticknoに-1を使用すると、接続されているVRヘッドセットのステータス、位置、回転を取得できます。
commandは、このコマンドで実行する動作を定義します。次のマクロのいずれかを使用します。
STICK_JOY_STATUS - ジョイスティックの接続性を照会します。ジョイスティックが正しく接続されていれば、このコマンドは0を返します。戻り値が0以外の場合、ジョイスティックの接続性に何らかのエラーがあり、どのようなエラーなのかをシステムコンソールで確認できます。次のエラーが発生する可能性があります。
MMSYSERR_NODRIVER - ジョイスティックのドライバーが存在しません。
MMSYSERR_INVALPARAM - ジョイスティックのIDが無効か、hwndがNULLです。
JOYERR_NOCANDO - 必要なサービス(Windowsタイマーなど)が使用できないため、ジョイスティックの入力をキャプチャーできません。
JOYERR_UNPLUGGED - 指定されたジョイスティックはシステムに接続されていません。
JOYERR_PARMS - ジョイスティックのIDが無効か、hwndがNULLです。
STICK_JOY_XPOS - ジョイスティックの現在のX座標。0から65535までの数値です。0はジョイスティックが左へいっぱいまで押されていることを、65535は右へいっぱいまで押されていることを、32768は正確に中央の位置にあることを示します。ゲームパッドを使用している場合、左側のジョイスティックのx位置です。
STICK_JOY_YPOS - ジョイスティックの現在のY座標。この値も、0から65535までの数値です。0は上方向、65535は下方向を意味します。ゲームパッドを使用している場合、ゲームパッドの左側にあるジョイスティックの位置です。
STICK_JOY_ZPOS - ジョイスティックの現在のZ座標。ジョイスティックを使用している場合、これは通常、ジョイスティックのスロットルの現在の設定です。この値も、0から65535までの数値です。ゲームパッドを使用している場合、右側のジョイスティックのy位置を表します。
STICK_JOY_BUTTONS - ジョイスティックの32のボタンの現在の状態。ビット単位の整数で、各ビットは与えられたボタンの現在の状態を表します。ジョイスティックの場合、メインのトリガーボタンは通常0x00000001ビット、スティックの他のボタンは0x00000002および0x00000004、ジョイスティックのベースにあるボタンはより上位のビットで表されます。ジョイスティックごとに多少異なるので、自分でテストすることが必要です。
STICK_JOY_SET_CAPTURE - このコマンドは、ジョイスティックのキャプチャーを、指定したFlexSimウィンドウに設定します。このコマンドにはwinとpのパラメータを渡す必要があります。このコマンドを実行すると、ビューのOnStick属性にジョイスティックのメッセージが送信されます。たとえば、正投影ビューでジョイスティックのイベントをリッスンする場合、このコマンドを呼び出し、正投影ビューのHWNDハンドル(windowfromnode()を使用します)とポーリング期間を渡します。この期間は、OnStickイベントを繰り返し呼び出す時間間隔をミリ秒単位で指定します。pが0なら、ジョイスティックの状態が変化したときのみOnStickイベントが呼び出されます。pが0より大きい場合、サンプル時間間隔の終わりごとにOnStickイベントが呼び出されます。例:stick(1,5, windowfromnode(sv()), 200); は、200ミリ秒ごとにOnStickイベントが呼び出されるように設定します。このコマンドが動作するには、ビューにOnStick属性を追加する必要があります(ビューに属性を追加した後で、右クリック -> [編集]|[オブジェクトの属性を再バインドする]を使用して再バインドが必要な場合もあります)。
STICK_JOY_RELEASE_CAPTURE - このコマンドは、以前に5コマンドでキャプチャーしたウィンドウから、ジョイスティックのキャプチャーをリリースします。コマンド5と同様にwinパラメータを渡す必要があります。
STICK_JOY_RPOS - ジョイスティックのラダーまたは4番目の軸の現在の位置。ジョイスティックがz軸の周囲で回転できる場合、これは通常はジョイスティックの回転を示します。この値も、0から65535までの数値です。ゲームパッドを使用している場合、右側のジョイスティックのx位置です。
STICK_JOY_UPOS - ジョイスティックの5番目の軸の現在の位置。
STICK_JOY_VPOS - ジョイスティックの6番目の軸の現在の位置。
STICK_JOY_POV - ジョイスティックの視点コントロールの現在の位置。この値は0から35900までの数値で、度を100倍した数値を表します。ゲームパッドの場合、ゲームパッドの左側にある方向パッドを表します。上は0、右は9000、下は18000、左は27000です。方向パッドが押されていない場合、値は65535です。ジョイスティックを使用している場合、スティック自体に方向性サムコントローラがあり、上下左右に押せることがあります。このコマンドは、そのコントローラーの設定を取得します。
STICK_JOY_CURRENT_BUTTON - 現在押されているボタンの番号。
STICK_JOY_FLAGS - ジョイスティックについて有効な情報が返されていることを示すフラグ。
STICK_XBOX_STATUS - Xboxコントローラーの接続性を照会します。コントローラーが正しく接続されていれば、0を返します。
STICK_XBOX_BUTTONS - デバイスのデジタルボタンを示すビットマスク。セットされているビットは、対応するボタンが押されていることを意味します。
STICK_XBOX_LEFT_THUMB_X - 左側にあるサムスティックのx軸の値。サムスティックのそれぞれの軸メンバーは、-32768から32767までの符号付き数値で、サムスティックの位置を示します。値0は中央を示します。負の値は下または左を示します。正の値は上または右を示します。
STICK_XBOX_LEFT_THUMB_Y - 左側のサムスティックのy軸の値。値は-32768から32767までです。
STICK_XBOX_RIGHT_THUMB_X - 右側のサムスティックのx軸の値。値は-32768から32767までです。
STICK_XBOX_RIGHT_THUMB_Y - 右側のサムスティックのy軸の値。値は-32768から32767までです。
STICK_XBOX_LEFT_TRIGGER - 左側のトリガーアナログコントロールの現在の値。値は0から255までです。
STICK_XBOX_RIGHT_TRIGGER - 右側のトリガーアナログコントロールの現在の値。値は0から255までです。
STICK_VR_STATUS - Oculus Riftコントローラーがアクティブなら1を返します。HTC Viveコントローラーがアクティブなら2を返します。コントローラーが非アクティブなら0を返します。コントローラーがアタッチされていなければ、nullvarを返します。
STICK_VR_THUMB_X - サムスティックまたはトラックパッドのx軸の値で、-1から1までです。
STICK_VR_THUMB_Y - サムスティックまたはトラックパッドのy軸の値で、-1から1までです。
STICK_VR_INDEX_TRIGGER - インデックストリガーの値で、0から1までです。
STICK_VR_GRIP_TRIGGER - グリップトリガーの値で、0から1までです。HTC Viveでは、グリップボタンが押されています。
STICK_VR_BUTTON_1 - 最初のボタンが押されています。Oculus RiftではAまたはXです。HTC Viveでは使用されません。
STICK_VR_BUTTON_2 - 2番目のボタンが押されています。Oculus RiftではBまたはYです。HTC Viveでは使用されません。
STICK_VR_BUTTON_3 - 3番目のボタンが押されています。Oculus RiftではEnterまたはHomeです。HTC ViveではMenuです。
STICK_VR_BUTTON_4 - 4番目のボタンが押されています。Oculus Riftではサムスティックです。HTC Viveではトラックパッドです。
STICK_VR_TOUCH_BUTTON_1 - 最初のボタンがタッチされています。HTC Viveでは使用されません。
STICK_VR_TOUCH_BUTTON_2 - 2番目のボタンがタッチされています。HTC Viveでは使用されません。
STICK_VR_TOUCH_BUTTON_3 - 3番目のボタンがタッチされています。Oculus Riftでは使用されません。
STICK_VR_TOUCH_BUTTON_4 - 4番目のボタンがタッチされています。
STICK_VR_TOUCH_THUMB_REST - Oculus Riftのサムレストセンサーがタッチされています。HTC Viveでは使用されません。
STICK_VR_TOUCH_INDEX_TRIGGER - インデックストリガーセンサーがタッチされています。
STICK_VR_TOUCH_POINTING - Oculus Riftでハンドジェスチャがポイントされています。HTC Viveでは使用されません。
STICK_VR_TOUCH_THUMB_UP - Oculus Riftでハンドジェスチャがサムズアップされています。HTC Viveでは使用されません。
STICK_VR_HAND_POSITION - VR空間でのコントローラーの位置。
STICK_VR_HAND_ROTATION - VR回転座標でのコントローラーの回転。
STICK_VR_HAND_WORLD_POSITION - FlexSimのワールド空間でのコントローラーの位置。
STICK_VR_HAND_WORLD_ROTATION - FlexSim回転座標でのコントローラーの回転。
STICK_VR_HAND_OFFSET_POSITION - FlexSimのワールド空間でのコントローラーの位置ですが、コントローラーの回転に基づいてオフセットが適用されます。pパラメータには、オフセットベクトルとして配列を渡します。このオプションを使用して、コントローラーに対する相対ポイント、たとえば指の位置や、コントローラーのポイント先を取得できます。
STICK_VR_TARGET_FLOOR_POSITION - 床の上でコントローラーがポイントしている先の位置。pパラメータの値には、コントローラーからの最大距離を渡します。
STICK_VR_SET_VIBRATION - コントローラーを振動させます。Oculus Riftでは、pパラメータに配列を渡します。最初の要素は0から1までの値で、周波数を表します。2番目の要素は0から1までの値で、振幅を表します。HTC Viveでは、期間をミリ秒単位でpパラメータとして渡します。
STICK_VR_SUBMIT_VIBRATION - コントローラーを微振動させます。最初のOculus Touchコントローラーでは、pパラメータに振幅(0~255)の配列を渡し、この値がキューに入れられて実行されます。HTC ViveやOculus Rift Sコントローラーでは使用されません。
例
stick(1, STICK_JOY_YPOS); ジョイスティックid 1のy位置を取得します。
説明
開発者向けです。ビットマスク。ウィンドウタイプの描画を無効にします。ビット:0 - TREE、1 - PLANAR、2 - SPATIAL
例
suspenddraw(1)
説明
開発者向けです。動的スイッチ変数をオブジェクトに追加および設定、またはオブジェクトから削除します。onに設定するとき、varで指定される名前のノードがオブジェクトの構造体に追加され、数値1が割り当てられます。offに設定するとき、varで指定される名前のノードが存在すれば、オブジェクトの構造体から削除されます。モデル更新のコードで使用されます。
例
switch_variable(so(),"arrivalmode",1);
startpointの下にあるすべてのコードノードを、C++またはflexscriptとして切り替える
説明
startpointから開始してツリーを走査し、すべてのコードノードをc++またはflexscriptに切り替えます。1からc++に、0ならflexscriptに切り替えます。現在のコード状態にロックされていないノードのみが変更されます。メニューオプションの[構築]|[すべてのコードをC++にする]、または[構築]|[すべてのコードをFlexScriptにする]と同じ操作です。
例
toggleallcodestates(model(), 1);
説明
開発者向けです。32ビットのトレースマスクとしてMath.pow(2,N1)+Math.pow(2,N2) の合計を設定します。ここでNxは、トレースで報告するイベント番号です。[表示]|[トレースデバッガー]を参照してください。
例
tracemaskevents(listsum(Math.pow(2,1),Math.pow(2,2),Math.pow(2,3)))
説明
開発者向けです。トレースデバッガーのイベント報告に含めるオブジェクトを設定します。[表示]|[トレースデバッガー]を参照してください。
例
tracemaskobject(Model.find("Processor3"))
説明
開発者向けです。トレースデバッガーでのイベント報告の開始時間と終了時間を定義します。[表示]|[トレースデバッガー]を参照してください。
例
tracemasktime(100,200)
描画
平面、正投影、または透視投影ビューでのグラフィックス描画に関連するコマンドです。描画コマンドは、オブジェクトの[プロパティ]ウィンドウにある[カスタム描画コード]フィールドなど、OnDrawイベントで使用するよう設計されています。
説明
この関数は、OpenGL呼び出しシーケンスで使用されます。シーンを描画するためOpenGLコマンドが使用されるとき、このコマンドはFlexSimにロードされるテクスチャをインデックスtextureidとバインドします。バインドされたテクスチャは、以後に描画されるポリゴンをレンダリングするため使用されます。テクスチャマッピングは、画像(またはテクスチャ)から、ポリゴンや他のグラフィックスプリミティブの表面への適用(またはマッピング)です。
例
bindtexture(10)
以後のポリゴンをレンダリングするため、インデックス番号10のロード済みテクスチャを使用します。
以後のポリゴンをレンダリングするため、インデックス番号10のロード済みテクスチャを使用します。
3dビューにテキストを描画する
説明
このコマンドはdrawtext()と似ていますが、3Dビューでのみ使用でき、テキストのレンダリングプロシージャに直接アクセスできるようパラメータセットが削られています。drawtext()では現在のオブジェクトや、一部のOpenGL状態の変化に基づいて多少の自動スケーリングが行われるのに対して、draw3dtext()はテキスト描画プロシージャを直接呼び出すため、位置設定、スケーリング、色設定などはすべて、glTranslated()、glScaled()、glColor3d()などのOpenGLコマンドで行います。
例
draw3dtext(current.name);
単純なボックスを描画する
説明
単純なボックスを描画します。glbeginが1なら、描画前にglBeginを呼び出します。このコマンドは、OpenGLタイプの立方体を描画するための早い方法で、ライティング、色、テクスチャをdrawcube()コマンドより細かく指定できます。
例
drawbox(5,0,0, 2,1,3, 1);
drawcolumn (num x, num y, num z, num totalsides, num baseradius, num topradius, num height, num rx, num ry, num rz, num red {0-255}, num green {0-255}, num blue {0-255} [, num opacity {0-1}, num textureindex, num textureXrepeat, num textureYrepeat])
3Dの列を描画する
説明
複数の辺と高さを持つ、正方形、五角形、ピラミッドなど任意の形状を描画できる非常に多用途なコマンドで、円筒(辺の総数が多い場合)も描画できます。
x、y、zの位置を原点(基部の中央)として、列を描画します。この列は、辺の数、下端の半径、上端の半径、高さで定義されます。列はrx、ry、rzにより各軸の周囲で度単位に回転できます。色は赤、緑、青の色コンポーネント(0~255)で定義されます。
オプションのopacityパラメータにより、列は透明(0)から不透明(1)まで変化します。有効なtextureindex番号が入力された場合、関連付けられている画像が列の各面に沿ってtextureXrepeatおよびtextureYrepeat回だけ繰り返されます。
列の位置、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
x、y、zの位置を原点(基部の中央)として、列を描画します。この列は、辺の数、下端の半径、上端の半径、高さで定義されます。列はrx、ry、rzにより各軸の周囲で度単位に回転できます。色は赤、緑、青の色コンポーネント(0~255)で定義されます。
オプションのopacityパラメータにより、列は透明(0)から不透明(1)まで変化します。有効なtextureindex番号が入力された場合、関連付けられている画像が列の各面に沿ってtextureXrepeatおよびtextureYrepeat回だけ繰り返されます。
列の位置、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
例
drawcolumn(0,0,0, 5 ,4,2, 6 ,0,0,0, 175,175,175, .6, 3, 5,1);
drawcube (num x, num y, num z, num sx, num sy, num sz, num rx, num ry, num rz, num red {0-255}, num green {0-255}, num blue {0-255} [, num opacity {0-1}, num textureindex, num textureXrepeat, num textureYrepeat])
3D立方体を描画する
説明
x、y、zの位置を原点(左下コーナー)として、立方体を描画します。長さ、幅、高さはそれぞれsx、sy、szで定義されます。rx、ry、rzを使用して、それぞれx、y、z軸の周囲に度単位で回転できます。色は赤、緑、青の色コンポーネント(0~255)で定義されます。
オプションのopacityパラメータにより、立方体は透明(0)から不透明(1)まで変化します。有効なtextureindex番号が入力された場合、関連付けられている画像が立方体の各面に沿ってtextureXrepeatおよびtextureYrepeat回だけ繰り返されます。
立方体の位置、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか[ツール]|[メディアファイル]メニューを使用して得られる数値です。
オプションのopacityパラメータにより、立方体は透明(0)から不透明(1)まで変化します。有効なtextureindex番号が入力された場合、関連付けられている画像が立方体の各面に沿ってtextureXrepeatおよびtextureYrepeat回だけ繰り返されます。
立方体の位置、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか[ツール]|[メディアファイル]メニューを使用して得られる数値です。
例
drawcube(0,0,0, 5,3,2, 0,0,0, 175,175,175, .6, 3, 1,1);
drawcylinder (num x, num y, num z, num baseradius, num topradius, num height, num rx, num ry, num rz, num red {0-255}, num green {0-255}, num blue {0-255} [, num opacity {0-1}, num textureindex])
3Dの円柱を描画する
説明
このコマンドは、x、y、zの位置を原点(基部の中央)として、中空の円柱を描画します。円柱の寸法は、基部の半径、上端の半径、高さで定義されます。円筒の先端を飾るには、drawdisk()コマンドを使用します。円柱は、rx、ry、rzを使用して、それぞれx、y、z軸の周囲に度単位で回転できます。色は赤、緑、青の色コンポーネント(0~255)で定義されます。
オプションのopacityパラメータにより、円柱は透明(0)から不透明(1)まで変化します。有効なtextureindexの数値が入力された場合、関連付けられている画像が円柱の外周に沿ったテクスチャとして使用されます。
円柱の位置、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
オプションのopacityパラメータにより、円柱は透明(0)から不透明(1)まで変化します。有効なtextureindexの数値が入力された場合、関連付けられている画像が円柱の外周に沿ったテクスチャとして使用されます。
円柱の位置、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
例
drawcylinder(0,0,0, 1,1, 5, 0,0,0, 175,175,175, .6,3);
drawdisk (num x, num y, num z, num innerradius, num outerradius, num startangle, num sweepangle, num rx, num ry, num rz, num red {0-255}, num green {0-255}, num blue {0-255} [, num opacity {0-1}, num textureindex])
3Dの円盤を描画する
説明
x、y、zの位置を原点(半径の中央)として、平坦な円盤を描画します。円盤の寸法は内側の半径、外側の半径、開始角度、掃引角度で定義されます。掃引角度が360なら、完全な円が描画されます。innerradiusが0より大きいなら、円盤の中央に穴が開けられます。円盤は、rx、ry、rzを使用して、それぞれx、y、z軸の周囲に度単位で回転できます。色は赤、緑、青の色コンポーネント(0~255)で定義されます。
オプションのopacityパラメータにより、円盤は透明(0)から不透明(1)まで変化します。有効なtextureindexの数値が入力された場合、関連付けられている画像が円盤の表面に沿ったテクスチャとして使用されます。
円盤の位置、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
オプションのopacityパラメータにより、円盤は透明(0)から不透明(1)まで変化します。有効なtextureindexの数値が入力された場合、関連付けられている画像が円盤の表面に沿ったテクスチャとして使用されます。
円盤の位置、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
例
drawdisk(0,0,0, .5,2, 90,270, 0,0,0, 175,175,175, 1,3);
説明
このコマンドは、3Dビューでのみ使用できます。テクスチャマッピングされたテキスト文字列を描画します。下のオブジェクトの名前と統計情報を描画するのと同じ機能が使用されます。正しくスケーリングされれば、非常に鮮明で読み取りやすいテキストが描画されます。このコマンドをsetdrawnamefunction()と組み合わせて使用すると、オブジェクトの下のボックスに描画されるデータをカスタマイズできます。drawtext()とは異なり、このコマンドのパラメータセットは大幅に削られているため、テキストを描画する前に場所、サイズ、レンダリング設定をセットアップするにはglコマンド(fglTranslate()、fglScale()、fglColor()など)を使用します。
例
オブジェクトのカスタム描画コードトリガーに、次のコードを追加します。
if(!param(2)) {
setdrawnamefunction(80, 15, c, param(1), 1);
} else {
fglTranslate(-40, -15, 0);
drawflattext("Hello World");
}
これにより、オブジェクトの下の表示ボックスに「Hello World」というテキストが描画されます。drawtext()で使用するフォントを指定する
説明
drawtextを呼び出す前に、描画するフォントを定義します。drawtextを呼び出した後で、フォントはデフォルトにリセットされます。現在使用できるフォントタイプは12(番号0から11まで)です。
例
drawfont(2)
画像を描画する
説明
ビューのimagepathに画像を描画します。scalingの値は、画像をどのように配置およびスケーリングするかを指定します。
NO_SCALE(または0):画像のサイズと同じ幅と高さで、場所x、yに画像を描画します。
SCALE_DOWN:x、y、width、heightにより作成される長方形に画像を描画します。必要なら、この長方形に収まるように比率を維持して画像を縮小します。
SCALE_UP_DOWN:x、y、width、heightにより作成される長方形に画像を描画します。必要なら、この長方形に収まるように比率を維持して画像を拡大縮小します。
SCALE_INDEPENDENT:x、yの場所に、widthとheightのサイズの画像を描画します。
NO_SCALE(または0):画像のサイズと同じ幅と高さで、場所x、yに画像を描画します。
SCALE_DOWN:x、y、width、heightにより作成される長方形に画像を描画します。必要なら、この長方形に収まるように比率を維持して画像を縮小します。
SCALE_UP_DOWN:x、y、width、heightにより作成される長方形に画像を描画します。必要なら、この長方形に収まるように比率を維持して画像を拡大縮小します。
SCALE_INDEPENDENT:x、yの場所に、widthとheightのサイズの画像を描画します。
例
drawimage(c, "buttons\\visible_eye.png", 0, 10, 0, 0, 0);
drawline (obj view, num x1, num y1, num z1, num x2, num y2, num z2, num red {0-1}, num green {0-1}, num blue {0-1})
平面ラインを描画する
説明
このコマンドは、開始位置がxloc1、yloc1、zloc1で、終了位置がxloc2、yloc2、zloc2の平面ラインを描画します。色は赤、緑、青の色コンポーネント(0~1)で定義されます。
例
drawline(view, 0, 0, 0, 2, 2, 2, 1, 0, 0);
この例は、ポイント(0,0,0)からポイント(2,2,2)にラインを描画します。ラインの色は赤です。
この例は、ポイント(0,0,0)からポイント(2,2,2)にラインを描画します。ラインの色は赤です。
3D形状を描画する
説明
指定された形状とテクスチャインデックスを使用して3dオブジェクトを描画します。
例
drawtomodelscale(current);
drawobject(view,getshapeindex("fs3d//texturebox.wrl"),gettextureindex("flexsim.bmp"));
描画スケールをモデルのものに設定してから、flexsim.bmpをテクスチャとして使用し、texturebox.wrl形状を描画します。
drawobject(view,getshapeindex("fs3d//texturebox.wrl"),gettextureindex("flexsim.bmp"));
描画スケールをモデルのものに設定してから、flexsim.bmpをテクスチャとして使用し、texturebox.wrl形状を描画します。
drawpie (obj view, num x, num y, num z, num x2, num y2, num z2, num startangle, num endangle, num red {0-1}, num green {0-1}, num blue {0-1})
平坦な扇形を描画する
説明
[x1,y1,z1]と[x2,y2,z2]の中点を原点(半径の中心)として、平坦な扇形を描画します。角度は正のx軸から反時計回りに、度単位で測定されます。負の角度は時計回りに測定されます。扇形は、開始角度から反時計回りに終了角度までを占めます。色は赤、緑、青の色コンポーネント(0~1)で定義されます。
例
drawpie(view,3,3,0,0,0,0,45,90,0.5,0,0);
drawquad (obj view, num x1, num y1, num z1, num x2, num y2, num z2, num x3, num y3, num z3, num x4, num y4, num z4, num red {0-1}, num green {0-1}, num blue {0-1})
平坦な四辺形を描画する
説明
このコマンドは、x1、y1、z1、x2、y2、z2、x3、y3、z3、x4、y4、z4により定義される頂点を持つ平坦な四辺形を描画します。色は赤、緑、青の色コンポーネント(0~1)で定義されます。結果として得られる形状と照明は、頂点が定義される順序やシーケンスによって異なります。頂点がすべて同じ平面に属する場合、drawrectangle()コマンドの使用を検討してください。
例
drawquad(view, 0, 0, 1, 0, 0, 0, 2, 2, 2, 4, 5, 6, 1, 0, 0);
この例は、(0,0,0)、(1,0,0)、(2,2,2)、(4,5,6)の4つのポイントで定義された頂点を持つ四辺形を描画します。四辺形の色は赤です。
この例は、(0,0,0)、(1,0,0)、(2,2,2)、(4,5,6)の4つのポイントで定義された頂点を持つ四辺形を描画します。四辺形の色は赤です。
drawrect (obj view, num x1, num y1, num z1, num x2, num y2, num z2, num red {0-1}, num green {0-1}, num blue {0-1})
平坦な長方形を描画する
説明
このコマンドは、x1、y1、z1およびx2、y2、z2で定義された対角のコーナーを持つ、平坦な長方形を描画します。どちらのポイントも、xy平面と平行な平面に存在する必要があります。色は赤、緑、青の色コンポーネント(0~1)で定義されます。このコマンドは、平面、3D、グラフ、パネルのビューから呼び出すことができます。drawquad()も参照してください。
例
drawrect(view, 0, 0, .5, 1, 1, .5, 1, 0, 0);
対角コーナー(0,0,.5)および(1,1,.5)を使用して赤色の長方形を描画します。
対角コーナー(0,0,.5)および(1,1,.5)を使用して赤色の長方形を描画します。
drawrectangle (num x, num y, num z, num length, num width, num rx, num ry, num rz, num red {0-255}, num green {0-255}, num blue {0-255} [, num opacity {0-1}, num textureindex, num textureXrepeat, num textureYrepeat])
3Dの長方形を描画する
説明
ユーザー定義の場所、長さ、幅、回転、色を使用して、平坦な長方形を描画します。x、y、z平面と並行でない長方形を描画するには、drawquad()コマンドを使用する必要があります。
オプションのopacityパラメータにより、長方形は透明(0)から不透明(1)まで変化します。有効なtextureindex番号が入力された場合、関連付けられている画像が長方形の表面にテクスチャとして、textureXrepeatおよびtextureYrepeat回だけ繰り返されます。
長方形の場所、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
オプションのopacityパラメータにより、長方形は透明(0)から不透明(1)まで変化します。有効なtextureindex番号が入力された場合、関連付けられている画像が長方形の表面にテクスチャとして、textureXrepeatおよびtextureYrepeat回だけ繰り返されます。
長方形の場所、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
例
drawrectangle(0,0,0, 2,3, 0,0,0, 175,175,175, .6, 1, 2,3);
drawsphere (num x, num y, num z, num radius, num red {0-255}, num green {0-255}, num blue {0-255} [, num opacity {0-1}, num textureindex])
3Dの球を描画する
説明
x、y、zの場所を原点(球の中央)として、中空の球を描画します。球の寸法は、単一の半径により定義されます。色は赤、緑、青の色コンポーネント(0~255)で定義されます。
オプションのopacityパラメータにより、球は透明(0)から不透明(1)まで変化します。有効なtextureindex番号が入力された場合、関連付けられている画像が球の表面にテクスチャとして貼り付けられます。
球の場所、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
オプションのopacityパラメータにより、球は透明(0)から不透明(1)まで変化します。有効なtextureindex番号が入力された場合、関連付けられている画像が球の表面にテクスチャとして貼り付けられます。
球の場所、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
例
drawsphere(0,0,0,5,175,175,175,1,3);
drawtext (obj view, str text, num x, num y, num z [, num width, num height, num thickness, num rx, num ry, num rz, num red {0-1}, num green {0-1}, num blue {0-1} , num opacity {0-1}, num flags])
テキストを描画する
説明
このコマンドは、x、y、zにより定義される場所にテキストを描画します。widthパラメータは使用されません。テキストの幅と高さは、heightパラメータにより決定されます。回転はrx、ry、rzにより定義されます。色は赤、緑、青の色コンポーネント(0~1)で定義されます。flagsパラメータは次のように定義できます:0x1 = 太字、0x2 = 斜体、0x4 = 下線。flagsパラメータは3d以外のビューにのみ適用されます。opacityが使用される場合、0(完全に透明)から1(不透明)までの数値です。必要なら、drawtext()の前にdrawfont()コマンドを呼び出してフォントタイプを変更できます。このコマンドは、平面、3D、グラフ、パネルのビューで使用できます。
例
drawtext(view, "Hello", 0,0,0, 0,.3,.1, 90,0,0, 1,0,0, .8);
この例は、場所(0,0,0)にサイズ0.3、太さ0.1、回転(90,0,0)、rgb色(1,0,0)、不透明度0.8で「Hello」と描画します。
この例は、場所(0,0,0)にサイズ0.3、太さ0.1、回転(90,0,0)、rgb色(1,0,0)、不透明度0.8で「Hello」と描画します。
モデルの現在の描画スケールを取得する
説明
以前にdrawtoobjectscale()を呼び出してモデルに設定された、現在の描画スケールを返します。これは、次のOpenGL関数と同じです。
glScalef(1/object.location.x,1/object.location.y,1/object.location.z);
glScalef(1/object.location.x,1/object.location.y,1/object.location.z);
例
drawtomodelscale(current);
以後の描画コマンドをオブジェクトのサイズに応じてスケーリングする
説明
このコマンドを使用すると、以後のすべての描画コマンドは、オブジェクトのサイズに応じてスケーリングされます。これは、次のOpenGL関数と同じです。
glScalef(object.location.x,object.location.y,object.location.z);
デフォルトでは、最初はオブジェクトのスケールに設定されます。
glScalef(object.location.x,object.location.y,object.location.z);
デフォルトでは、最初はオブジェクトのスケールに設定されます。
例
drawtoobjectscale(current);
drawtriangle (obj view, num x1, num y1, num z1, num x2, num y2, num z2, num x3, num y3, num z3, num red {0-1}, num green {0-1}, num blue {0-1})
平坦な三角形を描画する
説明
このコマンドは、xloc1、yloc1、zloc1、xloc2、yloc2、zloc2、xloc3、yloc3、zloc3により定義される頂点を持つ平坦な三角形を描画します。色は赤、緑、青の色コンポーネント(0~1)で定義されます。
例
drawtriangle(view, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0);
この例は、(0,0,0)、(1,0,0)、(0,1,0)の3つのポイントで定義された頂点を持つ三角形を描画します。 三角形の色は赤です。
この例は、(0,0,0)、(1,0,0)、(0,1,0)の3つのポイントで定義された頂点を持つ三角形を描画します。 三角形の色は赤です。
OpenGLでグリッドを描画する色を設定する
説明
OpenGLでグリッドを描画する色を設定します。rgbの色コンポーネントは0~1です。オプションのalphaコンポーネントは、0(透明)から1(不透明)までです。
例
OpenGLの描画設定を無効にする
説明
OpenGLの描画設定を無効にします。描画設定のリストについては、glEnable()を参照してください。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
fglDisable(GL_LIGHTING);
OpenGLの描画設定を有効にする
説明
OpenGLの描画設定を有効にします。FlexSimの描画エンジンは最適化のため、与えられた設定の有効/無効の状態を自動的に復元しないので、描画機能を実行した後でこのコマンドを使用し、設定をデフォルトに戻す必要があることに注意してください。設定をデフォルトに戻さないと、モデルの他のオブジェクトが正常にレンダリングされません。
OpenGLの一般的な描画設定には次のものがあります。
GL_LIGHTING
照明をオン/オフにします。
ポリゴンがビューアから離れても色が変わらない場合は、オンにします。
デフォルトは有効です。
GL_CULL_FACE
背面の除外をオン/オフにします。
ポリゴンの両面(前面と背面)を描画する場合はオフにします。
デフォルトは無効です。
GL_TEXTURE_2D
テクスチャ処理をオン/オフにします。
テクスチャが必要ない場所に表示されている場合はオフにします。
デフォルトは有効です。
さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントでglEnable()を参照してください。
OpenGLの一般的な描画設定には次のものがあります。
GL_LIGHTING
照明をオン/オフにします。
ポリゴンがビューアから離れても色が変わらない場合は、オンにします。
デフォルトは有効です。
GL_CULL_FACE
背面の除外をオン/オフにします。
ポリゴンの両面(前面と背面)を描画する場合はオフにします。
デフォルトは無効です。
GL_TEXTURE_2D
テクスチャ処理をオン/オフにします。
テクスチャが必要ない場所に表示されている場合はオフにします。
デフォルトは有効です。
さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントでglEnable()を参照してください。
例
fglEnable(GL_LIGHTING);
3Dビューの描画状態についての情報を取得する
説明
このコマンドを使用して、3dビューの描画状態について各種の情報にアクセスできます。実行されるロジックや、返されるデータは、動作パラメータに基づき、次のように決定されます。
FGL_INFO_SHADERTYPE - 描画パスのどの部分が実行されているか、たとえばシャドーマップのレンダリング(SHADERTYPE_RENDER_SHADOWS)、シャドーマップのぼかし処理(SHADERTYPE_BLUR)、オブジェクトの画面へのレンダリング(SHADERTYPE_DEFAULT)などを返します。
FGL_INFO_SHADERTYPE - 描画パスのどの部分が実行されているか、たとえばシャドーマップのレンダリング(SHADERTYPE_RENDER_SHADOWS)、シャドーマップのぼかし処理(SHADERTYPE_BLUR)、オブジェクトの画面へのレンダリング(SHADERTYPE_DEFAULT)などを返します。
例
/*シャドーマップをレンダリングするときはこのオブジェクトを描画しないこと*/
if (fglinfo(FGL_INFO_SHADERTYPE, view) == SHADERTYPE_RENDER_SHADOWS)
return 0;
if (fglinfo(FGL_INFO_SHADERTYPE, view) == SHADERTYPE_RENDER_SHADOWS)
return 0;
説明
現在のOpenGL描画コンテキストに識別マトリクスをロードします。言い換えると、現在のマトリクスを識別マトリクスに置き換えます。マトリクスは、n次元変換を1つのパッケージで指定する方法です。識別マトリクスをロードすることで、指定を原点にリセットし、回転、平行移動、スケーリングを解除できます。デフォルトの位置は(0,0,0)で、デフォルトの方向はz軸の負の方向です。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
fglLoadIdentity()
以後のマトリクス演算について、どのマトリクススタックが対象かを指定する
説明
以後のマトリクス演算について、どのマトリクススタックが対象かを指定します。マトリクスは、n次元変換を1つのパッケージで指定する方法です。受け付けられる値は、GL_MODELVIEW、GL_PROJECTION、GL_TEXTUREの3つです。初期値はGL_MODELVIEWで、シーン内でオブジェクトを移動するとき使用されます。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
fglMatrixMode(GL_MODELVIEW);
OpenGLで以後の頂点のシェーディングを行うための法線ベクトルを設定する
説明
OpenGL描画で以後の頂点のシェーディングを行うための法線ベクトルを設定します。ポリゴンは、法線が適用されない限りフラットシェーディングされます。法線はポリゴンに対して垂直なベクトルで、ポリゴンの向いている方向を指すものです。頂点が反時計回りの順序で定義されているポリゴンは、「右手の法則」に従って前方を指すことに注意してください。ポリゴンのシェーディングは、法線と光源の間の角度に基づいて行われます。法線はそれぞれの頂点に対して、色と同様な方法で適用されますが、通常は単に各ポリゴンの定義の最初で定義されます。ポリゴンの法線が光源に直接向いている場合は明るくシェーディングされ、角度が傾斜している場合は暗くシェーディングされます。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
fglNormal(1,0,0);
マトリクススタックから現在のOpenGL描画コンテキストをポップする
説明
マトリクススタックから現在のOpenGL描画コンテキストをポップします。すなわち、スタックの一番上にある空間に戻ります。OpenGLスタックでは、空間マトリクスがLIFOの順序で保存されます。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
fglPopMatrix();
現在のOpenGL描画コンテキストをマトリクススタックにプッシュする
説明
現在のOpenGL描画コンテキストをマトリクススタックにプッシュします。プッシュしたコンテキストは、後でglPopMatrix()を使用して取得できます。複数のオブジェクトを描画するとき、glTranslated、glRotated、glScaledが次のオブジェクトに影響することが望ましくない場合は、glPushMatrixとglPopMatrixを使用します。OpenGLスタックでは、空間マトリクスがLIFOの順序で保存されます。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
fglPushMatrix();
現在のOpenGL描画コンテキストを、x、y、z軸の周囲でdegreesだけ回転する
説明
現在のOpenGL描画コンテキストを、頂点(x,y,z)により定義される軸の周囲でdegreesだけ回転します。回転後は、すべてが軸の新しい回転に基づいて描画されます。OpenGLのxyz座標系の定義については、glVertex3dを参照してください。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
fglRotate(90,1,0,0);
現在のOpenGL描画コンテキストをx、y、z方向にスケーリングする
説明
現在のOpenGL描画コンテキストを、与えられたスケールパラメータに従ってスケーリングします。OpenGLのxyz座標系の定義については、glVertex3dを参照してください。このコマンドの後では、すべてが変更後の軸のスケールに基づいて描画されます。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
fglScale(2,4,1);
現在のOpenGL描画コンテキストをx、y、zだけ平行移動する
説明
現在のOpenGL描画コンテキストを、与えられた平行移動パラメータに従って変更移動します。OpenGLのxyz座標系の定義については、glVertex3dを参照してください。平行移動後は、すべてが軸の新しい場所に基づいて描画されます。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
fglTranslate(15, 4, 0);
説明
テキストについての情報を返します。metricが1なら、テキストの幅が返されます。metricが2なら、テキストの高さが返されます。metricが3なら、「a」を最大範囲として、収められるテキストの最大の長さが返されます。
例
getdrawtextmetric("Hello",12,1,0);
OpenGL設定が有効なら1を、そうでなければ0を返す
説明
OpenGL設定が有効なら1を、そうでなければ0を返します。描画設定のリストについては、fglEnable()を参照してください。この操作は非常に低速で、推奨されないことに注意してください。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
glIsEnabled(GL_LIGHTING)
OpenGLで以後に描画されるラインの線幅を指定する
説明
OpenGLで以後に描画されるラインの線幅を指定します。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
glLineWidth(3);
OpenGLで以後に描画される頂点のポイントサイズをピクセル単位で指定する
説明
OpenGLで以後に描画される頂点のポイントサイズを、ピクセル単位で指定します。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
例
glPointSize(5);
空白のグリッドを作成してmeshnodeに割り当てる
説明
空白のグリッドを作成してmeshnodeに割り当てます。pervertexattribsは、次の属性をビット単位でORした値です。
MESH_POSITION(デフォルトで追加されます)
MESH_TEX_COORD2
MESH_NORMAL
MESH_DIFFUSE
MESH_DIFFUSE4
MESH_AMBIENT_AND_DIFFUSE
MESH_AMBIENT_AND_DIFFUSE4
flagsは次のいずれかです。
MESH_STATIC_DRAW
MESH_DYNAMIC_DRAW
MESH_INDEXED
MESH_POSITION(デフォルトで追加されます)
MESH_TEX_COORD2
MESH_NORMAL
MESH_DIFFUSE
MESH_DIFFUSE4
MESH_AMBIENT_AND_DIFFUSE
MESH_AMBIENT_AND_DIFFUSE4
flagsは次のいずれかです。
MESH_STATIC_DRAW
MESH_DYNAMIC_DRAW
MESH_INDEXED
例
mesh(Model.find("mesh"), MESH_NORMAL | MESH_DIFFUSE, MESH_STATIC_DRAW)
インデックス付き頂点をグリッドに追加する
説明
インデックス付き頂点を、meshnodeに関連付けられているグリッドに追加します。グリッドにMESH_INDEXEDフラグがない場合、このコマンドは無視されます。
例
int newindex = meshaddindex(node("/mesh",model()), 4)
頂点をグリッドに追加する
説明
頂点を、meshnodeに関連付けられているグリッドに追加します。
追加された頂点のインデックスを返します。
追加された頂点のインデックスを返します。
例
meshaddvertex(Model.find("mesh"))
グリッドを描画する
説明
meshnodeに関連付けられているグリッドを描画します。drawmodeの値は次のいずれかです。
GL_POINTS
GL_LINES
GL_LINE_LOOP
GL_TRIANGLES
GL_TRIANGLE_STRIP
GL_TRIANGLE_FAN
offsetは、頂点インデックスの開始番号を示します。countは、いくつの頂点にdrawmodeを設定するかを指定します。strideは、いくつの頂点インデックスを中間でスキップするかを指定します。
インデックス付きグリッドの場合、strideは無視されます。
GL_POINTS
GL_LINES
GL_LINE_LOOP
GL_TRIANGLES
GL_TRIANGLE_STRIP
GL_TRIANGLE_FAN
offsetは、頂点インデックスの開始番号を示します。countは、いくつの頂点にdrawmodeを設定するかを指定します。strideは、いくつの頂点インデックスを中間でスキップするかを指定します。
インデックス付きグリッドの場合、strideは無視されます。
例
meshdraw(node("/mesh",model()), GLTRIANGLES, 0, 3, 0)
グリッドから指定の情報を取得する
説明
meshnodeに関連付けられているグリッドから、指定の情報を取得します。indexは、要求される頂点のインデックスです(0から開始)。typeは、グリッドについて次のいずれかを指定します(indexとparamは無視されます)。
MESH_PER_VERTEX_ATTRIBS
MESH_PER_MESH_ATTRIBS
MESH_FLAGS
MESH_NR_VERTS
MESH_GET_INDEX - 与えられたインデックスについて頂点インデックスを返します(MESH_INDEXEDフラグと併用した場合のみ有効)。
次に示すのは頂点に固有のタイプです。
MESH_POSITION
MESH_TEX_COORD2
MESH_NORMAL
MESH_DIFFUSE
MESH_DIFFUSE4
MESH_AMBIENT_AND_DIFFUSE
MESH_AMBIENT_AND_DIFFUSE4
頂点を指定する場合、paramに次のものが有効です。
MESH_COLOR_RED
MESH_COLOR_GREEN
MESH_COLOR_BLUE
MESH_COLOR_ALPHA
MESH_POS_X
MESH_POS_Y
MESH_POS_Z
MESH_TEX_S
MESH_TEX_T
MESH_PER_VERTEX_ATTRIBS
MESH_PER_MESH_ATTRIBS
MESH_FLAGS
MESH_NR_VERTS
MESH_GET_INDEX - 与えられたインデックスについて頂点インデックスを返します(MESH_INDEXEDフラグと併用した場合のみ有効)。
次に示すのは頂点に固有のタイプです。
MESH_POSITION
MESH_TEX_COORD2
MESH_NORMAL
MESH_DIFFUSE
MESH_DIFFUSE4
MESH_AMBIENT_AND_DIFFUSE
MESH_AMBIENT_AND_DIFFUSE4
頂点を指定する場合、paramに次のものが有効です。
MESH_COLOR_RED
MESH_COLOR_GREEN
MESH_COLOR_BLUE
MESH_COLOR_ALPHA
MESH_POS_X
MESH_POS_Y
MESH_POS_Z
MESH_TEX_S
MESH_TEX_T
例
double xposition = meshinfo(Model.find("mesh"), MESH_POSITION, 6, MESH_POS_X)
meshsetattrib (node meshnode, int attribid, double param1 [, double param2, double param3, double param4])
attribidの値をグリッドのvertindexに追加/設定する
説明
attribidの値を、meshnodeに関連付けられているグリッド全体に適用します。attribidには次の属性を使用できます。
MESH_NORMAL
MESH_AMBIENT
MESH_DIFFUSE
MESH_DIFFUSE4
MESH_AMBIENT_AND_DIFFUSE
MESH_AMBIENT_AND_DIFFUSE4
MESH_SPECULAR
MESH_SHININESS
MESH_EMISSIVE
MESH_NORMAL
MESH_AMBIENT
MESH_DIFFUSE
MESH_DIFFUSE4
MESH_AMBIENT_AND_DIFFUSE
MESH_AMBIENT_AND_DIFFUSE4
MESH_SPECULAR
MESH_SHININESS
MESH_EMISSIVE
例
meshsetattrib(Model.find("mesh"), 1, MESH_DIFFUSE4, 1, 0, 0, 1)
meshsetvertexattrib (node meshnode, int vertindex, int attribid, double param1 [, double param2, double param3, double param4])
attribidの値をグリッドのvertindexに設定する
説明
attribidの値を、meshnodeに関連付けられているグリッドのvertindexに設定します。attribidには次の属性を使用できます。
MESH_POSITION
MESH_TEX_COORD2
MESH_NORMAL
MESH_DIFFUSE
MESH_DIFFUSE4
MESH_AMBIENT_AND_DIFFUSE
MESH_AMBIENT_AND_DIFFUSE4
注意:attribidは、グリッドを作成するより前に定義されている必要があります。
MESH_POSITION
MESH_TEX_COORD2
MESH_NORMAL
MESH_DIFFUSE
MESH_DIFFUSE4
MESH_AMBIENT_AND_DIFFUSE
MESH_AMBIENT_AND_DIFFUSE4
注意:attribidは、グリッドを作成するより前に定義されている必要があります。
例
mesh(Model.find("mesh"), MESH_NORMAL | MESH_DIFFUSE4, MESH_STATIC_DRAW)
meshsetvertexattrib(Model.find("mesh"), 1, MESH_DIFFUSE4, 1, 0, 0, 1)
meshsetvertexattrib(Model.find("mesh"), 1, MESH_DIFFUSE4, 1, 0, 0, 1)
setdrawnamefunction (num boxwidth, num boxheight, node nodefunction[, num pval1, num pval2, num pval3])
説明
このコマンドを使用して、モデルでオブジェクトの下のボックスに情報を表示する機能に直接アクセスできます。FlexSimの3D表示メカニズムでは、モデル内のオブジェクトに対して複数の描画パスを実行します。最初に、描画が必要なデータを収集してキャッシュします。次に、各オブジェクトについてオブジェクトの形状を描画し、オブジェクトのカスタム描画機能を呼び出します。最後に、コネクターや情報ボックスなどのオーバーレイを描画します。オブジェクトのカスタム描画機能の一部、すなわちOnDrawイベントやオブジェクトのカスタム描画コードトリガーとしてsetdrawnamefunction()コマンドが呼び出された場合、そのオブジェクトの情報ボックスのステップに描画シーケンスが到達したときにコールバックが起動されます。このためには、コマンドを呼び出して描画するボックスのサイズを指定し、ボックス情報を描画するため起動されるコードを保持しているノードへの参照をnodefunctionパラメータとして渡し、最大3つのパラメータをparam(1)、param(2)、param(3)としてnodefunctionに渡します。その後で、drawflattext()コマンド、または他の任意のOpenGL描画コマンドを使用して、必要な情報を描画するnodefunctionコードを実装します。nodefunctionが呼び出されるとき、OpenGLのモデルビューマトリクスは、(0,0,0)のポイントが表示ボックスの上端中央で、長さの1単位が画面の1ピクセルに相当するよう設定されることに注意してください。
例
オブジェクトのカスタム描画コードトリガーに、次のコードを追加します。
if(!param(2)) {
setdrawnamefunction(80, 15, c, param(1), 1);
} else {
fglTranslate(-40, -15, 0);
drawflattext("Hello World");
}
これにより、オブジェクトの下の表示ボックスに「Hello World」というテキストが描画されます。説明
OpenGLマトリクスを、現在のobject/viewのスケーリングされた空間に設定します。パラメータが0なら、オブジェクトのベース空間マトリクスがロードされます。パラメータが1なら、ビューの空間がロードされ、以後のすべての描画コマンドは直接ビューアの方角を向き、スケールは変更されません。このコマンドは、OnDrawイベントとカスタム描画コードトリガーでのみ使用できます。OpenGL空間をオブジェクトのサイズでスケーリングするには、drawtoobjectscale()を参照してください。
例
spacebase(0);
説明
OpenGL空間に回転を適用します。これは、次のOpenGLコードに相当します(OpenGLの座標系ではyがFlexSimのz軸の方向、zはFlexSimのy軸の方向を指すことに留意してください)。
glRotatef( z, 0.0f, 1.0f, 0.0f);
glRotatef(-y, 0.0f, 0.0f, 1.0f);
glRotatef( x, 1.0f, 0.0f, 0.0f);
glRotatef( z, 0.0f, 1.0f, 0.0f);
glRotatef(-y, 0.0f, 0.0f, 1.0f);
glRotatef( x, 1.0f, 0.0f, 0.0f);
例
spacerotate(90, 0, 0)
現在の座標空間を、FlexSimのx軸の周囲で90度回転します。以後の描画コマンドは、新しい回転に合わせて実行されます。
現在の座標空間を、FlexSimのx軸の周囲で90度回転します。以後の描画コマンドは、新しい回転に合わせて実行されます。
説明
OpenGL空間にスケール変換を適用します。これは、次のOpenGLコードに相当します(OpenGLの座標系ではyがFlexSimのz軸の方向、zはFlexSimのy軸の方向を指すことに留意してください)。
glScalef(x,z,y);
glScalef(x,z,y);
例
spacescale(2, 1, 1)
現在の座標空間を、FlexSimのx方向に2倍にスケーリングします。以後の描画コマンドは、新しいスケールに合わせて実行されます。
現在の座標空間を、FlexSimのx方向に2倍にスケーリングします。以後の描画コマンドは、新しいスケールに合わせて実行されます。
説明
OpenGL空間に平行移動を適用します。これは、次のOpenGLコードに相当します(OpenGLの座標系ではyがFlexSimのz軸の方向、zはFlexSimのy軸の方向を指すことに留意してください)。
glTranslatef(x,z,-y);
glTranslatef(x,z,-y);
例
spacetranslate(current.size.x, -current.size.y, 0)
以前に平行移動が適用されていなければ、オブジェクトの左下コーナーに平行移動します。以後の描画コマンドは、新しい場所に合わせて実行されます。
以前に平行移動が適用されていなければ、オブジェクトの左下コーナーに平行移動します。以後の描画コマンドは、新しい場所に合わせて実行されます。
説明
OpenGLの呼び出しシーケンスでテクスチャをバインドした後で、テクスチャの座標を指定できます。OpenGLは、マッピングにテクスチャ座標の概念を使用します。この関数は、テクスチャのS軸を設定するため使用されます。設定されたテクスチャの軸は、以後に描画されるすべてのポリゴンをレンダリングするため使用されます。
例
textureaxis_s(1,0,0,0)
説明
OpenGLの呼び出しシーケンスでテクスチャをバインドした後で、テクスチャの座標を指定できます。OpenGLは、マッピングにテクスチャ座標の概念を使用します。この関数は、テクスチャのT軸を設定するため使用されます。設定されたテクスチャの軸は、以後に描画されるすべてのポリゴンをレンダリングするため使用されます。
例
textureaxis_t(0,0,1,0)
イベント
イベントの作成、検索、操作に使用されるコマンド。
説明
eventtypeの凡例では、そのeventtypeで特定のパラメータに与えられた値と、文字列とを関連付けできます。「parameter」に負の数値を渡すと、パラメータの説明として、前に指定した文字列を追加できます。「parameter」が負の値で「value」が-1なら、その数値はノードへのポインターと見なされ、ノードのパスが文字列として表示されます。
例
addtoeventtypelegend(index,-1,-1,"resource: "); // p1について「resource: 」というテキストを表示し、オブジェクトのパスを表示する
addtoeventtypelegend(index,-2,0,"covermode: "); // p2について、「covermode: 」というテキストを表示する
addtoeventtypelegend(index,2,1,"YellowToGreen"); // p2について、値が1なら数値の1ではなく「YellowToGreen」と表示される
addtoeventtypelegend(index,2,2,"RedToGreen"); // p2について、値が2なら数値の2ではなく「RedToGreen」と表示される
addtoeventtypelegend(index,3,0,""); // p3について、0を空白にする
addtoeventtypelegend(index,4,0,""); // p4について、0を空白にする
addtoeventtypelegend(index,-2,0,"covermode: "); // p2について、「covermode: 」というテキストを表示する
addtoeventtypelegend(index,2,1,"YellowToGreen"); // p2について、値が1なら数値の1ではなく「YellowToGreen」と表示される
addtoeventtypelegend(index,2,2,"RedToGreen"); // p2について、値が2なら数値の2ではなく「RedToGreen」と表示される
addtoeventtypelegend(index,3,0,""); // p3について、0を空白にする
addtoeventtypelegend(index,4,0,""); // p4について、0を空白にする
説明
開発者向けです。このコマンドは、以後のモデルの実行中に発生するイベントを作成します。このイベントは、objectで指定されるオブジェクト用に作成されます。イベントは、このコマンドが呼び出されてからtime秒後に発生します。イベントが、作成されたのと同じシミュレーション時間で発生する必要がある場合、timeを0にします。イベントが発生すると、オブジェクトのクラスのOnTimerEventイベント関数が呼び出されます。この関数にはcode、data、involvedが渡されます。これらの値は、OnTimerEventでeventcode、eventdata、iとしてアクセスできます。一般に、作成または実行されたイベントのタイプを判定するにはeventcodeが使用されます。eventdataはイベントの説明で、ユーザーの利便性のため使用されます。通常、OnTimerEventの実行には重要でありません。イベントに関係するオブジェクト、たとえば進入や退出を行うフローアイテムなどはinvolvedとして渡され、OnTimerEventでiとして参照されます。コード用に次の値が定義済みで、ユーザーが使用できます。
1 - EVENT_OPENINPUTS
2 - EVENT_OPENOUTPUTS
3 - EVENT_PROCESSFINISH
4 - EVENT_CREATEPART
5 - EVENT_DESTROYPRODUCT
6 - EVENT_CONVEYEND
7 - EVENT_BEGINLOADTIME
8 - EVENT_BEGINUNLOADTIME
9 - EVENT_ENDLOADTIME
10 - EVENT_ENDUNLOADTIME
11 - EVENT_ENDDELAYTIME
12 - EVENT_BEGINDOWNTIME
13 - EVENT_ENDDOWNTIME
14 - EVENT_ENDWAITTIME
15 - EVENT_MEETBATCHQTY
16 - EVENT_ENDTRAVELTIME
17 - EVENT_ENDSETUP
ユーザーが独自のイベントタイプを作成する場合、100より大きな値をコードとして使用します。eventcodeとeventdataも参照してください。
1 - EVENT_OPENINPUTS
2 - EVENT_OPENOUTPUTS
3 - EVENT_PROCESSFINISH
4 - EVENT_CREATEPART
5 - EVENT_DESTROYPRODUCT
6 - EVENT_CONVEYEND
7 - EVENT_BEGINLOADTIME
8 - EVENT_BEGINUNLOADTIME
9 - EVENT_ENDLOADTIME
10 - EVENT_ENDUNLOADTIME
11 - EVENT_ENDDELAYTIME
12 - EVENT_BEGINDOWNTIME
13 - EVENT_ENDDOWNTIME
14 - EVENT_ENDWAITTIME
15 - EVENT_MEETBATCHQTY
16 - EVENT_ENDTRAVELTIME
17 - EVENT_ENDSETUP
ユーザーが独自のイベントタイプを作成する場合、100より大きな値をコードとして使用します。eventcodeとeventdataも参照してください。
例
if (current.subnodes.length >= current.mincontent)
{
createevent(current,5,EVENT_OPENOUTPUTS,"openoutputs",involved);
}
シミュレーションで5秒後に、currentのコンテンツがcurrentで参照されるオブジェクトのmincontentという名前のラベルより少なければ、currentとして指定されたオブジェクトの出力ポートを、involvedで指定されたフローアイテム用に開きます。
{
createevent(current,5,EVENT_OPENOUTPUTS,"openoutputs",involved);
}
シミュレーションで5秒後に、currentのコンテンツがcurrentで参照されるオブジェクトのmincontentという名前のラベルより少なければ、currentとして指定されたオブジェクトの出力ポートを、involvedで指定されたフローアイテム用に開きます。
fluidobject、およびそのティッカーに割り当てられたすべてのオブジェクト用のティックイベントを作成する
説明
渡された流体オブジェクト、および同じティッカーでコントロールされる他のすべての流体オブジェクト用に、ティックイベントを作成します。これによりユーザーは、ティッカーの通常のティック時間とは異なる時間に流体物質を移動できます。ユーザーは、特定のティッカーをパラメータとしてこのコマンドに渡すこともできます。
例
createtickevent(current);
説明
開発者向けです。eventlistのすべてのイベントを遅延させます。eventlistのすべてのイベントについて、時間がvalueだけ増やされます。
例
delayevents(20)
説明
開発者向けです。オブジェクトのイベントを遅延させます。オブジェクトの時間付きイベントがvalueだけ増やされ、eventlistが並べ替えされます。valueには正と負のどちらも使用できます。
例
delayeventsofobject(model().subnodes[2],20)
説明
開発者向けです。イベントリストの特定のイベントを破棄します。
例
destroyevent(node("MAIN:/1/exec/events").last)
オブジェクトに関連付けられているイベントを破棄する
説明
与えられたオブジェクトに関連付けらわれているイベントを破棄します。必須パラメータは、最初のパラメータobjectのみです。他のパラメータはオプションで、次に示すように、破棄するイベントを選択するフィルタとなります。
time:コマンドが呼び出された時間と等しいか、より大きければ、このパラメータはイベントを時間でフィルタリングします。イベントの時間が渡されたtimeと等しくなければ、イベントは破棄されません。フィルタとして使用しない場合、-1を渡します。
code:このパラメータが0より大きい場合、イベントコードでイベントをフィルタリングします。イベントのコードが渡されたcodeと等しくなければ、イベントは破棄されません。
data:NULL以外なら、このパラメータを使用し、イベントに関連付けられているデータ文字列でイベントがフィルタリングされます。イベントのデータ文字列が渡された文字列と等しくなければ、イベントは破棄されません。
involved:NULL以外なら、このパラメータにより、関係するノードやオブジェクトでイベントがフィルタリングされます。イベントの関連ノードが渡されたノードと等しくなければ、イベントは破棄されません。
time:コマンドが呼び出された時間と等しいか、より大きければ、このパラメータはイベントを時間でフィルタリングします。イベントの時間が渡されたtimeと等しくなければ、イベントは破棄されません。フィルタとして使用しない場合、-1を渡します。
code:このパラメータが0より大きい場合、イベントコードでイベントをフィルタリングします。イベントのコードが渡されたcodeと等しくなければ、イベントは破棄されません。
data:NULL以外なら、このパラメータを使用し、イベントに関連付けられているデータ文字列でイベントがフィルタリングされます。イベントのデータ文字列が渡された文字列と等しくなければ、イベントは破棄されません。
involved:NULL以外なら、このパラメータにより、関係するノードやオブジェクトでイベントがフィルタリングされます。イベントの関連ノードが渡されたノードと等しくなければ、イベントは破棄されません。
例
destroyeventsofobject(model().subnodes[2])
オブジェクトに関連付けらわれているメッセージイベントを破棄する
説明
与えられたオブジェクトに関連付けられているメッセージイベントを破棄します。
メッセージパラメータが含まれていなければ、すべてのメッセージイベントが破棄されます。
メッセージパラメータが含まれていなければ、すべてのメッセージイベントが破棄されます。
例
destroymessageevents(current, time(), NULL, 8)
説明
開発者向けです。このコマンドは、createevent()コマンドにコードとして渡された数値を返します。ライブラリオブジェクトのOnTimerEvent関数でのみ使用されます。通常は、発生しているイベントのタイプを識別するために使用されます。このコマンドを呼び出すときは括弧を付けません。createevent()とeventdataも参照してください。
例
if (eventcode == EVENT_OPENINPUTS)
thisobjectdata->openinputs();
createevent()関数にEVENT_OPENINPUTSという値が渡された場合、thisobjectdataで参照されるオブジェクトのopeninputs()というメソッドを呼び出します。
thisobjectdata->openinputs();
createevent()関数にEVENT_OPENINPUTSという値が渡された場合、thisobjectdataで参照されるオブジェクトのopeninputs()というメソッドを呼び出します。
説明
開発者向けです。このコマンドは、createevent()コマンドにデータとして渡された文字列値を返します。ライブラリオブジェクトのOnTimerEvent関数でのみ使用されます。通常は、発生しているイベントタイプのユーザー向け説明として使用されます。速度の理由から、OnTimerEvent関数の実行時には一般に使用されません。このコマンドを呼び出すときは括弧を付けません。createevent()とeventcodeも参照してください。
例
if (comparetext(eventdata,"openinputs"))
{
thisobjectdata->openinputs();
}
createevent()に渡された文字列値が「openinputs」と等しい場合、thisobjectdataで参照されるオブジェクトのopeninputsというメソッドを呼び出します。
{
thisobjectdata->openinputs();
}
createevent()に渡された文字列値が「openinputs」と等しい場合、thisobjectdataで参照されるオブジェクトのopeninputsというメソッドを呼び出します。
インデックスのイベントのイベント属性
説明
MAIN:/project/exec/eventsの指定されたインデックスにあるイベント属性を返します。
thingは次のいずれかです。
1 = クライアント
2 = 時間
3 = コード
4 = データ
5 = 関係
6 = イベントノード
thingは次のいずれかです。
1 = クライアント
2 = 時間
3 = コード
4 = データ
5 = 関係
6 = イベントノード
例
eventget(2,3)
説明
開発者向けです。イベントログに関係する何かを記述する文字列値を返します。
動作は次のいずれかです。
ELI_GET_OBJECTPATH 1 - objectpaths配列から、インデックスn1にあるオブジェクトのパスを返します。
ELI_GET_INVOLVEDPATH 2 - involvedpaths配列から、インデックスn1にあるオブジェクトのパスを返します。
ELI_GET_OTHERPATH 3 - objectpaths配列から、インデックスn1にあるオブジェクトのパスを返します。
ELI_EVENTTYPE_NAME 4 - eventtypes配列から、インデックスn1にあるeventtypeの名前を返します。
ELI_LOGGEDEVENTTYPE_NAME 5 - loggedeventtypes配列から、インデックスn1にあるlogged eventtypeの名前を返します。
イベントログに関係し、数値を返す他のオペレーションには、applicationcommand()関数でアクセスできます。
「seteventlogging」- eventtype n1のログ記録を有効または無効にします。
「geteventlogging」- eventtype n1についてログ記録が有効かどうかを返します。
「getobjectpathslistsize」- objectpaths配列のサイズを返します。
「getinvolvedpathslistsize」- involvedpaths配列のサイズを返します。
「getotherpathslistsize」- objectpaths配列のサイズを返します。
「geteventtypeslistsize」- eventtypes配列のサイズを返します。
「getloggedeventtypeslistsize」- loggedeventtypes配列のサイズを返します。
「geteventtypecode」- n1として渡された名前のeventtypeのインデックスを返します。
動作は次のいずれかです。
ELI_GET_OBJECTPATH 1 - objectpaths配列から、インデックスn1にあるオブジェクトのパスを返します。
ELI_GET_INVOLVEDPATH 2 - involvedpaths配列から、インデックスn1にあるオブジェクトのパスを返します。
ELI_GET_OTHERPATH 3 - objectpaths配列から、インデックスn1にあるオブジェクトのパスを返します。
ELI_EVENTTYPE_NAME 4 - eventtypes配列から、インデックスn1にあるeventtypeの名前を返します。
ELI_LOGGEDEVENTTYPE_NAME 5 - loggedeventtypes配列から、インデックスn1にあるlogged eventtypeの名前を返します。
イベントログに関係し、数値を返す他のオペレーションには、applicationcommand()関数でアクセスできます。
「seteventlogging」- eventtype n1のログ記録を有効または無効にします。
「geteventlogging」- eventtype n1についてログ記録が有効かどうかを返します。
「getobjectpathslistsize」- objectpaths配列のサイズを返します。
「getinvolvedpathslistsize」- involvedpaths配列のサイズを返します。
「getotherpathslistsize」- objectpaths配列のサイズを返します。
「geteventtypeslistsize」- eventtypes配列のサイズを返します。
「getloggedeventtypeslistsize」- loggedeventtypes配列のサイズを返します。
「geteventtypecode」- n1として渡された名前のeventtypeのインデックスを返します。
例
string objectpath = eventloginfo(ELI_GET_OBJECTPATH,1);
説明
開発者向けです。このコマンドは、OnListenおよびOnPreListenイベント関数内で使用するための情報を返します。
返される情報は、リッスンしているイベントに渡された情報です。
infoが1なら、エンジンイベントコードを返します。エンジンイベントコードには、SM_MESSAGEやSM_DRAWなどのマクロがあります。
infoが2および3なら、関連付けられているツリーノードへのポインターを返します。
リスニングを設定するには、リッスン先のオブジェクト(オブジェクトA)に「listeners」属性を追加します。listeners属性は、リッスン元のオブジェクト(オブジェクトB)に結合されているサブノードを持つ必要があります。オブジェクトAでイベントが起動する前に、オブジェクトBのOnPreListenイベント関数が起動します。オブジェクトAの最初のイベントの後、オブジェクトBのOnListenイベント関数が起動します。また、オブジェクトBの結合ノードの下に数値データを持つサブノードを追加し、イベントをフィルタリングすることもできます。数値データには、リッスンするビットシフトされたイベントコードの、ビット単位の合計を使用します。結合にサブノードがない場合、オブジェクトはデフォルトですべてのイベントをリッスンします。
返される情報は、リッスンしているイベントに渡された情報です。
infoが1なら、エンジンイベントコードを返します。エンジンイベントコードには、SM_MESSAGEやSM_DRAWなどのマクロがあります。
infoが2および3なら、関連付けられているツリーノードへのポインターを返します。
リスニングを設定するには、リッスン先のオブジェクト(オブジェクトA)に「listeners」属性を追加します。listeners属性は、リッスン元のオブジェクト(オブジェクトB)に結合されているサブノードを持つ必要があります。オブジェクトAでイベントが起動する前に、オブジェクトBのOnPreListenイベント関数が起動します。オブジェクトAの最初のイベントの後、オブジェクトBのOnListenイベント関数が起動します。また、オブジェクトBの結合ノードの下に数値データを持つサブノードを追加し、イベントをフィルタリングすることもできます。数値データには、リッスンするビットシフトされたイベントコードの、ビット単位の合計を使用します。結合にサブノードがない場合、オブジェクトはデフォルトですべてのイベントをリッスンします。
例
treenode current = c;
treenode involved = i;
int code = listenerinfo(1);
treenode associated = tonode(listenerinfo(2));
treenode coupling = tonode(listenerinfo(3));
print("OnListen");
print("current: ", current);
print("involved: ", involved);
print("code: ", code);
print("associated: ", associated);
print("coupling: ", coupling);
説明
イベントログのエントリとしてイベントをログ記録します。registereventtype()に渡された名前、またはregistereventtype()により返されたインデックスが使用されます。
例
logevent("MyEventType",current,item,port);
説明
イベントログで使用するカスタムイベントタイプを登録します。eventtypeのインデックスが返され、このインデックスは後でlogevent()など他のコマンドで使用できます。
例
int index = registereventtype("MyEventType");
説明
開発者向けです。実行ファイルに対して、オブジェクトがリスナーであることを通知します。これはセッション間で継続されません。このコマンドは、実行ファイルのリスナーリストに、リスナーをポイントするノードを追加します。セッションが再ロードされるか、コンパイル後には、リスナーをリセットする必要があります。リスニングメカニズムは実行ファイルに大きな負荷をかける可能性があるため、使用は最小限にしてください。リスナーは、モデルのいずれかのオブジェクトにイベント(OnTimerEvent)がディスパッチされたとき、OnListenメッセージを受け取ります。リスナーはメッセージをフィルタリングし、OnListenメッセージに応答するかどうかを決定する必要があります。OnListenメッセージに渡されるパラメータについては、「オンラインリファレンスガイド」を参照してください。
例
startlisten(so())
説明
開発者向けです。実行ファイルに対して、このオブジェクトがリスナーでなくなったことを通知します。このコマンドは、リスナーへのポインターが以前にstartlisten()コマンドでリスナーリストに追加されていれば、リストからポインターを削除します。リスナーは、モデルのいずれかのオブジェクトにイベント(OnTimerEvent)がディスパッチされたとき、OnListenメッセージを受け取ります。
例
stoplisten(so())
FixedResources
FixedResourceオブジェクトに関連付けられているコマンド。これらのコマンドのほとんどは、BasicConveyorまたはBasicFRオブジェクトのカスタム動作を開発するとき使用されます。
FixedResourceオブジェクトのプル要件を再起動する
説明
FixedResourceに対して、入力ポートportnr経由で渡されたオブジェクトのアイテムのプル要件を評価するよう通知します。このコマンドは、アイテムがプル可能な場合、プル要件のフィールドにより返される値を返します。理由にかかわらずアイテムをプルできない場合(ポートが閉じている、アイテムがリリースされていないなど)、このコマンドは0を返します。bypassflagsパラメータは、BYPASS_で始まるマクロのビット単位の組み合わせで、アイテムが利用可能かどうかを判定するときに特定の基準を無視するよう指定します。
例
evaluatepullcriteria(current, item, 1); // [ベストアイテムからプル]ピックリストオプションも参照
アイテムのFixedResource関連の変数に保存されているオブジェクト参照を取得する
説明
アイテムのFixedResource関連の変数に保存されているオブジェクト参照を返します。
FixedResourceクラスでは、各フローアイテムに関連する1つの変数をサブクラスに保存できます。これらの変数の意味は、クラスのタイプによって異なります。
たとえば、プロセッサがプロセスまたは設定時間にオペレーターを使用するよう設定されている場合、プロセッサは関連変数を使用して、フローアイテム用に呼び出されるディスパッチャーへの参照を保存します。
モデルのオブジェクトとして明示的なFixedResourceクラスを使用している場合、このコマンドをsetitemvar、getitemvar、setiteminvolvedコマンドとともに使用して、オブジェクトが受け取るアイテムの変数を保存できます。
FixedResourceクラスでは、各フローアイテムに関連する1つの変数をサブクラスに保存できます。これらの変数の意味は、クラスのタイプによって異なります。
たとえば、プロセッサがプロセスまたは設定時間にオペレーターを使用するよう設定されている場合、プロセッサは関連変数を使用して、フローアイテム用に呼び出されるディスパッチャーへの参照を保存します。
モデルのオブジェクトとして明示的なFixedResourceクラスを使用している場合、このコマンドをsetitemvar、getitemvar、setiteminvolvedコマンドとともに使用して、オブジェクトが受け取るアイテムの変数を保存できます。
例
getiteminvolved(current.first)
アイテムについて評価されたsendtoの値を取得する
説明
itemがFixedResource内に存在し、リリースされていれば、そのアイテムについて評価されたsendtoの値を返します。
例
getitemsendto(item)
フローアイテムのFixedResource状態を取得する
説明
フローアイテムのFixedResource状態を返します。これは、次に示す3つの値のいずれかです。
FRSTATE_INQUEUE:フローアイテムは処理中で、まだリリースされていません。
FRSTATE_READY:フローアイテムはリリース済みですが、それを受け取る準備の整った下流オブジェクトが見つかっていません。
FRSTATE_MOVEREQUESTED:フローアイテムはリリース済みで、下流オブジェクトの受け取り準備が整っていますが、アイテムは輸送によるピックアップ待ちです。
詳細については、FixedResourceのドキュメントを参照してください。
FRSTATE_INQUEUE:フローアイテムは処理中で、まだリリースされていません。
FRSTATE_READY:フローアイテムはリリース済みですが、それを受け取る準備の整った下流オブジェクトが見つかっていません。
FRSTATE_MOVEREQUESTED:フローアイテムはリリース済みで、下流オブジェクトの受け取り準備が整っていますが、アイテムは輸送によるピックアップ待ちです。
詳細については、FixedResourceのドキュメントを参照してください。
例
getitemstate(so())
アイテム用のFixedResource変数の値を取得する
説明
アイテム用のFixedResource変数の値を返します。varパラメータは1、2、3のいずれかです。FixedResourceクラスでは、各フローアイテムについて3つの数値変数をサブクラスに保存できます。これらの変数の意味は、クラスのタイプによって異なります。
たとえば、プロセッサは変数1にアイテムの処理開始時間を、変数2にアイテムの処理時間を保存できます。
モデルのオブジェクトとして明示的なFixedResourceクラスを使用している場合、このコマンドをsetitemvar、getiteminvolved、setiteminvolvedコマンドとともに使用して、オブジェクトが受け取るアイテムの変数を保存できます。
たとえば、プロセッサは変数1にアイテムの処理開始時間を、変数2にアイテムの処理時間を保存できます。
モデルのオブジェクトとして明示的なFixedResourceクラスを使用している場合、このコマンドをsetitemvar、getiteminvolved、setiteminvolvedコマンドとともに使用して、オブジェクトが受け取るアイテムの変数を保存できます。
例
getitemvar(current.first, 3)
アイテムがリリース済みなら保持する
説明
指定されたアイテムがリリース済みなら、それを保持します。このコマンドは実質的にアイテムを「リリース取り消し」し、退出を防止します。アイテムがFixedResource内に存在し、リリース済みで、下流オブジェクトに「割り当て」されていない(輸送待ちでない)場合のみ適用されます。
例
holditem(item)
フローアイテムのFixedResource変数を初期化する
説明
フローアイテムのFixedResource変数を初期化します。通常は、フローアイテムが初めて固定リソースに進入したときに行われます。この動作は通常は自動的に行われますが、独自のBasicFRオブジェクト動作を開発するとき、例外的なケースで使用できます。
例
inititem(item)
説明
fixedresourceに対して、入力ポートportnr経由で渡されたオブジェクトのアイテムのプル要件を評価するよう通知します。プル評価が真なら、このコマンドはただちにアイテムをプルします。このコマンドは、アイテムが正常にプルされれば1を、そうでなければ0を返します。理由にかかわらずアイテムをプルできない場合(ポートが閉じている、アイテムがリリースされていないなど)、このコマンドは0を返します。bypassflagsパラメータは、BYPASS_で始まるマクロのビット単位の組み合わせで、アイテムが利用可能かどうかを判定するときに特定の基準を無視するよう指定します。BYPASS_ALLを指定すると、利用可能性にかかわらずただちにアイテムがプルされます。
例
pullitem(current, item, 1); // [ベストアイテムからプル]ピックリストオプションも参照
FixedResourceに対して、入力を開きフローアイテムを受け付けるよう通知する
説明
FixedResourceステーションに対して、入力を開きフローアイテムを受け付けるよう通知します。
portパラメータはオプションで、どのポートから受信すべきかが正確に判明している場合のみ使用します。portパラメータが指定されている場合、このオブジェクトは上流オブジェクトの対応する出力ポートが開いていれば、そのオブジェクトからアイテムの受け付けを試み、アイテムの以前のsend-to戻り値を無視します(プルロジックの動作と同様です)。この関数は、アイテムを受け付けるため1回、アイテムの受け付け後に(または受け付けの確認後に)1回だけ実行します。
releaseitem()コマンドも参照してください。この関数は、BasicFRまたはBasicConveyorのコードフィールド内でのみ使用します。他のオブジェクトには独自のreceiveitem()が実装されています。
portパラメータはオプションで、どのポートから受信すべきかが正確に判明している場合のみ使用します。portパラメータが指定されている場合、このオブジェクトは上流オブジェクトの対応する出力ポートが開いていれば、そのオブジェクトからアイテムの受け付けを試み、アイテムの以前のsend-to戻り値を無視します(プルロジックの動作と同様です)。この関数は、アイテムを受け付けるため1回、アイテムの受け付け後に(または受け付けの確認後に)1回だけ実行します。
releaseitem()コマンドも参照してください。この関数は、BasicFRまたはBasicConveyorのコードフィールド内でのみ使用します。他のオブジェクトには独自のreceiveitem()が実装されています。
例
receiveitem(current)
フローアイテムをflowItem binにリサイクルする
説明
指定されたフローアイテムをflowitem binにリサイクルします。binrankは、flowitem binをリサイクルする先のランクです(texturedcoloredbox = 5など)。
例
recycleitem(item, 5);
フローアイテムを現在のオブジェクトからリリースする
説明
指定されたフローアイテムをリリースします。フローアイテムは、現在そのアイテムが含まれているオブジェクトから自由に退出可能な時にリリースされ、その時点で[ポートに送信]が評価されます。このコマンドは、フローアイテムがBasicFRオブジェクト内にあり、フローアイテムがまだリリースされていない、またはいずれかのFixedResourceでholditem()により保持されている場合のみ使用します。
2番目のパラメータportはオプションです。このパラメータが渡された場合、sendtoは評価されず、アイテムは指定のポートからリリースされます。フローアイテムが存在する場合、releaseitemは1を返します。それ以外の場合、0を返します。
receiveitem()コマンドも参照してください。
2番目のパラメータportはオプションです。このパラメータが渡された場合、sendtoは評価されず、アイテムは指定のポートからリリースされます。フローアイテムが存在する場合、releaseitemは1を返します。それ以外の場合、0を返します。
receiveitem()コマンドも参照してください。
例
releaseitem(item)
フローアイテムのuniqueid属性を、他のフローアイテムに割り当てられていない値にリセットします。
説明
このコマンドは、フローアイテムのuniqueid属性を、他のフローアイテムに既に割り当てられていない値にリセットします。この属性は、フルレポート用の全履歴情報を収集するために必要です。このコマンドは、フローアイテムが破棄されていないが、データ取集上の目的から新規アイテムと見なす必要がある場合に使用します。たとえば、フローアイテムがモデラーによりリサイクルされる(内蔵のリサイクリング機能を使用せず)場合、フローアイテムが循環に戻されたときにこのコマンドを呼び出します。フローアイテムは通常、全履歴収集が有効なときのみuniqueid属性を持ちます。
例
resetuniqueid(item);
説明
BasicFRオブジェクトのトリガーからのみ実行し、通常は[オブジェクトを再開]フィールドからのみ実行します。このコマンドは、savestoppedtransportinコマンドを使用して保存されたtaskexecutersへの参照を探し、アンロード操作を再開できることをtaskexecutersに通知します。saverankパラメータは、特定の保存済み参照のツリー内でのランクを指します。saverankパラメータが指定されていない場合、すべての保存済み参照が再開されます。このパラメータが指定されている場合、指定されたランクに関連付けられているtaskexecuterのみが再開を許可されます。保存済み参照は、BasicFRのnroftransportsin変数のサブノードとして格納されます。特定の保存済みtaskexecutersへの参照は、nroftransportsinnode.subnodes[saverank].valueで参照できます。
例
resumetransportsin(current);
説明
BasicFRオブジェクトのトリガーからのみ実行し、通常は[オブジェクトを再開]フィールドからのみ実行します。このコマンドは、savestoppedtransportoutコマンドを使用して保存されたtaskexecutersへの参照を探し、ロード操作を再開できることをtaskexecutersに通知します。saverankパラメータは、特定の保存済み参照のツリー内でのランクを指します。saverankパラメータが指定されていない場合、すべての保存済み参照が再開されます。このパラメータが指定されている場合、指定されたランクに関連付けられているtaskexecuterのみが再開を許可されます。保存済み参照は、BasicFRのnroftransportsout変数のサブノードとして格納されます。特定の保存済みtaskexecutersへの参照は、nroftransportsoutnode.subnodes[saverank].valueで参照できます。
例
resumetransportsout(current);
説明
BasicFRオブジェクトの完全なトリガーの輸送からのみ実行します。
taskexecuterがアンロードしようとしているアイテムについて、BasicFRで受け付け準備が整っていない場合、BasicFRはtaskexecuterへの参照を保存してから値-1を返す必要があります。
その後でtaskexecuterはブロック状態に移行し、BasicFRで受け付け準備が整うまで待ちます。BasicFRは、アイテムの受け付け準備が整ったときresumetransportsin()コマンドを呼び出します。
これにより保存済みの参照が調べられ、対応するtaskexecutersに対して、アンロードオペレーションをすぐに再開可能であると通知されます。
taskexecuterがアンロードしようとしているアイテムについて、BasicFRで受け付け準備が整っていない場合、BasicFRはtaskexecuterへの参照を保存してから値-1を返す必要があります。
その後でtaskexecuterはブロック状態に移行し、BasicFRで受け付け準備が整うまで待ちます。BasicFRは、アイテムの受け付け準備が整ったときresumetransportsin()コマンドを呼び出します。
これにより保存済みの参照が調べられ、対応するtaskexecutersに対して、アンロードオペレーションをすぐに再開可能であると通知されます。
例
if(getvarnum(current, "nrofstops") > 0)
{
savestoppedtransportin(current, transporter);
return -1;
}
{
savestoppedtransportin(current, transporter);
return -1;
}
説明
BasicFRオブジェクトから外への完全なトリガー輸送からのみ実行します。
taskexecuterがロードしようとしているアイテムについて、BasicFRで送る準備が整っていない場合、BasicFRはtaskexecuterへの参照を保存してから値-1を返す必要があります。
その後でtaskexecuterはブロック状態に移行し、BasicFRで送出準備が整うまで待ちます。BasicFRは、アイテムの送出準備が整ったときresumetransportsoutコマンドを呼び出します。
これにより保存済みの参照が調べられ、対応するtaskexecutersに対して、ロードオペレーションをすぐに再開可能であると通知されます。
taskexecuterがロードしようとしているアイテムについて、BasicFRで送る準備が整っていない場合、BasicFRはtaskexecuterへの参照を保存してから値-1を返す必要があります。
その後でtaskexecuterはブロック状態に移行し、BasicFRで送出準備が整うまで待ちます。BasicFRは、アイテムの送出準備が整ったときresumetransportsoutコマンドを呼び出します。
これにより保存済みの参照が調べられ、対応するtaskexecutersに対して、ロードオペレーションをすぐに再開可能であると通知されます。
例
if(getvarnum(current, "nrofstops") > 0)
{
savestoppedtransportout(current, transporter);
return -1;
}
{
savestoppedtransportout(current, transporter);
return -1;
}
説明
アイテムのFixedResource関連の変数に保存されているオブジェクト参照を設定します。FixedResourceクラスでは、各フローアイテムに関連する1つの変数をサブクラスに保存できます。これらの変数の意味は、クラスのタイプによって異なります。たとえば、プロセッサがプロセスまたは設定時間にオペレーターを使用するよう設定されている場合、プロセッサは関連変数を使用して、フローアイテム用に呼び出されるディスパッチャーへの参照を保存します。このコマンドは、モデルで明示的なFixedResourceクラスをandオブジェクトとして使う場合のみ使用します。このコマンドとsetitemvar、getitemvar、getiteminvolvedコマンドを併用して、オブジェクトが受け付けるアイテムに変数を保存できます。
例
setiteminvolved(current.first, current.centerObjects[1])
説明
アイテムがFixedResource内に存在するなら、そのアイテムのsendtoの値を設定します。このコマンドは、明示的なFixedResourceクラスのオブジェクトを使用しており、アイテムをリリースする前にsendto値を保存し、後でreleaseitem()コマンドを使用してポートを渡すときのみ使用します。リリース済みのアイテムの評価済みsendtoを変更する場合は、このコマンドを使用する代わりに、holditem()を実行してからreleaseitem()を再実行してください。
例
setitemsendto(item, current.currentsendto)
説明
アイテム用のFixedResource変数の値を設定します。varパラメータは1、2、3のいずれかで、valueパラメータには設定する値を指定します。FixedResourceクラスでは、各フローアイテムについて3つの数値変数をサブクラスに保存できます。これらの変数の意味は、クラスのタイプによって異なります。
たとえば、プロセッサは変数1にアイテムの処理開始時間を、変数2にアイテムの処理時間を保存できます。モデルのオブジェクトとして明示的なFixedResourceクラスを使用している場合、このコマンドをgetitemvar、getiteminvolved、setiteminvolvedコマンドとともに使用して、オブジェクトが受け取るアイテムの変数を保存できます。
たとえば、プロセッサは変数1にアイテムの処理開始時間を、変数2にアイテムの処理時間を保存できます。モデルのオブジェクトとして明示的なFixedResourceクラスを使用している場合、このコマンドをgetitemvar、getiteminvolved、setiteminvolvedコマンドとともに使用して、オブジェクトが受け取るアイテムの変数を保存できます。
例
setitemvar(current.first, 3, time())
FixedResourceオブジェクトに、アイテムが運び込まれることを通知する
説明
このコマンドは、下流のFixedResourceオブジェクトに対して、指定されたアイテムが上流のオブジェクトから運び込まれることを通知します。このコマンドは、上流オブジェクトの[輸送を使用]フィールドがチェックされており、FRLOADタスクを使用する代わりにアイテムを明示的に移動する場合のみ使用します。これにより下流のFixedResourceは、オブジェクトに進入することが予定されているが、まだ到着していないアイテムがいくつ存在するかのデータを管理できます。このコマンドは、moveobjectコマンドでアイテムを移動する直前に実行します。詳細については、FixedResourceのドキュメントを参照してください。このコマンドが0を返した場合、オブジェクトはstopobjectコマンドで停止されており、アイテムを運び込むにはアイテムが再開されるまで待つ必要があります。
例
transportincomplete(current.outObjects[port], item, opipno(current, port));
この例は、輸送を使用せずフローアイテムをただちに移動するとき、moveobjectコマンドの前に[輸送の要求元]フィールドから実行します。
この例は、輸送を使用せずフローアイテムをただちに移動するとき、moveobjectコマンドの前に[輸送の要求元]フィールドから実行します。
FixedResourceオブジェクトに、アイテムが運び出されることを通知する
説明
このコマンドは、FixedResourceオブジェクトに対して、指定されたアイテムが運び出されることを通知します。このコマンドは、オブジェクトの[輸送を使用]フィールドがチェックされており、FRLOADタスクを使用する代わりにアイテムを明示的に移動する場合のみ使用します。これによりFixedResourceは、オブジェクトから退出する準備が整っているが、まだオブジェクトに存在するアイテムがいくつ存在するかのデータを管理できます。このコマンドは、moveobjectコマンドでアイテムを移動する直前に実行します。詳細については、FixedResourceのドキュメントを参照してください。このコマンドが0を返した場合、オブジェクトはstopobjectコマンドで停止されており、アイテムを運び込むにはアイテムが再開されるまで待つ必要があります。
例
transportoutcomplete(current, item, port);
この例は、輸送を使用せずフローアイテムをただちに移動するとき、moveobjectコマンドの前に[輸送の要求元]フィールドから実行します。
この例は、輸送を使用せずフローアイテムをただちに移動するとき、moveobjectコマンドの前に[輸送の要求元]フィールドから実行します。
キネマティクスとスプライン
キネマティクスとスプラインの数学演算に関連するコマンド。
addkinematic (node infonode, num x, num y, num z, num targetspeed, num acc, num dec, num startspeed, num endspeed, num starttime, num type )
キネマティクスの組に1つのキネマティクス演算を追加する
説明
キネマティクスの組に1つのキネマティクス演算を追加します。詳細については、キネマティクスのユーザーマニュアルのドキュメントを参照してください。
例
addkinematic(current.labels["kinematics"], 1, 0, 0, 5,0,0, 0,0, time(), KINEMATIC_TRAVEL);
updatekinematics()が呼び出されたときキネマティクスが何も行わないようにする
説明
以後にupdatekinematics()が呼び出されたとき、キネマティクスがオブジェクトを更新する代わりに、何も行わないようにします。オブジェクトのリセットトリガーでこのコマンドを呼び出すと、オブジェクトは正投影ビューで自由に移動できるようになります。
例
deactivatekinematics(current.labels["kinLabel"]);