全球FlexSim系统仿真中文论坛

标题: 如何得到tree中的變數值? [打印本页]

作者: ccharlie    时间: 2012-12-4 22:31
标题: 如何得到tree中的變數值?
各位先進,我想要利用VisualTool來動態顯示tree內的變數值/ r4 w& V5 \: o& F
,例如Queue中objectinfo,可是objectinfo內有三個變數
# d% l: t; Z6 Z& p4 t,包括CurContent, MaxContent, AvgStaytime,我試過在
+ c# u) q9 @; {8 O8 @1 KVisualTool內的text display中設定指令,但仍顯示數值0,沒有達到預期的等候線的等候量3 p+ }; c: s$ P0 R0 @& l7 P. v
treenode current = ownerobject(c);
+ ]; y) ]4 {: [8 u$ Z; Z+ o) d1 Gtreenode  textnode = parnode(1);: ]- P8 x1 S5 x7 G* |: ~' W
/**Display Text*/
3 h/ X# H& d' k& }/ z8 U! @0 I1 P6 f+ a8 {' d
/** \nText: */9 ^+ I8 c( f4 x( ?' B& W/ p
string text = /**/"Hello"/**/;
0 j! T) u1 D- U/ ftreenode queuevar1 = node("/Queue2/objectinfo/CurContent", model());
: S$ O) y6 A& S! k3 j! Gdouble curcontent = getnodenum(queuevar1);1 |! S# j! P2 E' `: ?$ m

) D. ?, v* {8 u% i+ ksetnodestr(textnode,numtostring(curcontent));
2 I3 f' i9 J0 x6 h
% l4 u' {) y4 e  b/ L" j- ireturn 1;
% l4 y5 ~5 A3 f5 P2 K0 j我知道以下指令可以顯示等候線量,但我仍想知道如何得到tree中的數值, l3 I% @- Y0 B' l) _3 H
double curcontent = getnodenum(queuevar1);
5 i! w: M0 k5 a+ C3 @double zz = content(node("/Queue2",model()));
' {( W' B) _) ?( _+ Jsetnodestr(textnode,numtostring(zz));
作者: domcylai    时间: 2012-12-5 09:05
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。
; P* I* a+ ]4 g& q# ~8 J! K; p6 l  I! N9 W6 L2 l
我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都可以在Model tree 中找到對應的節點,  但其實有更簡單的獲得這些值的方法,不僅限于node()函數,也可以使用其他命令。
& i2 C. w* k! s/ g
  p0 I8 M( A* l" ]請下載模型(Version6.0.2Chinese)參考:
4 S7 E3 Z* B# C6 R9 v) k[attach]1010[/attach]/ V, m7 u8 v+ q8 |  X4 l+ Q

1 Q8 t0 d4 U0 ~+ v: B  O關於tree的操作有很多內容,可以參考下面幾個帖子:- f6 S5 E3 @8 X* C  V' K
http://flexsim.asia/viewthread.php?tid=2956&extra=page%3D1
" b. @( S, s5 {! Xhttp://flexsim.asia/viewthread.php?tid=2898&extra=page%3D1
作者: ccharlie    时间: 2012-12-5 14:34
本帖最后由 ccharlie 于 2012-12-5 14:37 编辑 : X/ n4 ~" H$ n9 P% J: U% ~5 g8 x, W
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。! i) J0 ~+ _5 J. t0 @1 M+ U; Q
% S! w4 b2 M" U, }) l4 R
我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都 ...
! ^( u; F, G& c; Adomcylai 发表于 2012-12-5 09:05

4 f4 S) D; k6 w感謝domcylai的回應,剛剛研究了domcylai的模型,他是用stats_staytimeavg這個屬性來獲取個體在機台的平均停留時間,此種方法需要事先先知道stats_staytimeavg這個屬性值,而我想知道的是有沒有方法可以直接抓取tree鍾某個節點的值並顯示在visualtools中,例如queue中的objectinfo有3個變數,有沒有方法可以直接抓出例如maxcontent的值。  D) c% _( t5 f7 b3 i9 i
[attach]1019[/attach]
作者: ccharlie    时间: 2012-12-5 14:49
3# ccharlie
. ]. C: a+ B1 d, W6 w8 A又例如另外一個例子,我做了一個模型用來計算運作中模型的再製品量,wip是globaltable,在tree中也找的到,當然可以用gettablenum("wip",1,1)來取得數字,但如果要從tree中直接抓取數字不曉得有沒有別的方法,也請各位先進幫忙,感謝!
( \4 \& e' _$ E/ \
8 d& ], r# A& B3 b) x# ]& g8 W5 f[attach]1021[/attach][attach]1020[/attach]
作者: domcylai    时间: 2012-12-5 15:29
4# ccharlie
2 O# f0 [- {+ S6 _& M
% S3 z" V& ^/ O% |1 c- G# |5 s% U1 I" M' r& g* O
原理相同:    & a5 v2 p6 c" H
treenode thenode = ...;         //获得想要的节点变量
6 t6 L! j6 B5 {- l" f8 B1 ^& bint value = getnodenum(thenode);         //使用函數獲得節點的值,并用正確的類型標示符返回到腳本中
作者: ccharlie    时间: 2012-12-5 15:38
5# domcylai
0 r8 X6 M# |; H/ D' \! V9 K( F- d
8 u5 x% A0 C7 s( Y無奈啊,還是失敗
9 p6 J8 U; o9 R, K5 ]' i8 L我使用. P  Y) ?9 I# Z6 t3 z
treenode current = ownerobject(c);
. z$ r: T0 l7 D& u$ w  ftreenode  textnode = parnode(1);
: x) K. w, t3 n6 \treenode thenode = node("/Tools/GlobalTables/wip/variables/data/Row 1/Col 1",model());
/ O- L& d9 M$ B. s1 s
" T/ P1 U- s1 V+ l8 a. e7 U/**Display Text*/
7 n8 }; ~( R. Z% E4 Q& J8 a9 u) b7 f& P. C" Y: w/ R% q
/** \nText: */9 T. A8 ~! X& w  H9 |' J
//string text = /**/"Hello"/**/;3 {' R# |1 o$ ]8 D; p
int wip = getnodenum(thenode);
5 h& k+ H1 d% G# e, w! }; }setnodestr(textnode,numtostring(wip));
+ b; ]7 R+ D" o! R/ S. j& O, @  y! |4 U" e: y9 \( E
return 1;
. z. [& H! C3 z: e+ g/ U但顯示出來的wip量一直都是0
; M# T% j' q5 W5 ]. D3 o1 ~) Q% Q* h3 G8 N# [1 M2 N

: p. Y: m8 q. k# k; l[attach]1022[/attach]. f; j- L8 g) @
[attach]1023[/attach]




欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3