全球FlexSim系统仿真中文论坛
标题:
“用户事件”UserEvents求助
[打印本页]
作者:
domcylai
时间:
2011-11-4 16:30
标题:
“用户事件”UserEvents求助
本帖最后由 domcylai 于 2011-11-6 22:49 编辑
! {6 C2 [$ H1 Q
8 }6 t; A9 u+ S4 u5 ]6 x, p
最近在学习UserEvent时,遇到一些问题(附件):
+ `! l9 F) r, I, E0 a5 i
1.模型中Tools 有一个GlobalTables : num ;
& f7 ]# B/ b& } A
2.现在要求每隔一段时间以后,从FlowItemBin中产生Box进入系统,产生Box的数量从num表中取值,第一次产生的num是row1 的值,第二次是row2....
% d4 Y* L. a+ e1 `
3.当执行到最后一次后,停止用户事件。
' J0 q8 e! M$ ?6 N. b7 P
5 ^! K2 k! P$ A* V: \8 ^ k3 c
" z8 d& w3 q: b7 M+ n8 U. V
这个方法虽然实现了上述的功能,但是没有扩展性。如果num表内row的数量很大,而且不确定就不容易实现了。
作者:
domcylai
时间:
2011-11-4 17:29
本帖最后由 domcylai 于 2011-11-6 22:53 编辑
2 i4 p: Z/ O! W: d0 O: [
' y4 k* \, P3 M4 C0 z$ K
解决方法是:用一个for语句来控制:关键代码如下
* h/ Y5 p2 o! y3 k0 [
for(int i=1;i<=gettablerows("rank");i++)
?: B m+ u4 C$ q
{ if(i==num) // 此处num值是记录UserEvent 已经运行的次数,可以新增一个节点或用一个table来记录
9 m: u$ a5 R8 m% a, U% D+ e0 @
{
. J7 J8 H- T* z: w: d, m D
for(int j=1;j<=gettablenum("rank",i,1);j++)
2 t; U) v4 ]) o, m
{
+ w+ x( l5 E0 `9 p+ k
insertcopy(node("/Tools/FlowItemBin/1/1",model()),node("/Queue1",model()));
! \! ?$ b$ J! T8 s& I' Q
}
3 _+ B7 _2 {7 ^4 }0 k$ a
}
+ s1 { K, I5 A$ ]% Z) \$ A) u
}
, @7 E9 X$ C& k1 s/ V% ?
此外我还加了一条语句:
! j4 o* x) V# A& r5 y; b1 j
//if(num==gettablerows("rank"))
& Y; x3 s8 ?( P
if(num==5) //UserEvent运行5次后关闭
( ^$ B6 E- L/ o5 Z5 L ^
setnodenum(node("/Tools/UserEvents/UserEvent1>variables/repeat",model()),0);
; q' W( U4 G9 \$ V0 ^$ J5 ]
else
+ k) Q' S' H# j$ J% J+ u4 Q
{
1 N3 P& v% p5 R% ]" i7 D& g9 }
num=num+1;
4 }: `% Y2 c, G
setnodenum(runnum,num);
" Y: u( \ G& W7 L
}
! B$ B; f9 b$ _# \
也就是控制 该UserEvent 自动运行的开关节点。=1 为开 =0 为关。
作者:
domcylai
时间:
2011-11-6 23:06
UserEvents 功能是正式版软件才能用,Demo版用户可以使用另外的方法来“制造”一个时间定时器:比如设定一个小车在两点间运动,每次触碰的时间通过速度来控制。也可以用传送带等
作者:
qiush1234
时间:
2011-11-10 09:19
过来学习的,不知道有没有自定义函数这样的教程啊。
作者:
domcylai
时间:
2011-11-11 17:33
自定义函数是神马东西?是指Script教程吗?
作者:
Rosalyn
时间:
2011-11-14 20:12
3#
domcylai
% u" Z( P* F6 Z( V+ x- z1 X
" h! A& g' A, u" k0 y
! d, D6 z: E' {: y% Q
学得越来越不错了,补充一下,时间定时器,还可以用发生器和吸收器两个来控制,固定某个时间点创建临时实体,在创建触发里编辑代码
作者:
Rosalyn
时间:
2011-11-14 20:17
4#
qiush1234
# ]( ]6 A. ~. y4 n0 W
自定义函数,我觉得可以通过C++编程和脚本编程,然后变成全局变量,可以让整个模型都能调用
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3