全球FlexSim系统仿真中文论坛
标题:
“用户事件”UserEvents求助
[打印本页]
作者:
domcylai
时间:
2011-11-4 16:30
标题:
“用户事件”UserEvents求助
本帖最后由 domcylai 于 2011-11-6 22:49 编辑
( t( f4 A" Q O5 S; L. }" p
; s8 b4 p5 d, D/ w
最近在学习UserEvent时,遇到一些问题(附件):
4 P( x6 ]; X/ t0 J S' c7 a8 e% B
1.模型中Tools 有一个GlobalTables : num ;
8 v: {7 H, V* R- ^2 n! s
2.现在要求每隔一段时间以后,从FlowItemBin中产生Box进入系统,产生Box的数量从num表中取值,第一次产生的num是row1 的值,第二次是row2....
4 ^5 e' n& X$ O! d! k6 v8 L
3.当执行到最后一次后,停止用户事件。
- `4 U/ O. ~+ p; o
( f+ k+ J [& U$ U9 s3 i* g
4 w' w J% K/ W( L' i
这个方法虽然实现了上述的功能,但是没有扩展性。如果num表内row的数量很大,而且不确定就不容易实现了。
作者:
domcylai
时间:
2011-11-4 17:29
本帖最后由 domcylai 于 2011-11-6 22:53 编辑
& T8 {! J8 B$ f( @" l
3 c2 Y+ d' n5 O
解决方法是:用一个for语句来控制:关键代码如下
$ E+ S% [7 T9 G+ r
for(int i=1;i<=gettablerows("rank");i++)
- j) j) H0 f1 G& U1 Z
{ if(i==num) // 此处num值是记录UserEvent 已经运行的次数,可以新增一个节点或用一个table来记录
. u! ^. G# x5 H4 z* h. I
{
4 S3 u- O, ?3 q( [
for(int j=1;j<=gettablenum("rank",i,1);j++)
: O5 y2 p- U( ?, N& k; }. C/ }
{
: R1 n7 U2 ]# ]2 S! c
insertcopy(node("/Tools/FlowItemBin/1/1",model()),node("/Queue1",model()));
( B4 x. k) ^8 _2 G0 t
}
/ V$ c1 `+ L% s2 {: l
}
0 E0 K7 |: Q2 k: e+ n5 T: g1 p4 ]
}
, c- ?0 {5 E- P
此外我还加了一条语句:
6 @) a* f/ m' n9 O% n) O
//if(num==gettablerows("rank"))
- a2 |" S2 }6 p6 q! @' A `
if(num==5) //UserEvent运行5次后关闭
" L6 ?5 Z. `- [- D. `$ X
setnodenum(node("/Tools/UserEvents/UserEvent1>variables/repeat",model()),0);
d3 y$ Z2 k* ^
else
$ P B7 A1 K; u
{
: c1 N3 C7 g7 F
num=num+1;
; q" u3 M) }8 A5 `
setnodenum(runnum,num);
4 e, M+ a8 z' u' Y- \6 g+ [
}
8 `7 U0 M1 D, h* p* e, R
也就是控制 该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
+ Y4 Q' ?; l0 k( E" d$ O! d2 Q
5 `! N% L* n( O* e
/ u8 @4 L" C2 Y; S g' U
学得越来越不错了,补充一下,时间定时器,还可以用发生器和吸收器两个来控制,固定某个时间点创建临时实体,在创建触发里编辑代码
作者:
Rosalyn
时间:
2011-11-14 20:17
4#
qiush1234
+ x# K; W# [% n2 M
自定义函数,我觉得可以通过C++编程和脚本编程,然后变成全局变量,可以让整个模型都能调用
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3