网站首页 > 知识剖析 正文
Flexsim仿真学习—脚本语言FlexScript
1. 引用对象
命令 | 解释 | 例子 |
Node.first | 这将返回对节点内第一个排序对象/节点的引用 | Current.first |
Node.last | 这将返回对节点内最后排序的对象/节点的引用 | Current.last |
Node.subnodes[ranknum] | 这将返回对节点内给定排名对象的引用 | Current.sbunodes[3] |
Object.inObjects[portnum] | 这将返回对连接到对象的输入端口号的对象的引用 | Current.inobjects[1] |
Object.outObjects[portnum] | 这将返回对连接到对象的输出端口号的对象的引用 | Current.outobjects[1] |
Object.centerObjects[portnum] | 这将返回对连接到对象中心端口号的对象的引用 | Current.centerobjects[1] |
Node.next | 这将返回对节点的下一个排序对象的引用 | Item.next |
Node.prev | 这将返回对先前排序的节点对象的引用 | Item.prev |
Node.find(path) | 这将返回从节点开始的树中找到的对象 | Current.find(“Box1”) |
2. 对象属性
命令 | 解释 |
Object.name | 这将返回对象的名称 |
Object.name = newname | 这将设置对象的名称 |
Object.color = color.color | 这将设置对象的颜色(颜色为红,绿,蓝,随机) |
Object.color = color(red,green,blue) | 这将对象的颜色设置为红,绿,蓝 |
Setobjectshapeindex(object.indexnum) | 设置对象的3D形状 |
Setobjecttextureindex(object.indexnum) | 设置对象的3D纹理 |
3. 对象统计
命令 | 解释 |
Object.subnodes.length | 这将返回对象的当前内容 |
Object.stats.input | 这将返回对象的输入统计信息 |
Object.stats.output | 这将返回对象的输出统计信息 |
Obj.stats.state().value = statenum | 这将设置对象的当前状态 |
Obj.stats.state().value | 这将设置对象的当前状态值 |
Obj.stats.state().valuestring | 这将以字符串形式返回对象的当前状态 |
Object.rank | 这将返回对象的等级 |
Object.rank = ranknum | 这设置了对象的等级 |
Getentrytime(item) | 这将是返回流项目进入当前所在对象的时间 |
Getcreationtime(item) | 这将返回创建流项的时间 |
4. 对象控制
命令 | 解释 |
Obj.input.close() | 这将关闭对象的输入 |
Obj.input.open() | 这将重新打开对象的输入 |
Obj.output.close() | 这将关闭对象的输出 |
Obj.output.open() | 这将重新打开对象的输出 |
Sendmessage(toobject,fromobject, parameter1,parameter2,parameter3) | 这会导致触发对象的消息触发器 |
Sendmessage(toobject,delaytime,fromobject, parameter1,parameter2,parameter3) | 这会导致对象的消息触发器在一定的延迟时间后触发 |
Obect.stop(downstate) | 这告诉对象停止其操作并进入给定状态 |
Object.resume() | 这允许对象恢复其操作 |
Obj.output.stop() | 这将关闭对象的输出,并累积stopoutput请求 |
Obj.output.resume() | 一旦所有stopoutput请求恢复,这将打开对象的输出 |
Obj.input.stop() | 这将关闭对象的输入,并累积stopinput请求 |
Obj.input.resume() | 一旦所有停止输入请求恢复,这将打开对象的输入 |
Unsertcopy(originalobject,containerobject) | 这会将对象的新副本插入容器中 |
Moveobject(object.containerobject) | 这回将对象从其当前容器移动到其新容器中 |
5. 对象变量
命令 | 解释 |
Getvarnum(object,“variablename”) | 这将返回具有给定名称的变量的数值 |
Setvarnum(object,“variablename”,value) | 这将使用给定名称设置变量的数值 |
Getvarstr(object,“variablename”) | 这将返回具有给定名称的变量的字符串值 |
Setvarstr(object,“variablename”,string) | 这将使用给定名称设置变量的字符串值 |
Getvarnode(object,“variablename”) | 这将返回对给定名称作为节点的变量的引用 |
6. 表格
Table table = reftable(“GlobalTable1”); //Global tables
Table labelTable = current.labels[“TableData”]; //Label table
命令 | 解释 |
Table[row num/name][col num/name] | 这将返回表的指定行和列中的值 |
Table[row num/name][col num/name] = value | 这将设置表的指定行和列中的值 |
Table.setSize(rows.columns) | 这将按行和列设置表的大小 |
Table.numRows | 这将返回表中的行数 |
Table.numCols | 这将返回表中的列数 |
Table.clear() | 将表中的所有数字值设置为0 |
7. 提示和打印输出
命令 | 解释 |
Print(var value) | 将变量值打印到输出控制台上 |
Msg(“title”,“caption” | 打开一个简单的Yes,No,Cancel对话框 |
Userinput(targetnode,“prompt”) | 打开一个对话框,您可以在其中设置模型中节点的值 |
String1+string2 | 这将返回两个字符串的字符串连接 |
8. 变量类型
命令 | 解释 |
Int | 整列 |
Double | 双精度浮点数类型 |
String | 字符串 |
Treenode | 对Flexsim节点的引用 |
Variant | 数字,字符串,treenode或数组 |
Array | 数组 |
Object | Treenode与对象数据 |
Color | Rgba颜色的组成部分 |
Vec3 | xyz矢量的组件 |
Table | 元素表 |
List | 用于同步任务和逻辑的动态事物列表 |
var | 推断变量类型 |
9. 对Queue里面批量进入的item打乱顺序
Setrank(item,duniform(1,content(current)));
10. 构造类对象
Color mycolor = color(1,0,0); // makes a red color
Object.location = vec3(0,0,0); //sets the object’s location to the origin
11. 点语法
Object.method(parmeter1,parmeter2,parmeter3…);
Current.setlocation(1,1,1);
Treenode lastitem = current.last;
Treenode item3 = current.subnodes[3];
Int quantity = current.quantity; //Accesses label named ‘quantity’
12. If语句例子
案例1:
If(item.subnodes.length = = 2)
{
Item.color = Color.red;
}
Else
{
Item.color = Color.black
}
案例2:
If(time() > 1440)
{
Return 10;
}
Else
{
Return 20;
}
13. While循环语句
While (test expressiom)
{
Code block
}
While (current.subnodes.length > 2)
{
Current.last.destroy();
}
14. For循环语句
For(start expression; test expression; current expression)
{
Code block
}
For (int index = 1;index <=current.subnodes.length; index++)
{
Current.subnodes[index].as(object).color = color.blue;
}
15. Switch语句
Switch(switchvariable)
{
Case casenum;
{
Code block;
Break;
}
Default:
{
Code block;
Break;
}
}
Switch(item.type)
{
Case 1;
{
Item.color = Color.yellow;
Break;
}
Case 2;
{
Item.color = Color.red;
Break;
}
Default;
{
Itme.color = Color.green;
Break;
}
}
16. 函数案例
Getlabelnum(object,“labelname”);
Setlabelnum(object,“labelname”,value);
Getlabelstr(object,“labelname”);
Setlabelstr(object,“labelname”,string);
Label(object,“labelname”);
Settablenum(“GlobalTable”,1,1,1);
17. 代码举例
一、
18. string labelname = "station";
19. Variant value = current.station;
20. int n = item.labels[labelname].value;
21. if(n!=value)
22. return 1;
23. else
24. return 0;
二、
int num=fmod(Model.find("Combiner49>stats/stats_output").value,6);
if (num==0) {
num=6;
}
/**Set Label*/
Object involved = /** \nObject: *//***tag:object*//**/item/**/;
string labelname = /** \nLabel: *//***tag:label*//**/"mylabel"/**/;
Variant value = /** \nValue: *//***tag:value*//**/num/**/;
三、
current.find(">variables/sequence/Arrival1/Quantity").value=gettablenum("Fixture",2,1);
四、引用命令
命令 | 解释 | 示例 |
first(node) | 返回的是所传递的实体中排序第一的对象的引用 | first(current) |
last(node) | 返回的是所传递的实体中排序倒数第一的对象的引用 | last(current) |
rank(node,ranknum) | 返回的是所传递的实体中某给定排序的对象的引用 | rank(current,3) |
inobject(object,portnum) | 返回的是与所传递的实体的输入端口号相连的对象的引用 | inobject(current,1) |
outobject(object,portnum) | 返回的是与所传递的实体的输出端口号相连的对象的引用 | outobject(current,1) |
centerobject(object,portnum) | 返回的是与所传递的实体的中间端口号相连的对象的引用 | centerobject(current,1) |
next(node) | 返回的是所传递的实体中排序下一个对象的引用 | next(item) |
五、实体属性
命令 | 解释 |
getname(object) | 返回实体的名字 |
setname(object,name) | 设定实体的名字 |
getitemtype(object) | 返回实体中临时实体类型的值 |
setitemtype(object,num) | 设定实体中临时实体类型的值 |
setcolor(object,red) | 设定实体的颜色 |
colorred(object) | 设定实体的颜色为红 |
setobjectshapeindex(object,indexnum) | 设定实体的3D形状 |
setobjecttextureindex(object,indexnum) | 设定实体的3D纹理 |
setobjectimageindex(object,indexnum) | 设定实体的2D纹理,通常只在平面视图中使用 |
六、实体空间属性
命令 | 解释 |
xloc(object)yloc(object)zloc(object) | 这些命令返回实体x、y、z轴向的位置 |
setlocz(object,xnum,ynum,znum) | 此命令设定实体x、y、z轴向的位置 |
xsize(object)ysize(object)zsize(object) | 这些命令返回实体x、y、z轴向的尺寸大小 |
setsize(object,xnum,ynum,znum) | 此命令设定实体x、y、z轴向的尺寸大小 |
xrot(object)yrot(object)zrot(object) | 这些命令返回实体围绕x、y、z轴向的旋转角度 |
setrot(object,xdeg,ydeg,zdeg) | 此命令设定实体围绕x、y、z轴向的旋转角度 |
七、实体统计值
命令 | 解释 |
content(object) | 返回实体当前数量 |
getinput(object) | 返回实体的输入统计 |
getoutput(object) | 返回实体的输出统计 |
setstate(object,statenum) | 设定实体的当前状态 |
getstatenum(0bject) | 返回实体的当前状态 |
getstatestr(object) | 以字符串返回实体当前状态 |
getrank(object) | 返回实体的排序 |
setrank(object,ranknum) | 设定实体的排序 |
getentrytime(object) | 返回实体进入到当前所在实体中的时刻 |
getcreationtime(object) | 返回实体的创建时刻 |
八、实体标签
命令 | 解释 |
getlabelnum(object,labelname) | 返回实体的标签值 |
getlabelnum(object,labelname) | |
setlabelnum(object,labelname,value) | 设定实体的标签值 |
setlabelnum(object,labelname,value) | |
getlabelstr(object,labelname) | 获得实体标签的字符串值 |
setlabelstr(object,labelname,value) | 设定实体标签的字符串值 |
setlabelstr(object,labelrank,value) | |
label(object,labelname)label(object,labelrank) | 返回一个作为节点的标签的引用,此命令常用在把标签当作一个表来使用的情况下 |
九、表
命令 | 解释 |
gettablenum(tablename/tablenode/tablerank,rownum,colnum) | 返回表中特定行列的值 |
settablenum(tablename/tablenode/tablerank,rownum,colnum) | 设定表中特定行列的值 |
gettablestr(tablename/tablenode/tablerank,rownum,colnum) | 返回表中特定行列的字符串值 |
settablestr(tablename/tablenode/tablerank,rownum,colnum) | 设定表中特定行列的字符串值 |
settablesize(tablename/tablenode/tablerank,rows,columns) | 设定表的行列数大小 |
gettablerows(tablename/tablenode/tablerank) | 返回表的行数 |
gettablecols(tablename/tablenode/tablerank) | 返回表的列数 |
clearglobaltable(tablename/tablenode/tablerank) | 将表中所有数字值设为0 |
十、实体控制
命令 | 解释 |
closeinput(object) | 关闭实体的输入端口 |
openinput(object) | 重新打开实体的输入端口 |
sedmessage(toobject,fromobject,parameter1 ,parameter2,parameter3) | 在一段特定时间延迟后触发实体消息触发器 |
stopobject(object,downstate) | 令实体停止,进入指定状态 |
resumeobject(object) | 使实体恢复其原来的无论什么操作 |
stopoutput(object) | 关闭实体的输出端口,并累计停止输出的请求 |
resumeoutput(object) | 打开实体的输出端口 |
insertcopy(originalobject,containerobject) | 往容器里插入新的实体复制品 |
moveobject(object,containerobject) | 将实体从当前容器移到它的新容器中 |
十一、高级函数
命令 | 解释 |
getvalrnum(object,“variablename”) | 返回给定名称的变量的数值 |
setvalrnum(object,“variablename”,value) | 设定给定名称的变量数值 |
getvarstr(object,“variablename”) | 返回给定名称的变量的字符串值 |
setvalrstr(object,“variablename”,string) | 设定给定名称的变量的字符串值 |
getvarnode(object,“variablename”) | 返回一个节点,作为指向给定名称的变量的应用 |
十二、任务执行器控制
命令 | 解释 |
pf(text string) | 向输出控制台打印文本 |
pf(float value) | 向输出控制台打印浮点数值 |
pd(discrete value) | 向输出控制台打印整数数值 |
pr() | 在输出控制台中建新的一行 |
msg(“title”.“caption”) | 打开一个简单的“是、否、取消”消息框 |
userinput(targetnode,“prompt”) | 打开一个可以设定模型节点值的对话框 |
concat(string1,string2,etc.) | 合并两个或多个字符串 |
猜你喜欢
- 2024-11-24 浏览器跨域问题以及常用解决方案
- 2024-11-24 14个前端小知识,我猜你每天都会遇到
- 2024-11-24 跨域问题的4种解决方案
- 2024-11-24 什么是跨域?跨域解决方法
- 2024-11-24 构建rancher自定义ui的前端镜像
- 2024-11-24 你应该知道的前端小知识,初学者,确定不点进来看看吗?
- 2024-11-24 15个前端小知识
- 2024-11-24 记一场纯JS赛——DiceCTF2021 Web题解
- 2024-11-24 如何基于 Elasticsearch 实现排序沉底或前置
- 2024-11-24 如何查找网站源IP地址
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)