カテゴリごとのコマンド

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をリダイレクトします。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);
説明
コントロールポイント接続を返します。また、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);
接続のインデックスを取得し、名前の代わりにインデックスを使用します。

通信

ソケットなどの外部アプリケーションとの通信、データベース通信、Microsoft Excelとのリンクを行うためのコマンド。
クライアントソケットへの接続を試みる
説明
このコマンドは、socketにより指定されたソケットから、hostnameの名前を持つマシンで実行中の、指定されたポートをリッスンしているサーバーへ接続を試みます。

socketとして渡される数値は、clientcreate()により以前に返された数値です。hostnameとして渡される文字列は、コンピュータの名前(クライアントと同じネットワークに存在する場合)またはIPアドレスです。このコマンドは、clientcreate()呼び出しが成功した後で使用します。ソケットが接続できなかった場合はソケットが閉じ、clientcreate()を再度呼び出して開く必要があります。この関数は、ソケットが正常に接続された場合に真を返します。
clientconnect(1,"localhost",1880);
ソケットへ送信されたデータを受信する
説明
このコマンドは、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);
ODBCデータベースに、tablenameで指定される名前のテーブルを開く
説明
このコマンドは、tablenameで指定される名前のテーブルをデータベースに開きます。データベースがSQLモードで開いている場合、このコマンドは何もしません。このコマンドが呼び出されたとき開いていたテーブルは閉じられます。新しいテーブルのみが読み取り可能です。これにより、ユーザーはデータベース全体を閉じて再度開く必要なしに、テーブルモードで複数のテーブルを読み取ることができます。
dbchangetable("Inventory");
現在開いているテーブルを閉じ、Inventoryという名前のテーブルを開きます。
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モードで開きます。
開いているODBCデータベースの行、セルの値を設定する
説明
このコマンドは、現在開いているODBCデータベースで、rowおよびcolで指定されるセルの値をvalueに設定します。データベースがSQLモードで開いている場合、このコマンドは何もしません。データベースのエイリアスが読み取り専用に設定されている場合、このコマンドは例外を引き起こします。エイリアスは、Windowsコントロールパネルの[データソース]オプションで読み取り専用に設定されます。関数に数値を渡す必要がある場合は、strintonum()コマンドを使用します。
for (int x=1; x<= model().subnodes.length; x++)
dbsettablecell(x,1,model().subnodes[x].name);

モデルのすべてのオブジェクトの名前を、現在のデータベースの最初の列に置きます。
開いているODBCデータベースにSQLクエリを実行する
説明
このコマンドは、現在開いているデータベースに対して、queryにより指定されたSQLクエリを実行します。結果は現在のテーブルとなります。データベースがテーブルモードのとき、このコマンドは何もしません。クエリによりテーブルが返された場合、dbgettablecell()コマンドを使用してテーブルを読み取ることができます。クエリにより更新が行われた場合、dbgettablecell()コマンドを実行すると例外が引き起こされます。
このコマンドで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");

渡されたクエリに基づいてデータベースを更新します。
dbopen()でODBCデータベースにアクセスするため使用するユーザー名とパスワードを設定する
説明
このコマンドは、次にdbopen()を呼び出すときデータベースにアクセスするため使用する、ユーザー名とパスワードを設定します。これにより、モデル作成者はdbopen()で提供されるユーザー名とパスワードのプロンプトを使用せず、データベースに要求されるログインパラメータを使用できます。このコマンドで設定されるユーザー名とパスワードは、再度dbusername()を呼び出して変更されるまで、dbopen()呼び出しのたびに使用されます。ユーザー名、パスワード、または両方を空の文字列に設定することもできます。
dbusername("user1","abc123XYZ");

ユーザー名を「user1」、パスワードを「abc123XYZ」に設定します。これらの値は、次にdbopen()が呼び出されるときデータベースにアクセスするため使用されます。

dbusername("","");

最後に設定したユーザー名とパスワードをクリアします。dbopen()が次に呼び出されたとき、データベースはユーザー名とパスワードなしでアクセスされます。
Excelワークブックを作成する
説明
このコマンドは、Excelでワークブックを作成します。同時に開くことのできるワークブックは1つだけです。ユーザーは、別のワークブックを開くまたは作成する、新しいモデルを開く、現在のモデルをコンパイルする、またはFlexSimを閉じる前に、excelclose()を呼び出す必要があります。開いているファイルから読み取りを行う前には、excelsetsheet()も呼び出す必要があります。
excelcreateworkbook();
excelsetsheet("Sheet1");
excelwritenum(1,1,1);
excelsave("NewWorkBook.xlsx");
excelclose(0);

最初にFlexSimと新しいExcelワークブックとの間にリンクを作成し、ワークブックのアクティブなシートを「Sheet1」に設定し、行1列1に1を書き込み、ワークブックを保存して、ワークブックを閉じます。
FlexSim内のテーブルから、現在開いているExcelワークブックにデータをエクスポートする
説明
FlexSim内のテーブルから、Excelにデータをエクスポートします。テーブルはGlobalTableの名前で参照することも、テーブルノードへのツリーノード参照を使用することもできます。エクスポートされるデータタイプ(文字列または数値)は、FlexSimテーブルのセルのデータタイプにより決定されます。ユーザーは、Excelの開始行および列番号と、エクスポートする行および列の総数を指定します。
excelexporttable("Table1",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を閉じます。
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という名前のローカル変数に設定して、保存せずにワークブックを閉じます。
アクティブなワークシートのセルの値をバリアントとして返す
説明
アクティブなワークシートのセルの値をバリアントとして返します。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で読み取り可能な日付数値として解釈します。
Variant value = excelreadcell(1, 5, EXCEL_DATA_NUMBER | EXCEL_DATE_AS_NUM);

最初の行に含まれる5つの列の値を数値として返します。その値が日付の場合、Flexsimで日付として読み取り可能な数値が返されます。
サーバーでクライアント接続の受け付けを試みる
説明
サーバーで、クライアント接続の受け付けを試みます。noblocking = 0なら、このコマンドは接続が作成されるまでブロックを行います。作成された接続への参照に使用されるインデックスが返されます。

サーバーは、待機中のクライアントから接続の受け付けを試みます。確立された接続のインデックスが数値として返されます。戻り値が0の場合、接続が作成されなかったことを示します。この値は、以後のすべてのサーバー呼び出しで使用されます。noblocking = 1なら、サーバーはFlexSimプログラムの実行をブロックしませんが、クライアントが接続を試みなかった場合に0を返します。noblocking = 0なら、サーバーはクライアントが接続を試みるまでFlexSimプログラムの実行をブロック(フリーズ)します。クライアントとの接続を作成するのはこのコマンドのみです。
int client = serveraccept(0);
接続からメッセージを受信する
説明
指定の接続からメッセージを受信します。このコマンドは、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);

変換

単位、データタイプ、空間座標を変換するコマンド。
指定された値(時間)を、ある時間形式から別の時間形式に変換する
説明
指定された値(時間)を、ある時間形式から別の時間形式に変換します。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年およびそれ以後はサポートされないことに注意してください。
convert(42308, XL_DATETIME, MODEL_TIME) // Excelの日付を有効なモデル時間に変換する

コンベヤ


廃止

コマンドのサポートが終了したか、別のコマンドが作成されました。これらのコマンドのドキュメントは更新されていないため、不正確な可能性があります。多くのコマンドは後方互換性のため依然として動作しますが、代替コマンドの使用をお勧めします。
廃止
説明
このコマンドは廃止されました。移動テーブルに新しいエントリを追加します。このエントリは、全履歴が有効なときに記録されます。この新しいエントリは、flowitemidで識別されるフローアイテムが原点オブジェクトから目的地オブジェクトへ、指定した時間に移動したことを記録します。このエントリは、移動時点のフローアイテムのアイテムタイプが、3番目のパラメータとして渡されたitemtypeであることも記録します。ユーザーがこのコマンドを使用する必要があるのは非常に稀な状況のみです。
addfullhistorymoverecord(getnodenum(uniqueid(item)), time(), current, current.outObjects[1], item.type);
廃止、Math.atan2()を使用すること
説明
このコマンドは廃止されました。代わりにMath.atan2()を使用してください。

角度を度単位で返します。角度はベクトル(dx, dy)について、x軸の正方向から時計回りに計算されます。angle(dx, dy)を呼び出すのは、-Math.degrees(Math.atan2(dy, dx))を呼び出すのと同じです。
double myangle = angle(distx, disty)
廃止、Math.asin()を使用すること
説明
このコマンドは廃止されました。代わりにMath.asin()を使用してください。

角度のarcsinをラジアン単位で取得します。
廃止、Object.attrs.assert()を使用すること
説明
このコマンドは廃止されました。Object.attrs.assert()を使用してください。

オブジェクトの属性attributenameへの参照を取得します。属性が存在しない場合は作成します。
廃止、treenode.labels.assert()を使用すること
説明
このコマンドは廃止されました。代わりにtreenode.labels.assert()を使用してください。

ラベルlabelnameへの参照を取得します。ラベルが存在しない場合は作成します。
廃止、Math.atan()を使用すること
説明
このコマンドは廃止されました。代わりにMath.atan()を使用してください。

角度のarctanをラジアン単位で取得します。
廃止、レガシーコンベヤのサポートは終了
説明
廃止されました。レガシーコンベヤのサポートは終了しました。

このコマンドは、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);
廃止、レガシーコンベヤのサポートは終了
説明
廃止されました。レガシーコンベヤのサポートは終了しました。

このコマンドは、BasicConveyorオブジェクトと組み合わせて使用されます。

bcgetitempositionコマンドは、BasicConveyorオブジェクト上のアイテムの現在位置を返します。この位置は、コンベヤの長さに沿って、コンベヤの頭部から、フローアイテムでコンベヤの頭部から最も離れたエッジまで測定されます。

BasicConveyorオブジェクトの一般的な説明については、bcsetitemconveystateコマンドのドキュメントを参照してください。
bcgetitemposition(current,current.first);
廃止、レガシーコンベヤのサポートは終了
説明
廃止されました。レガシーコンベヤのサポートは終了しました。

このコマンドは、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);
}
廃止、レガシーコンベヤのサポートは終了
説明
廃止されました。レガシーコンベヤのサポートは終了しました。

このコマンドは、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);
廃止、Math.ceil()を使用すること
説明
このコマンドは廃止されました。代わりにMath.ceil()を使用してください。

numよりも小さくない、最小の整数値を返します。
廃止、Table.cell()を使用すること
説明
このコマンドは廃止されました。代わりにTable.cell()を使用してください。

テーブルのセルへの参照を取得します。
double val = getnodenum(cellrc(reftable("MyTable"),2,3));
廃止、Object.centerObjects[]を使用すること
説明
このコマンドは廃止されました。代わりにObject.centerObjects[]を使用してください。

オブジェクトのセンターポートに接続されているオブジェクトを参照します。
廃止、conveyor.targetSpeedを使用すること
changeconveyorspeed(current, 4);
この例は、コンベヤの速度を4に変更します。
廃止、treenode.subnodes.clear()を使用すること
説明
このコマンドは廃止されました。代わりにtreenode.subnodes.clear()を使用してください。

ノードの下にあるすべてのオブジェクト/ノードを破棄します。
廃止、Object.input.close()を使用すること
説明
このコマンドは廃止されました。代わりにUse Object.input.close()を使用してください。

このコマンドは、オブジェクトの入力をブロックします。エントリをブロックするには、入力ポート自体、または一般的な入力のみを閉じる必要があります。ポート接続がビューウィンドウに十分なサイズで表示されているとき、オブジェクトの入力ポート(正方形)すべてにわたって小さな赤色のバーが描画され、入力ポートがブロックされていることを示します。個別のポートを開くことはでき、開いているポートは緑色で表示されますが、赤いバーのためにオブジェクトへの進入はブロックされます。このコマンドをstopinput()と比較してください。
if (current.subnodes.length == getvarnum(current,"maxcontent")
closeinput(current);

current内のオブジェクトが多すぎる場合、currentの入力ポートをブロックします。
廃止、Object.output.close()を使用すること
説明
このコマンドは廃止されました。代わりにObject.output.close()を使用してください。

このコマンドは、オブジェクトの出力をブロックします。出口をブロックするには、出力ポート自体、または一般的な出力のみを閉じる必要があります。ポート接続がビューウィンドウに十分なサイズで表示されているとき、オブジェクトの出力ポート(正方形)すべてにわたって小さな赤色のバーが描画され、出力ポートがブロックされていることを示します。個別のポートを開くことはでき、開いているポートは緑色で表示されますが、赤いバーのためにオブジェクトからの出口はブロックされます。このコマンドをstopoutput()と比較してください。
if (current.subnodes.length == current.mincontent)
closeoutput(current);

current内のオブジェクトが少なすぎる場合、currentの出力ポートをブロックします。
廃止、Colorクラスを使用すること
説明
このコマンドは廃止されました。代わりにObject.colorColor.byNumber()に設定してください。

オブジェクトの色をカラーインデックスに基づいて設定します。
廃止、Colorクラスを使用すること
説明
このコマンドは廃止されました。代わりにObject.colorColor.random()に設定してください。

オブジェクトの色をランダムな色に設定します。
廃止、Colorクラスを使用すること
説明
このコマンドは廃止されました。代わりにObject.colorColor()に設定してください。

赤、緑、青色のコンポーネントを使用してオブジェクトの色を設定します。
廃止、contextdragconnection()を使用すること
説明
このコマンドは廃止されました。代わりにcontextdragconnection()を使用してください。

2つのオブジェクトのポートを接続します。2つのオブジェクトを接続するため、該当のオブジェクトにポートが存在するかどうかチェックしてから、接続が行われます。最初のオブジェクトの出力ポートは、2番目のオブジェクトの入力に接続されます。ポートが存在しない、または既に接続済みのとき、このコマンドは中断されます。2つのオブジェクトを、ポートを追加して自動的に接続するには、objectconnect()コマンドを参照してください。
connect(model().subnodes[2],1,model().subnodes[3],2)
廃止、treenode.subnodes.lengthを使用すること
説明
このコマンドは廃止されました。代わりにtreenode.subnodes.lengthを使用してください。

親ノードに存在する子ノードの数を取得します。
廃止、Object.attrs.lengthを使用すること
説明
このコマンドは廃止されました。代わりにObject.attrs.lengthを使用してください。

オブジェクトの属性サブツリーのコンテンツを取得します。
廃止、Math.cos()を使用すること
説明
このコマンドは廃止されました。代わりにMath.cos()を使用してください。

角度のcosをラジアン単位で取得します。
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。

このコマンドは、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()を使用して行う必要があります。
treenode ts = createglobaltasksequence("GlobalTS", current.centerObjects[1])
dispatchtasksequence(ts)
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。

このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、フローアイテムがロードされます。オフジェクトは、フローアイテムをロードする前に、フローアイテムへ移動しません。このタスクシーケンスの優先度は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);
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。

このコマンドは、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);
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。

このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これによりオブジェクトは原点に移動し、フローアイテムをロードして、目的地に移動してから、フローアイテムをアンロードします。このタスクシーケンスの優先度は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);
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。

このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトは目的地に移動してフローアイテムをロードします。このタスクシーケンスの優先度は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
createtraveltask( current.centerObjects[1], current.centerObjects[2], 1, PREEMPT_NOT);
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。

このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトは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);
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。

このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトは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);
廃止、代わりに処理フローを使用すること
説明
このコマンドは廃止されました。代わりに処理フローを使用してください。

このコマンドは、ディスパッチャーにより指定されるオブジェクトのタスクシーケンスを作成します。これにより、オブジェクトは目的地に移動してフローアイテムをアンロードします。このタスクシーケンスの優先度は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
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
createwaittask(current.centerObjects[1], STATE_IDLE, 1, PREEMPT_NOT);
廃止、contextdragconnection()を使用すること
説明
このコマンドは廃止されました。代わりにcontextdragconnection()を使用してください。

指定されたcharacterpressedに応じて、fromobjectとtoobjectとの間のポートを接続または接続解除します。このコマンドは、オブジェクトのポートを接続/切断するため使用されるキーボートおよびマウスの操作を模倣します。たとえば、「A」はキーボードの「A」を押し下げたまま、fromobjectをクリックしてtoobjectにドラッグする操作に相当します。「A」および「Q」なら、出力ポートを入力ポートに接続および接続解除します。「S」および「W」なら、セントラルポートを接続および接続解除します。C++でのみ使用でき、flexscriptでは使用できません。
defaultdragconnection(model().subnodes[count], model().subnodes[2], 'A')
廃止、treenode.labels["LabelName"].destroy()を使用すること
説明
このコマンドは廃止されました。代わりにtreenode.labels["LableName"].destroy()を使用してください。

指定されたobjectで、「labels」で指定されたノードから、指定されたlabelを削除します。
labelの指定は文字列のラベル名、またはラベルのランクを示す数値です。
そのノードにラベルが存在しない場合、このコマンドは何もしません。
dellabel(current,"MyLabel")
廃止、Table.query()を使用すること
説明
このコマンドは廃止されました。代わりにTable.query()を使用してください。

最後に呼び出されたquery()について、完全な結果テーブルをノードにダンプします。asTableが1なら、結果はテーブルデータとしてダンプされます。asTableが0なら、結果はバンドルデータとしてダンプされます。
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は、データの最初の列をデータではなくテーブルの行の名前として使用します。

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セルのデータタイプになります。
ソーステーブルノードからデータを読み込み、アクティブなExcelシートに置き込む
説明
この関数は、ソーステーブルノードのすべてのデータを、アクティブなExcelシートに書き込みます。ツリーノードにバンドルデータが存在する場合、バンドルデータを読み込んでシートに書き込みます。それ以外の場合、グローバルテーブルと同様に、データの存在する子ノードを探します。渡されるrowとcolは、Excelシートのどこからデータの書き込みを開始するかを指定します。常に、ソースノードのすべてのデータが書き込まれます。flagsを渡すと、ヘッダーの使用方法を変更できます。flagsに使用できるのは、EXCEL_USE_COLUMNHEADERSとEXCEL_USE_ROWHEADERSです。

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から始まるセルに書き込みます。実際のデータを書き込む前に、列ヘッダーの行と行ヘッダーの列があります。
廃止、Math.exp()を使用すること
説明
このコマンドは廃止されました。代わりにMath.exp()を使用してください。

(e ^ value)を返します。ここでeは2.7183です。
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。

新しいファミリー(リレーショナル情報の編成に使用されるノードのリスト)を作成します。
familycreate(item,"family1")
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。

ファミリーを削除します。
familydelete(item,"family1")
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。

指定されたファミリーのメンバーへのポインターを返します。
familymember(item,"family1",2)
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。

指定されたfamilycontainerに新しいファミリーメンバーを追加します。
familymemberadd(item,"family1",item.subnodes[1])
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。

指定されたfamilycontainerからファミリーメンバーを削除します。
familymemberdel(item,"family1",item.subnodes[2])
説明
このコマンドは廃止されました。代わりにGroupクラスを使用してください。

指定されたファミリーのサイズを返します。
familymemberqty(item,"family1")
説明
定義された回数だけ一致テストを実行し、一致が見つかった場合は、その一致と関連付けられたユーザ定義可能な値を返します。一致の式と戻り値の式では、チェックの反復の何回目かを「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である最初のアイテムのランク番号を返します。

説明
式を繰り返し評価し、見つかった最大値、またはその最大値に関連付けられているユーザー定義可能な戻り値を返します。値の式、戻り値の式、およひ基準では、チェックの反復の何回目かを「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);
この例は前の例とほぼ同じですが、上流オブジェクトの最初のアイテムがリリースされているという条件が追加されています。

廃止、Math.floor()を使用すること
説明
このコマンドは廃止されました。代わりにMath.floor()を使用してください。

numよりも大きくない、最大の整数値を返します。
説明
このコマンドは廃止されました。代わりにfor()またはwhile()コマンドを使用してください。

thenodeとして指定されたオブジェクトと同じレイヤーに属し、オブジェクトのランクと同じ、またはより小さいランク値を持つ各ノードに対して、コードブロックを実行します。ループ内で現在アクティブなノードにアクセスするため、「a」コマンドが使用されます。forobjectsbefore()コマンドはflexscriptでのみ使用でき、C++では使用できません。
forobjectsbefore(model.subnodes[5]))
{
    pt(a.name); pr();
}

モデルの最初にある5つのオブジェクトの名前を、出力コンソールに表示します。
説明
このコマンドは廃止されました。代わりにfor()またはwhile()コマンドを使用してください。

thenodeとして指定されたオブジェクトと同じレイヤーに属し、オブジェクトのランクと同じ、またはより大きいランク値を持つ各ノードに対して、コードブロックを実行します。ループ内で現在アクティブなノードにアクセスするため、「a」コマンドが使用されます。forobjectsbehind()コマンドはflexscriptでのみ使用でき、C++では使用できません。
forobjectsbehind(model.subnodes[5])
{
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++では使用できません。
forobjectselectionset(library()) { pt(a.name); pr(); }

ライブラリツリーで現在選択されているすべてのオブジェクトの名前を、出力コンソールに表示します。
廃止、Colorクラスを使用すること
説明
このコマンドは廃止されました。代わりに、Color.rColor.gColor.bColor.aのいずれかを使用してください。

objectのrgb色コンポーネントを取得します。
廃止、treenode.dataTypeを使用すること
説明
このコマンドは廃止されました。代わりにtreenodedataTypeを使用してください。

ノードのデータタイプを取得します。
getdatatype(so())
廃止、Object.stats.input.valueを使用すること
説明
このコマンドは廃止されました。代わりに、Object.stats.input.valueを使用してください。

関連オブジェクトの入力統計を返します。
double inval = getinput(current.centerObjects[1]);
廃止
説明
このコマンドは廃止されました。関数の最初のパラメータとして渡された移動レコードから、値の1つを返します。このレコードは、getmoverecord()への呼び出しで返される戻り値です。この関数の2番目のパラメータとして渡される値は、移動レコードのどの値をユーザーが取得するかを示します。
0 = レコードID。これは、移動テーブルのレコードの行番号です。
1 = レコードに移動が記録されたフローアイテムのItemID。
2 = フローアイテムが移動した時間。
3 = フローアイテムの移動元のオブジェクト。この値はintとして返され、tonode()を使用してtreenodeに変換する必要があります。
4 = フローアイテムの移動先のオブジェクト。この値はintとして返され、tonode()を使用してtreenodeに変換する必要があります。
5 = フローアイテムが移動した時点でのアイテムタイプ。
getnummoverecords()の例を参照してください。
廃止、treenode.valueを使用すること
説明
このコマンドは廃止されました。代わりにtreenode.valueを使用してください。

文字列データを持つノードの値を取得します。
廃止、Table.query()を使用すること
説明
このコマンドは廃止されました。代わりにTable.query()を使用してください。

query()を最後に呼び出したときの結果テーブル内の列数を返します。
廃止、Table.query()を使用すること
説明
このコマンドは廃止されました。代わりにTable.query()を使用してください。

query()を最後に呼び出したときの結果テーブル内の合計行数を返します。
廃止、Table.query()を使用すること
説明
このコマンドは廃止されました。代わりにTable.query()を使用してください。

最後のquery()結果で一致する行に関連付けられている、ソーステーブルの行番号を返します。

table - 文字列の場合、FROMステートメントで定義されたテーブルの名前です。エイリアスを使用した場合、テーブルのエイリアスを使用します。数値の場合、FROMステートメントのテーブルの1から始まるインデックスです。クエリにテーブルが1つしか存在しない場合、1を使用します。複数のテーブルの場合、FROMの最初のテーブルが1、2番目が2の順序です。
matchRow - クエリの結果テーブルの行で、1から始まります。

SELECT句の中でMIN()、MAX()、AVG()などの集計関数を使用している場合、このコマンドは動作しないことに注意してください。集計関数が使用されている場合、このコマンドは単にソーステーブル内の行数を返します。
廃止、Table.query()を使用すること
説明
このコマンドは廃止されました。代わりにTable.query()を使用してください。

query()を最後に呼び出したときの結果テーブルの値を返します。

row - 結果テーブルの1から始まる行番号。
col - 結果テーブルの1から始まる列番号、または結果の列の名前。selectステートメントでエイリアスを定義している場合、列名にはエイリアスを使用します。
廃止、treenode.rankを使用すること
説明
このコマンドは廃止されました。代わりにtreenode.rankを使用してください。

親ノードのサブツリーにある子ノードのランクを取得します。
廃止、treenode.valueを使用すること
説明
このコマンドは廃止されました。代わりにtreenode.valueを使用してください。

文字列データを持つノードの値を取得します。
廃止、Object.stats.state().valueを使用すること
説明
このコマンドは廃止されました。代わりにObject.stats.state().valueを使用してください。

オブジェクトの状態を数値形式で返します。
getstatenum(current);
廃止
説明
このコマンドは廃止されました。関数の最初のパラメータとして渡された状態変化レコードから、値の1つを返します。このレコードは、getstaterecord()への呼び出しで返される戻り値です。この関数の2番目のパラメータとして渡される値は、状態変化レコードのどの値をユーザーが取得するかを示します。
0 = レコードID。これは、移動テーブルのレコードの行番号です。
1 = 状態変化の時間。
2 = オブジェクトの変化後の状態。
3 = 状態が変化したオブジェクト。この値はintとして返され、tonode()を使用してtreenodeに変換する必要があります。
getnumstaterecords()の例を参照してください。
廃止、Object.stats.state().valueStringを使用すること
説明
このコマンドは廃止されました。代わりにObject.stats.state().valueStringを使用してください。

オブジェクトの状態をテキスト文字列として返します。
getstatestr(current);
廃止、Tableの[]オペレーターを使用すること
説明
このコマンドは廃止されました。代わりにTableクラスの[]オペレーターを使用してください。

テーブルのセルのテキスト値を取得します。
廃止、List("GlobalListName")を使用すること
説明
このコマンドは廃止されました。代わりにList("GlobalListName")を使用してください。

グローバルリストを名前で参照します。
廃止、Object.inObjects[]を使用すること
説明
このコマンドは廃止されました。代わりにObject.inObjects[]を使用してください。

下流オブジェクトの入力ポートに接続されている上流オブジェクトを参照します。
廃止、ユーザーライブラリを使用すること
説明
このコマンドは廃止されました。代わりにユーザーライブラリを使用してください。

サービスパック(.fpk)をインストールします。
installpackage("C:/mypak.fpk")
廃止、treenode.labels[]を使用すること
説明
このコマンドは廃止されました。代わりにtreenode.labels[]を使用してください。

オブジェクトのラベルへのノード参照を取得します。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。

リストに値が出現する場所のインデックス。この関数は長さqtyのリストを検索し、値valが出現する位置を返します。
listinlist(5,3,2,1,2,3,4)

5つの数値のリストで、3は4番目の数値なので、インデックス番号4が返されます。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。

最も大きな値のインデックス。この関数は長さqtyのリストを検索し、最も大きな値が出現する位置を返します。
listmax(5,2,1,2,3,4)

5つの数値のリストで、4が最も大きな値なので、5が返されます。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。

最大値。この関数は長さqtyのリストを検索し、最も大きな値を返します。
listmaximum(5,2,1,2,3,4)

リストで最も大きな値が4なので、4が返されます。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。

値の平均値。この関数は、長さqtyのリストから値の平均値を返します。
listmean(5,2,1,2,3,4)

2.5が返されます。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。

最も小さな値のインデックス。この関数は長さqtyのリストを検索し、最も小さな値が出現する位置を返します。
listmin(5,2,1,2,3,4)

リストで最も小さな値が1で、2番目の値なので、2が返されます。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。

最小値。この関数は長さqtyのリストを検索し、最も小さな値を返します。
listminimum(5,2,1,2,3,4)

リストで最も小さな値が1なので、1が返されます。
廃止、List.backOrders()[backOrderNum].remove()またはList.entries()[enterNum].remove()を使用すること
説明
このコマンドは廃止されました。代わりにList.backOrders()[backOrderNum].remove()またはList.entries()[entryNum].remove()を使用してください。

所有しているリストからエントリまたはバックオーダーを削除します。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArrayクラスを使用してください。

指定された数のローカル変数を持つ、汎用ローカル配列を割り当てます。
タイプは次のいずれかです: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付近で大きなスパイクが発生することがあり、多くの場合にはこれが有用です。
対数正規分布からランダムなサンプルを返す
説明
このコマンドは、データが存在しないときlognormal2コマンドの代替として使用されます。平均と標準偏差を指定でき、コマンドはこれらのパラメータからlognormal2コマンド用の正しい場所、スケール、形状のパラメータを計算し、その分布からサンプルを返します。分布の形状は鐘型の曲線で、右側に妥当な長さのテール部があるよう事前定義されていることに注意してください。したがって、このコマンドはlognormal2コマンドほど柔軟ではありません。このコマンドは三角分布と同様に、データが存在せず、分布の平均値と標準偏差が判明しており、分布が右傾斜している(右側のテールの方が長い)と想定できるが、分布に一致する実際のデータセットが存在しない場合に使用します。詳細については、lognormal2を参照してください。lognormal2の分布を記述する図に関して、lognormalmeanstdevコマンドはnormalstdev/shapeに値0.75を使用して形状を定義します。分布の形状は固定されているため、平均値と標準偏差値によっては負の値が返される場合もあることに注意してください。
double cycletime = lognormalmeanstdev(10, 2);
この例は、平均値が10、標準偏差が2の右傾斜した対数正規分布に従うランダムな値を返します。
廃止、Arrayクラスを使用すること
説明
このコマンドは廃止されました。代わりにArray(qty)を使用してください。Array array = Array(4);

ローカル配列を初期化します。
廃止、Table.sort()を使用すること
説明
このコマンドは廃止されました。代わりにTable.sort()を使用してください。

テーブルを各列ごとに並べ替えます(正の列は昇順、負の列は降順)。
廃止、treenode.find()を使用すること
説明
このコマンドは廃止されました。代わりにtreenodefind()を使用してください。

ルートノードからの名前付きパスでノードを参照します。
廃止、treenode.valueを使用すること
説明
このコマンドは廃止されました。代わりにtreenode.valueを使用してください。

ノードaがノードbをポイントするようにします。
廃止、代わりにキネマティクスを使用すること
説明
このコマンドは廃止されました。代わりにキネマティクスを使用してください。

与えられたrzにオブジェクトを移動し、シミュレーションでの到着時間を返します。traveltoコマンドと似ていますが、開始および終了速度の定義が含まれます。TaskExecuterの開発に使用されます。
ntravelto(current, 0, 5, 8, 0, 1, 1, 1, 0, 1)
廃止、代わりにキネマティクスを使用すること
説明
このコマンドは廃止されました。代わりにキネマティクスを使用してください。

ntravelto()コマンドが呼び出された後で、objectのrzを更新します。TaskExecuterのOnPreDrawで、位置を更新するため使用されます。
ntraveltoupdate(current)
廃止、Object.input.open()を使用すること
説明
このコマンドは廃止されました。代わりにObject.input.open()を使用してください。

このコマンドは、以前にcloseinput()コマンドでブロックされたオブジェクトの入力のブロックを解除します。進入を許可する前に、入力ポート自体と入力全般を開く必要があります。モデラーは、senddelayedmessage()コマンドによりトリガーされたOnMessageフィールドを除いて、いかなるフィールドでもこのコマンドを使用しないことをお勧めします。これは、ポートを開くコマンドは多くの場合、トランジションイベントで行うべきでない複数の他の動作を引き起こすためです。このコマンドをresumeinput()と比較してください。
if (current.subnodes.length < maxcontent)
openinput(current);
廃止、Object.output.open()を使用すること
説明
このコマンドは廃止されました。代わりにObject.output.open()を使用してください。

このコマンドは、以前にcloseoutput()コマンドでブロックされたオブジェクトの出力のブロックを解除します。退出を許可する前に、出力ポート自体と出力全般を開く必要があります。モデラーは、senddelayedmessage()コマンドによりトリガーされたOnMessageフィールドを除いて、いかなるフィールドでもこのコマンドを使用しないことをお勧めします。これは、ポートを開くコマンドは多くの場合、トランジションイベントで行うべきでない複数の他の動作を引き起こすためです。このコマンドをresumeoutput()と比較してください。
if (current.subnodes.length > mincontent)
openoutput(current);
廃止、Object.outObjects[]を使用すること
説明
このコマンドは廃止されました。代わりにObject.outObjects[]を使用してください。

上流オブジェクトの出力ポートに接続されている下流オブジェクトを参照します。
廃止、param()を使用すること
説明
このコマンドは廃止されました。代わりにparamを使用してください。

このコマンドは、nodefunction()コマンドにより呼び出される関数の内部で使用されます。nodefunctionに渡された、indexにより指定されたパラメータを、ノード(またはツリーノード)として返します。nodefunction()に渡される最初の追加パラメータはパラメータ1、2番目はパラメータ2の順に番号が付けられます。パラメータをparval()およびparstr()で取得し、それぞれ数値と文字列にキャストすることもできます。
トリガー/フィールドが
nodefunction(thefuncnode, item)
で呼び出された場合、そのトリガー/フィールド内で、最初の追加パラメータとして渡されたアイテムへのアクセスが、次のように取得されます。
treenode item = parnode(1);
廃止、param()を使用すること
説明
このコマンドは廃止されました。代わりにparamを使用してください。

このコマンドは、nodefunction()コマンドにより呼び出される関数の内部で使用されます。nodefunctionに渡された、indexにより指定されたパラメータを、文字列として返します。nodefunction()に渡される最初の追加パラメータはパラメータ1、2番目はパラメータ2の順に番号が付けられます。パラメータをparam()コマンドで取得することもできます。
トリガー/フィールドが
nodefunction(thefuncnode, passingstr)
で呼び出された場合、そのトリガー/フィールド内で、最初の追加パラメータとして渡されたpassingstr文字列へのアクセスが、次のように取得されます。
string passedstr = parstr(1);
廃止、param()を使用すること
説明
このコマンドは廃止されました。代わりにparamを使用してください。

このコマンドは、nodefunction()コマンドにより呼び出される関数の内部で使用されます。indexにより指定されたnodefunctionに渡されたパラメータを、数値として返します。nodefunction()に渡される最初の追加パラメータはパラメータ1、2番目はパラメータ2の順に番号が付けられます。パラメータをparnode()およびparstr()で取得し、それぞれツリーノードと文字列にキャストすることもできます。
トリガー/フィールドが
nodefunction(thefuncnode, passingval)
で呼び出された場合、そのトリガー/フィールド内で、最初の追加パラメータとして渡されたpassingvalへのアクセスが、次のように取得されます。
double passedval = parval(1);
廃止、Math.piを使用すること
説明
このコマンドは廃止されました。代わりにMath.pi()を使用してください。

piの値(3.14159...)を取得します。
廃止、Object.attrs[]を使用すること
説明
このコマンドは廃止されました。代わりにtreenode.attrsの[]オペレーターを使用してください。

オブジェクトの属性サブツリーのランク付きノードについて、ランクで参照を取得します。
廃止、Table("GlobalTableName")を使用すること
説明
このコマンドは廃止されました。代わりにTableクラスを使用してください。

グローバルテーブルへの参照を取得します。
Table table = reftable("GlobalTable1")
廃止、Vec3.project()を使用すること
説明
このコマンドは廃止されました。代わりにVec3.project()を使用してください。

このコマンドは、オブジェクトのx、y、z位置を、それを包含するオブジェクトへの相対位置として返します。containerobjはそのオブジェクトを直接含むコンテナの必要はありませんが、最終的にそのオブジェクトのコンテナであることが必要です。座標値は1、2、3のいずれかで、それぞれx、y、zを意味します。
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位置を、モデル空間への相対位置として設定します。
廃止、Object.input.resume()を使用すること
説明
このコマンドは廃止されました。代わりにObject.input.resume()を使用してください。

このコマンドはopeninput()と同様にobjectの入力を開きますが、オブジェクトに対して呼び出された以前のstopinput()コマンドの記録を保持しているため、すべての停止が再開された後でのみ入力を開きます。詳細については、openinput()のドキュメントを参照してください。
resumeinput(current.centerObjects[1]);
廃止、Object.resume()を使用すること
説明
このコマンドは廃止されました。代わりにObject.resume[]を使用してください。

objectに対して、stopobject()が呼び出される前に行っていた動作を再開するよう指示します。
id値はオプションで、stopリクエストとresumeリクエストとの一致に使用されます。詳細については、stopobject()
のドキュメントを参照してください。
resumeobject(current.centerObjects[1]);
廃止、Object.output.resume()を使用すること
説明
このコマンドは廃止されました。代わりにObject.output.resume()を使用してください。

このコマンドはopenoutput()と同様にobjectの出力を開きますが、オブジェクトに対して呼び出された以前のstopoutput()コマンドの記録を保持しているため、すべての停止が再開された後でのみ出力を開きます。詳細については、openoutput()のドキュメントを参照してください。
resumeoutput(current.centerObjects[1]);
廃止、ユーザーライブラリを使用すること
説明
このコマンドは廃止されました。代わりにユーザーライブラリを使用してください。

ノードをサービスパックファイル(.fpk)としてディスクに保存します。
ファイルの保存ダイアログボックスが表示され、ファイルのパスと名前を定義できます。サービスパックは、サブノードを持つノードです。最初のサブノードはトグルされたflexscriptで、文字列データとコードを含むと見なされます。サービスパックが[ファイル]|[サービスパックのインストール]を使用してロードされると、サービスパックの最初のサブノードが自動的に実行されます。このコードは通常、他のサブノードをMAINおよびVIEWツリーにコピーします。
savefpk(so());
廃止、Object.setLocation()を使用すること
説明
このコマンドは廃止されました。代わりにObject.setLocation[]を使用してください。

オブジェクトの回転中心のx、y、z位置を、オブジェクトのコンテナに対する相対位置に設定します。
廃止、Colorクラスを使用すること
説明
このコマンドは廃止されました。代わりにObject.colorColor()に設定してください。

オブジェクトの色の赤、緑、青コンポーネントを設定します。
廃止、Object.locationを使用すること
説明
このコマンドは廃止されました。代わりにObject.location[]を使用してください。

オブジェクトのx、y、z位置を、オブジェクトのコンテナに対する相対位置に設定します。
廃止、使用しないこと
説明
このコマンドは廃止されました。使用してはいけません。

オブジェクトのベースに割り当てられているbmpまたはjpeg画像(2D形状およびベース画像)のインデックス番号を設定します。新しいインデックスを有効にするには、オブジェクトのimagebaseノードを削除するか、名前を変更する必要があるため、このコマンドはimagebaseノードの名前を「_imagebase」に変更します。インデックス番号は、現在インポートされているbmpまたはjpeg画像の有効なインデックス番号の必要があります。現在インポートされている画像を表示する、または別のbmpやjpeg画像をインポートするには、ツールボックスの[メディアをインポート]オプションを使用してください。
setobjectimageindex(item,gettextureindex("fs3d\\BBsphere.bmp"));
廃止、Table.query()を使用すること
説明
このコマンドは廃止されました。代わりにTable.query()を使用してください。詳細については、「その他の概念」 > 「SQLクエリ」を参照してください。
廃止、treenode.rankを使用すること
説明
このコマンド。代わりにtreenode.rankを使用してください。

親ノードのサブツリーにある子ノードのランクを設定します。
説明
このコマンドは廃止されました。Object.stats.state().valueString = stateStr; を使用してください。

開発用です。状態のいずれかの実名を使用して、オブジェクトの状態を設定します。状態名は、状態円グラフに表示されるものと同じ名前にする必要があります。
setstate_s(current,"busy")
廃止、Tableの[]オペレーターを使用すること
説明
このコマンドは廃止されました。代わりにTableクラスの[]オペレーターを使用してください。

テーブルのセルのテキスト値を設定します。
廃止、Math.sin()を使用すること
説明
このコマンドは廃止されました。代わりにMath.sin()を使用してください。

角度のsinをラジアン単位で取得します。
廃止、Modelクラスを使用すること
説明
このコマンドは廃止されました。代わりにModel.statisticalTimeを使用してください。

実験でウォームアップ時間が経過した後、またはresetstats()が実行された後など、状態が最後にリセットされたときに相対的な現在のシミュレーション時間を返します。
item.TimeIn = statisticaltime();

itemで参照されるオブジェクトの「TimeIn」というラベルを、現在のシミュレーションクロック時間に設定します。
廃止、Object.input.stop()を使用すること
説明
このコマンドは廃止されました。代わりにObject.input.stop()を使用してください。

このコマンドは、closeinput()と同様にオブジェクトの入力を閉じますが、連続したstopinput()コマンドの記録が保持され、すべての停止が再開された後でのみ入力を開きます。詳細については、closeinput()のドキュメントを参照してください。
stopinput(current.centerObjects[1]);
廃止、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値でオブジェクトを再開する必要があります。
stopobject(current.centerObjects[1], STATE_BLOCKED);
廃止、Object.output.stop()を使用すること
説明
このコマンドは廃止されました。代わりにObject.output.stop()を使用してください。

このコマンドは、closeoutput()と同様にobjectの出力を閉じますが、連続したstopoutput()コマンドの記録が保持され、すべての停止が再開された後でのみ出力を開きます。詳細については、closeoutput()のドキュメントを参照してください。
stopoutput(current.centerObjects[1]);
廃止、string.substr()を使用すること
説明
このコマンドは廃止されました。代わりにstring.substr()を使用してください。

文字列から、インデックスの開始位置(1から開始)と長さにより定義される部分文字列を返します。
廃止、string.substr()を使用すること
説明
このコマンドは廃止されました。代わりにstring.substr()を使用してください。

このコマンドは、stringの一部を返します。新しい文字列は、最初の文字番号と長さにより定義されます。開始値が0なら、元の文字列の最初の文字を意味します。
stringpart("Hello",2,3) は、部分文字列「llo」を返します。
廃止、string.replace()を使用すること
説明
このコマンドは廃止されました。代わりにstring.replace()を使用してください。

stringtosearchのコピーを返しますが、searchforが出現する部分はすべてreplacewithに置き換えられます。
廃止、Math.tan()を使用すること
説明
このコマンドは廃止されました。代わりにMath.tan()を使用してください。

ラジアン単位の角度のtanを取得します。
廃止、Modelクラスを使用すること
説明
このコマンドは廃止されました。代わりにModel.timeを使用してください。

現在のシミュレーション時間を返します。
item.TimeIn = time();

itemで参照されるオブジェクトの「TimeIn」というラベルを、現在のシミュレーションクロック時間に設定します。
廃止、treenode.upを使用すること
説明
このコマンドは廃止されました。ノードの親(コンテナ)を設定するには、treenode.upを使用してください。

このコマンドは、movenodeをcontainerノードに移動します。これはmoveobjectコマンドとほぼ同じですが、イベント(OnSend、OnReceive)が実行されない点が異なります。
transfernode(current.labels["inactivequeue"].first, current.labels["activequeue"]);
廃止、キネマティクスを使用すること
説明
このコマンドは廃止されました。代わりにキネマティクスを使用してください。

現在の移動パラメータに基づいてオブジェクトの位置を更新します。オブジェクトに対して実行されたtravelto()コマンドで計算された時間および移動パスのパラメータに基づいて、オブジェクトの位置を明示的に設定します。必要なら、パスのジオメトリとしてスプラインを使用します。
traveltoupdate(current)

以前のtraveto()コマンドで設定された移動パラメータに基づいて、currentオブジェクトの位置を更新します。このコマンドは通常、[カスタム描画コード]フィールドから実行されます。
廃止、Object.getLocation()を使用すること
説明
このコマンドは廃止されました。Object.getLocation()を使用してください。

コンテナ内にあるオブジェクトの回転中心のx位置を取得します。
廃止、Object.getLocation()を使用すること
説明
このコマンドは廃止されました。代わりにObject.getLocation()を使用してください。

コンテナ内にあるオブジェクトの回転中心のy位置を取得します。
廃止、Object.rotationを使用すること
説明
このコマンドは廃止されました。代わりにObject.rotationを使用してください。

オブジェクトのy回転(y軸周囲の回転)を取得します。
廃止、Object.getLocation()を使用すること
説明
このコマンドは廃止されました。代わりにObject.getLocation()を使用してください。

コンテナ内にあるオブジェクトの回転中心のz位置を取得します。
廃止、Object.rotationを使用すること
説明
このコマンドは廃止されました。代わりにObject.rotationを使用してください。

オブジェクトのz回転(z軸周囲の回転)を取得します。

開発

高レベルの開発コマンドで、一般にエンドユーザー向けではありません。
説明
開発者向けです。指定されたイベントコードを持つオブジェクトの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
function_n(current,1,1,2,3)

currentオブジェクトに定義されているOnResetイベント関数を実行します。
説明
開発者向けです。保守スイッチを設定します。

最初のパラメータはオペレーションを割り当てます。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)
説明
開発者向けです。メッセージをウィンドウにポストし、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);
説明
開発者向けです。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);
説明
開発者向けです。このコマンドは、ジョイスティックやコントローラーの状態を照会するか、機能を設定します。

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位置を取得します。

描画

平面、正投影、または透視投影ビューでのグラフィックス描画に関連するコマンドです。描画コマンドは、オブジェクトの[プロパティ]ウィンドウにある[カスタム描画コード]フィールドなど、OnDrawイベントで使用するよう設計されています。
3Dの列を描画する
説明
複数の辺と高さを持つ、正方形、五角形、ピラミッドなど任意の形状を描画できる非常に多用途なコマンドで、円筒(辺の総数が多い場合)も描画できます。

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);
3D立方体を描画する
説明
x、y、zの位置を原点(左下コーナー)として、立方体を描画します。長さ、幅、高さはそれぞれsx、sy、szで定義されます。rx、ry、rzを使用して、それぞれx、y、z軸の周囲に度単位で回転できます。色は赤、緑、青の色コンポーネント(0~255)で定義されます。

オプションの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);
3Dの円柱を描画する
説明
このコマンドは、x、y、zの位置を原点(基部の中央)として、中空の円柱を描画します。円柱の寸法は、基部の半径、上端の半径、高さで定義されます。円筒の先端を飾るには、drawdisk()コマンドを使用します。円柱は、rx、ry、rzを使用して、それぞれx、y、z軸の周囲に度単位で回転できます。色は赤、緑、青の色コンポーネント(0~255)で定義されます。

オプションのopacityパラメータにより、円柱は透明(0)から不透明(1)まで変化します。有効なtextureindexの数値が入力された場合、関連付けられている画像が円柱の外周に沿ったテクスチャとして使用されます。

円柱の位置、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
drawcylinder(0,0,0, 1,1, 5, 0,0,0, 175,175,175, .6,3);
3Dの円盤を描画する
説明
x、y、zの位置を原点(半径の中央)として、平坦な円盤を描画します。円盤の寸法は内側の半径、外側の半径、開始角度、掃引角度で定義されます。掃引角度が360なら、完全な円が描画されます。innerradiusが0より大きいなら、円盤の中央に穴が開けられます。円盤は、rx、ry、rzを使用して、それぞれx、y、z軸の周囲に度単位で回転できます。色は赤、緑、青の色コンポーネント(0~255)で定義されます。

オプションの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」というテキストが描画されます。
画像を描画する
説明
ビューの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のサイズの画像を描画します。
drawimage(c, "buttons\\visible_eye.png", 0, 10, 0, 0, 0);
平坦な四辺形を描画する
説明
このコマンドは、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つのポイントで定義された頂点を持つ四辺形を描画します。四辺形の色は赤です。
3Dの長方形を描画する
説明
ユーザー定義の場所、長さ、幅、回転、色を使用して、平坦な長方形を描画します。x、y、z平面と並行でない長方形を描画するには、drawquad()コマンドを使用する必要があります。

オプションのopacityパラメータにより、長方形は透明(0)から不透明(1)まで変化します。有効なtextureindex番号が入力された場合、関連付けられている画像が長方形の表面にテクスチャとして、textureXrepeatおよびtextureYrepeat回だけ繰り返されます。

長方形の場所、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
drawrectangle(0,0,0, 2,3, 0,0,0, 175,175,175, .6, 1, 2,3);
3Dの球を描画する
説明
x、y、zの場所を原点(球の中央)として、中空の球を描画します。球の寸法は、単一の半径により定義されます。色は赤、緑、青の色コンポーネント(0~255)で定義されます。

オプションのopacityパラメータにより、球は透明(0)から不透明(1)まで変化します。有効なtextureindex番号が入力された場合、関連付けられている画像が球の表面にテクスチャとして貼り付けられます。

球の場所、サイズ、回転はデフォルトで、描画の基礎となるオブジェクトに相対です。角括弧[]内に示されているオプションパラメータは、すべて使用するか、どれも使用しないか、どちらかにする必要があります。textureindexは、gettextureindex()コマンドか、[ツール]|[メディアファイル]メニューを使用して得られる数値です。
drawsphere(0,0,0,5,175,175,175,1,3);
テキストを描画する
説明
このコマンドは、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」と描画します。
OpenGLの描画設定を有効にする
説明
OpenGLの描画設定を有効にします。FlexSimの描画エンジンは最適化のため、与えられた設定の有効/無効の状態を自動的に復元しないので、描画機能を実行した後でこのコマンドを使用し、設定をデフォルトに戻す必要があることに注意してください。設定をデフォルトに戻さないと、モデルの他のオブジェクトが正常にレンダリングされません。

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)などを返します。

/*シャドーマップをレンダリングするときはこのオブジェクトを描画しないこと*/
if (fglinfo(FGL_INFO_SHADERTYPE, view) == SHADERTYPE_RENDER_SHADOWS)
    return 0;
OpenGLで以後の頂点のシェーディングを行うための法線ベクトルを設定する
説明
OpenGL描画で以後の頂点のシェーディングを行うための法線ベクトルを設定します。ポリゴンは、法線が適用されない限りフラットシェーディングされます。法線はポリゴンに対して垂直なベクトルで、ポリゴンの向いている方向を指すものです。頂点が反時計回りの順序で定義されているポリゴンは、「右手の法則」に従って前方を指すことに注意してください。ポリゴンのシェーディングは、法線と光源の間の角度に基づいて行われます。法線はそれぞれの頂点に対して、色と同様な方法で適用されますが、通常は単に各ポリゴンの定義の最初で定義されます。ポリゴンの法線が光源に直接向いている場合は明るくシェーディングされ、角度が傾斜している場合は暗くシェーディングされます。さらに詳細な情報が必要な場合は、標準のOpenGLドキュメントを参照してください。
fglNormal(1,0,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
double xposition = meshinfo(Model.find("mesh"), MESH_POSITION, 6, MESH_POS_X)
説明
このコマンドを使用して、モデルでオブジェクトの下のボックスに情報を表示する機能に直接アクセスできます。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」というテキストが描画されます。

イベント

イベントの作成、検索、操作に使用されるコマンド。
説明
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を空白にする
説明
開発者向けです。このコマンドは、以後のモデルの実行中に発生するイベントを作成します。このイベントは、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も参照してください。
if (current.subnodes.length >= current.mincontent)
{
createevent(current,5,EVENT_OPENOUTPUTS,"openoutputs",involved);
}

シミュレーションで5秒後に、currentのコンテンツがcurrentで参照されるオブジェクトのmincontentという名前のラベルより少なければ、currentとして指定されたオブジェクトの出力ポートを、involvedで指定されたフローアイテム用に開きます。
オブジェクトに関連付けられているイベントを破棄する
説明
与えられたオブジェクトに関連付けらわれているイベントを破棄します。必須パラメータは、最初のパラメータobjectのみです。他のパラメータはオプションで、次に示すように、破棄するイベントを選択するフィルタとなります。

time:コマンドが呼び出された時間と等しいか、より大きければ、このパラメータはイベントを時間でフィルタリングします。イベントの時間が渡されたtimeと等しくなければ、イベントは破棄されません。フィルタとして使用しない場合、-1を渡します。

code:このパラメータが0より大きい場合、イベントコードでイベントをフィルタリングします。イベントのコードが渡されたcodeと等しくなければ、イベントは破棄されません。

data:NULL以外なら、このパラメータを使用し、イベントに関連付けられているデータ文字列でイベントがフィルタリングされます。イベントのデータ文字列が渡された文字列と等しくなければ、イベントは破棄されません。

involved:NULL以外なら、このパラメータにより、関係するノードやオブジェクトでイベントがフィルタリングされます。イベントの関連ノードが渡されたノードと等しくなければ、イベントは破棄されません。
destroyeventsofobject(model().subnodes[2])
説明
開発者向けです。このコマンドは、createevent()コマンドにデータとして渡された文字列値を返します。ライブラリオブジェクトのOnTimerEvent関数でのみ使用されます。通常は、発生しているイベントタイプのユーザー向け説明として使用されます。速度の理由から、OnTimerEvent関数の実行時には一般に使用されません。このコマンドを呼び出すときは括弧を付けません。createevent()とeventcodeも参照してください。
if (comparetext(eventdata,"openinputs"))
{
thisobjectdata->openinputs();
}

createevent()に渡された文字列値が「openinputs」と等しい場合、thisobjectdataで参照されるオブジェクトのopeninputsというメソッドを呼び出します。
説明
開発者向けです。イベントログに関係する何かを記述する文字列値を返します。

動作は次のいずれかです。
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の結合ノードの下に数値データを持つサブノードを追加し、イベントをフィルタリングすることもできます。数値データには、リッスンするビットシフトされたイベントコードの、ビット単位の合計を使用します。結合にサブノードがない場合、オブジェクトはデフォルトですべてのイベントをリッスンします。

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);
説明
開発者向けです。実行ファイルに対して、オブジェクトがリスナーであることを通知します。これはセッション間で継続されません。このコマンドは、実行ファイルのリスナーリストに、リスナーをポイントするノードを追加します。セッションが再ロードされるか、コンパイル後には、リスナーをリセットする必要があります。リスニングメカニズムは実行ファイルに大きな負荷をかける可能性があるため、使用は最小限にしてください。リスナーは、モデルのいずれかのオブジェクトにイベント(OnTimerEvent)がディスパッチされたとき、OnListenメッセージを受け取ります。リスナーはメッセージをフィルタリングし、OnListenメッセージに応答するかどうかを決定する必要があります。OnListenメッセージに渡されるパラメータについては、「オンラインリファレンスガイド」を参照してください。
startlisten(so())

FixedResources

FixedResourceオブジェクトに関連付けられているコマンド。これらのコマンドのほとんどは、BasicConveyorまたはBasicFRオブジェクトのカスタム動作を開発するとき使用されます。
FixedResourceオブジェクトのプル要件を再起動する
説明
FixedResourceに対して、入力ポートportnr経由で渡されたオブジェクトのアイテムのプル要件を評価するよう通知します。このコマンドは、アイテムがプル可能な場合、プル要件のフィールドにより返される値を返します。理由にかかわらずアイテムをプルできない場合(ポートが閉じている、アイテムがリリースされていないなど)、このコマンドは0を返します。bypassflagsパラメータは、BYPASS_で始まるマクロのビット単位の組み合わせで、アイテムが利用可能かどうかを判定するときに特定の基準を無視するよう指定します。
evaluatepullcriteria(current, item, 1); // [ベストアイテムからプル]ピックリストオプションも参照
アイテムのFixedResource関連の変数に保存されているオブジェクト参照を取得する
説明
アイテムのFixedResource関連の変数に保存されているオブジェクト参照を返します。
FixedResourceクラスでは、各フローアイテムに関連する1つの変数をサブクラスに保存できます。これらの変数の意味は、クラスのタイプによって異なります。
たとえば、プロセッサがプロセスまたは設定時間にオペレーターを使用するよう設定されている場合、プロセッサは関連変数を使用して、フローアイテム用に呼び出されるディスパッチャーへの参照を保存します。
モデルのオブジェクトとして明示的なFixedResourceクラスを使用している場合、このコマンドをsetitemvar、getitemvar、setiteminvolvedコマンドとともに使用して、オブジェクトが受け取るアイテムの変数を保存できます。
getiteminvolved(current.first)
アイテム用のFixedResource変数の値を取得する
説明
アイテム用のFixedResource変数の値を返します。varパラメータは1、2、3のいずれかです。FixedResourceクラスでは、各フローアイテムについて3つの数値変数をサブクラスに保存できます。これらの変数の意味は、クラスのタイプによって異なります。
たとえば、プロセッサは変数1にアイテムの処理開始時間を、変数2にアイテムの処理時間を保存できます。
モデルのオブジェクトとして明示的なFixedResourceクラスを使用している場合、このコマンドをsetitemvar、getiteminvolved、setiteminvolvedコマンドとともに使用して、オブジェクトが受け取るアイテムの変数を保存できます。
getitemvar(current.first, 3)
説明
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()が実装されています。
receiveitem(current)
フローアイテムを現在のオブジェクトからリリースする
説明
指定されたフローアイテムをリリースします。フローアイテムは、現在そのアイテムが含まれているオブジェクトから自由に退出可能な時にリリースされ、その時点で[ポートに送信]が評価されます。このコマンドは、フローアイテムがBasicFRオブジェクト内にあり、フローアイテムがまだリリースされていない、またはいずれかのFixedResourceでholditem()により保持されている場合のみ使用します。
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に対して、アンロードオペレーションをすぐに再開可能であると通知されます。
if(getvarnum(current, "nrofstops") > 0)
{
savestoppedtransportin(current, transporter);
return -1;
}
説明
BasicFRオブジェクトから外への完全なトリガー輸送からのみ実行します。
taskexecuterがロードしようとしているアイテムについて、BasicFRで送る準備が整っていない場合、BasicFRはtaskexecuterへの参照を保存してから値-1を返す必要があります。
その後でtaskexecuterはブロック状態に移行し、BasicFRで送出準備が整うまで待ちます。BasicFRは、アイテムの送出準備が整ったときresumetransportsoutコマンドを呼び出します。
これにより保存済みの参照が調べられ、対応するtaskexecutersに対して、ロードオペレーションをすぐに再開可能であると通知されます。
if(getvarnum(current, "nrofstops") > 0)
{
savestoppedtransportout(current, transporter);
return -1;
}
説明
アイテムのFixedResource関連の変数に保存されているオブジェクト参照を設定します。FixedResourceクラスでは、各フローアイテムに関連する1つの変数をサブクラスに保存できます。これらの変数の意味は、クラスのタイプによって異なります。たとえば、プロセッサがプロセスまたは設定時間にオペレーターを使用するよう設定されている場合、プロセッサは関連変数を使用して、フローアイテム用に呼び出されるディスパッチャーへの参照を保存します。このコマンドは、モデルで明示的なFixedResourceクラスをandオブジェクトとして使う場合のみ使用します。このコマンドとsetitemvar、getitemvar、getiteminvolvedコマンドを併用して、オブジェクトが受け付けるアイテムに変数を保存できます。
setiteminvolved(current.first, current.centerObjects[1])
説明
アイテム用のFixedResource変数の値を設定します。varパラメータは1、2、3のいずれかで、valueパラメータには設定する値を指定します。FixedResourceクラスでは、各フローアイテムについて3つの数値変数をサブクラスに保存できます。これらの変数の意味は、クラスのタイプによって異なります。

たとえば、プロセッサは変数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コマンドの前に[輸送の要求元]フィールドから実行します。
FixedResourceオブジェクトに、アイテムが運び出されることを通知する
説明
このコマンドは、FixedResourceオブジェクトに対して、指定されたアイテムが運び出されることを通知します。このコマンドは、オブジェクトの[輸送を使用]フィールドがチェックされており、FRLOADタスクを使用する代わりにアイテムを明示的に移動する場合のみ使用します。これによりFixedResourceは、オブジェクトから退出する準備が整っているが、まだオブジェクトに存在するアイテムがいくつ存在するかのデータを管理できます。このコマンドは、moveobjectコマンドでアイテムを移動する直前に実行します。詳細については、FixedResourceのドキュメントを参照してください。このコマンドが0を返した場合、オブジェクトはstopobjectコマンドで停止されており、アイテムを運び込むにはアイテムが再開されるまで待つ必要があります。
transportoutcomplete(current, item, port);

この例は、輸送を使用せずフローアイテムをただちに移動するとき、moveobjectコマンドの前に[輸送の要求元]フィールドから実行します。

キネマティクスとスプライン

キネマティクスとスプラインの数学演算に関連するコマンド。