




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/*Custom Code*/treenode item = parnode(1);treenode current = ownerobject(c);switch(getlabelnum(item,routing)case 1:return 1;break;case 2:return 1;break;case 3:return 2;break;case 4:return 2;break;234函数学习:Setitemtype(item,Bernoulli(60,1,2);临时实体引用,设置值item 的引用 临时实体类型值为:getitemtype(item)Setitemtype(item,Bernoulli(60,1,2);if(getitemtype(item=2) setlabelnum(item,”nrofcopies”,duniform(1,1000);设置标签值,其中nrofcopies为自定义的标签名称,duniform函数返回1到1000之间的整数值,而uniform() 函数可返回小数值。设置不同类型,不同标签值的加工时间:if(getitemtype(item)=1) return 3; else return 5+(getlabelnum(item,”nrofcopies”)*(5.0/60.0);多个“标题”语句:treenode current=ownerobject(c);此语句为一个变量声明,声明一个变量为current,类型为树节点。变量值设置为:ownerobject(c).current为总是指向正在为其编辑代码区域的“当前”实体。 treenode item=parnode(1); 此语句为一个树节点变量声明,成为item. 其给定值为 parnode(1)。Item将总是指向那个特定时间执行代码和触发器相关的那个临时实体。 这些语句创建了可以用于代码区域的可访问变量如current item。如有个指向临时实体的引用,并且此引用名为item. int port=parval(2);这里是一个名为port的整数变量声明,在此例中,在离开触发器中,端口是临时实体穿越离开的输出端口号。 这段代码表示如果有两个临时实体进入到了该实体中,那么就关闭该实体的输出端口。fmod(num,value1,num,value2):返回value1除以value2的余数。getinput(obj involved)返回所涉及对象的输入统计数据依次打开各实体的输出端口nrip(obj object)返回对象输入端口数目nrop(obj object)返回对象输出端口数目nrcp(ob object )返回对象中间端口数目 5任务序列:createemptytaskequeuece(obj dispatcher,num priority ,num preempting)此命令在分配任务序列中创建一个新的、空的任务序列表。dispatcher为操作工,语句:treenode dispatcher=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);此时操作员被使用,将一直呆在处理器那里,需要释放操作员。这样释放:首先将操作员与处理器中间连接,然后treenode current = ownerobject(c);树节点 当前Ownerobject(node thenode) 返回对象节点所包含的节点。int case_val = getlabelnum(current,label); getlabelnum(obj node,str/num label) 返回标签所存储的数值阴影部分为实体引用协同任务序列:创建协同任务序列的命令框架:treenode xtrw = createcoordinatedtasksequence(执行器);创建任务int po1rw = insertallocatetask(xtrw,执行器,0,0);分派任务int po1rw = insertallocatetask(xtrw,执行器,0,0);insertproxytask();任务流程insertsynctask();中断insertdeallocatetask();取消分派任务dispatchcoordinatedtasksequence();分配任务Inserttask(ts, TASKTYPE_TRAVELTOLOC, NULL, NULL, X, Y, Z, 结束速度);函数:rank(current,getrank(item)-1)6 yrot(obj object) 返回对象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);7treenode current = ownerobject(c);treenode source = inobject(current,1);指定相关的实体for(int i = 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)case 2 : releaseitem(item);释放指定的实体 openinput(current);用于打开对象之前已锁定的输入端口 sendmessage(current,current);从后一个current立即发送一个消息到前一个current. break ;case 1: break;switch(lb)case 1: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);break;case 2:setloc(item,10,0,0);设置对象容器内相关实体的位置bcsetdirection(current,0);bcsetitemconveystate(current,item,10,1,1,0);closeinput(current);stopobject(inobject(current,1),STATE_BLOCKED(堵塞));stopobject(inobject(current,2),STATE_BLOCKED);break;10:在重置触发器中设置如下代码可设置重置后该实体的转向11,吊车的部分树节点从上图中可以看出在吊车模型中在常规选项卡中spatial开头的节点控制黄色框框的x y z三个方向上的位置,大小,转角,而 offset开头的节点控制在黄色框框内的3D实体的x y z三个方向上的位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论