flexsim714自学笔记教学提纲Word格式.docx
- 文档编号:21643600
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:12
- 大小:938.78KB
flexsim714自学笔记教学提纲Word格式.docx
《flexsim714自学笔记教学提纲Word格式.docx》由会员分享,可在线阅读,更多相关《flexsim714自学笔记教学提纲Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
{return2;
case4:
}};
2
3
4函数学习:
Setitemtype(item,Bernoulli(60,1,2));
临时实体引用,设置值
item的引用
临时实体类型值为:
getitemtype(item)
if(getitemtype(item==2))setlabelnum(item,”nrofcopies”,duniform(1,1000));
设置标签值,其中nrofcopies为自定义的标签名称,duniform函数返回1到1000之间的整数值,而uniform()函数可返回小数值。
设置不同类型,不同标签值的加工时间:
if(getitemtype(item)==1)return3;
elsereturn
5+(getlabelnum(item,”nrofcopies”)*(5.0/60.0));
多个“标题”语句:
treenodecurrent=ownerobject(c);
此语句为一个变量声明,声明一个变量为current,类型为树节点。
变量值设置为:
ownerobject(c).current为总是指向正在为其编辑代码区域的“当前”实体。
treenodeitem=parnode
(1);
此语句为一个树节点变量声明,成为item.其给定值为parnode
(1)。
Item将总是指向那个特定时间执行代码和触发器相关的那个临时实体。
这些语句创建了可以用于代码区域的可访问变量如currentitem。
如有个指向临时实体的引用,并且此引用名为item.
intport=parval
(2);
这里是一个名为port的整数变量声明,在此例中,在离开触发器中,端口是临时实体穿越离开的输出端口号。
这段代码表示如果有两个临时实体进入到了该实体中,那么就关闭该实体的输出端口。
fmod(num,value1,num,value2):
返回value1除以value2的余数。
getinput(objinvolved)返回所涉及对象的输入统计数据
依次打开各实体的输出端口
nrip(objobject)返回对象输入端口数目
nrop(objobject)返回对象输出端口数目
nrcp(obobject)返回对象中间端口数目
5任务序列:
createemptytaskequeuece(objdispatcher,numpriority,numpreempting)
此命令在分配任务序列中创建一个新的、空的任务序列表。
dispatcher为操作工,
语句:
treenodedispatcher=centerobject(current,2或1等数字(表示端口号));
为指定操作工所在的中间端口。
如图:
例:
outobject(current,port)指向与之相连的下一实体
current表示当前实体
执行行进任务的语句为:
Inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port)(目的地),NULL)
执行装载卸载任务的语句:
意义:
inserttask(序列名称,装载,临时实体,当前实体,当前输出端口);
Inserttask(序列名称,卸载,临时实体,卸载目的地,目的地的输入端口);
如下:
延时语句:
卸载完临时实体后,呆在处理器那里处理临时实体。
使用操作员:
添加utilize任务:
Inserttask(ts,TASKTYPE_UTILIZE,item,outobject(current,1),STATE_UTILIZE);
此时操作员被使用,将一直呆在处理器那里,需要释放操作员。
这样释放:
首先将操作员与处理器中间连接,然后
树节点当前
Ownerobject(nodethenode)
返回对象节点所包含的节点。
intcase_val=getlabelnum(current,"
label"
);
getlabelnum(objnode,str/numlabel)
返回标签所存储的数值
阴影部分为实体引用
协同任务序列:
创建协同任务序列的命令框架:
treenodextrw=createcoordinatedtasksequence(执行器);
创建任务
intpo1rw=insertallocatetask(xtrw,执行器,0,0);
分派任务
insertproxytask();
任务流程
insertsynctask();
中断
insertdeallocatetask();
取消分派任务
dispatchcoordinatedtasksequence();
分配任务
Inserttask(ts,TASKTYPE_TRAVELTOLOC,NULL,NULL,X,Y,Z,结束速度);
函数:
rank(current,getrank(item)-1)
6
yrot(objobject)返回对象y轴的旋转位置。
6运动学
initkinematics(kin,current);
它的第一个参数必须指定一个空节点,通常将这个参数设置为一个标签节点。
参数localcoords控制实体的位置,其值只能为0或1,默认为0(当不写入时),0表示为参考model坐标,1表示参考实体自身的坐标。
addkinematic(kin,0,15,0,10,0,0,10,0,time(),KINEMATIC_ROTATE);
7
treenodesource=inobject(current,1);
指定相关的实体
for(inti=1;
i<
=nrop(source);
i++)nrop函数返回该实体的输出端口数目。
定义数值i初值为1.
{
openoutput(outobject(source,i));
如果为真则打开相关实体outobject(source,i)的输出端口。
closeoutput(current);
关闭当前实体的输出端口。
senddelayedmessage(current,30,current);
当前实体给当前实体发送延时消息,延时30秒。
触发当前实体内的消息触发器内的函数,使之生效。
8,
9基本传送带(双向):
switch(lb)
{case2:
releaseitem(item);
释放指定的实体
openinput(current);
用于打开对象之前已锁定的输入端口
sendmessage(current,current);
从后一个current立即发送一个消息到前一个current.
break;
case1:
break;
case1:
{bcsetdirection(current,1);
此命令停止传送带上的所有实体,并设置它的移动方向:
1为正向,0为反向。
bcsetitemconveystate(current,item,1,1,1,0);
设置传送带上的临时实体的运作状态。
(传送带,实体,开始点,开始速度,目标速度,加速度)
closeinput(current);
关闭对象的输入端口。
stopobject(inobject(current,1),STATE_BLOCKED);
告诉对象停止所有在做的事情。
stopobject(inobject(current,2),STATE_BLOCKED);
setloc(item,10,0,0);
设置对象容器内相关实体的位置
bcsetdirection(current,0);
bcsetitemconveystate(current,item,10,1,1,0);
closeinput(current);
stopobject(inobject(current,1),STATE_BLOCKED(堵塞));
10:
在重置触发器中设置如下代码可设置重置后该实体的转向
11,吊车的部分树节点
从上图中可以看出在吊车模型中在常规选项卡中spatial开头的节点控制黄色框框的xyz三个方向上的位置,大小,转角,而offset开头的节点控制在黄色框框内的3D实体的xyz三个方向上的位置,大小,转角。
(即编辑三维形状因子)
从上图可以看出以shellxlocshellylocshellzloc控制吊车(起重机)大的黄色框框的位置,以shellsizexshellsizeyshellsizez来控制吊车(起重机)大的黄色框框的尺寸大小。
12触发器
当临时实体进入处理器中时,它触发器处理的先后顺序是entrysetupfinishsendtoportexit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- flexsim714 自学 笔记 教学 提纲