全球FlexSim系统仿真中文论坛

搜索
查看: 6215|回复: 6
打印 上一主题 下一主题

“用户事件”UserEvents求助

[复制链接]
跳转到指定楼层
1#
domcylai 发表于 2011-11-4 16:30:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 domcylai 于 2011-11-6 22:49 编辑
3 Q# q- F6 B" p: ~
( J% i- D! w- ^, f" E& G7 A最近在学习UserEvent时,遇到一些问题(附件):
8 J4 Y2 L7 J; u9 g1.模型中Tools 有一个GlobalTables : num ;
& `9 O/ ^/ Z2 [8 `5 S, ~2.现在要求每隔一段时间以后,从FlowItemBin中产生Box进入系统,产生Box的数量从num表中取值,第一次产生的num是row1 的值,第二次是row2....: }2 O, k8 v1 J& E# C. u
3.当执行到最后一次后,停止用户事件。
' b2 n0 [# Q! N$ P
) o) V0 ~0 t0 s4 l! q. f$ ~
  F# s: G* K( g& F& n这个方法虽然实现了上述的功能,但是没有扩展性。如果num表内row的数量很大,而且不确定就不容易实现了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1威望 +12 收起 理由
Rosalyn + 12

查看全部评分

2#
 楼主| domcylai 发表于 2011-11-4 17:29:34 | 只看该作者
本帖最后由 domcylai 于 2011-11-6 22:53 编辑 : [2 c: n+ W  T, N/ T

6 b% I8 [* W+ O; b: j9 W4 {% ?; i解决方法是:用一个for语句来控制:关键代码如下5 ?( H4 b. O4 x3 e& U: q& A% Z
for(int i=1;i<=gettablerows("rank");i++)
  R9 g8 ?$ R+ c{        if(i==num)  // 此处num值是记录UserEvent 已经运行的次数,可以新增一个节点或用一个table来记录; U* h' F; [  o2 z+ W
        {       
, s" y1 y% u" N                for(int j=1;j<=gettablenum("rank",i,1);j++)
( X" T9 ?0 J$ a; h, {                {
& B( V% b7 I7 Z# s, u/ i% m1 Q8 k9 w( y                        insertcopy(node("/Tools/FlowItemBin/1/1",model()),node("/Queue1",model()));
' q7 z0 v( ~3 @7 ?' \2 j                }
: A- V" F' a1 g        }
9 N; ]- }5 z) n/ ^}- i$ V/ D, V/ O7 S: _: ^4 `3 ]6 H$ c& W
此外我还加了一条语句:
  x# \) D% O( V* z% i/ M" r, C+ @//if(num==gettablerows("rank"))$ e- j( c5 G; b% n
if(num==5)     //UserEvent运行5次后关闭4 w" E7 E- }1 }# ~! I
setnodenum(node("/Tools/UserEvents/UserEvent1>variables/repeat",model()),0);4 L5 R6 P5 Z* a- _. F$ M& d& ?6 I+ E
else $ j; w4 B: {$ `$ k  P& D/ m/ X
{
8 Z* K% K: f; `        num=num+1;
- }' j: ~' y4 k4 C2 E        setnodenum(runnum,num);& s# L4 H+ a# W5 x
}: Y/ n9 B  n8 Z6 r
也就是控制 该UserEvent 自动运行的开关节点。=1 为开 =0 为关。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
3#
 楼主| domcylai 发表于 2011-11-6 23:06:29 | 只看该作者
UserEvents 功能是正式版软件才能用,Demo版用户可以使用另外的方法来“制造”一个时间定时器:比如设定一个小车在两点间运动,每次触碰的时间通过速度来控制。也可以用传送带等
4#
qiush1234 发表于 2011-11-10 09:19:04 | 只看该作者
过来学习的,不知道有没有自定义函数这样的教程啊。
5#
 楼主| domcylai 发表于 2011-11-11 17:33:21 | 只看该作者
自定义函数是神马东西?是指Script教程吗?
6#
Rosalyn 发表于 2011-11-14 20:12:15 | 只看该作者
3# domcylai
) i7 Y. ?6 D0 t% V, l2 U) t- @
3 @- h$ k" `" a! R9 J  B6 k1 k9 V8 y/ [% B
学得越来越不错了,补充一下,时间定时器,还可以用发生器和吸收器两个来控制,固定某个时间点创建临时实体,在创建触发里编辑代码
7#
Rosalyn 发表于 2011-11-14 20:17:45 | 只看该作者
4# qiush1234
8 ], m7 t/ d7 v# K1 Y0 }! f$ F自定义函数,我觉得可以通过C++编程和脚本编程,然后变成全局变量,可以让整个模型都能调用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2025-8-31 02:29 , Processed in 0.063890 second(s), 15 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表