全球FlexSim系统仿真中文论坛

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

作者: ccharlie    时间: 2012-12-4 22:31
标题: 如何得到tree中的變數值?
各位先進,我想要利用VisualTool來動態顯示tree內的變數值, _+ a1 I' L+ h  X! o3 G6 a$ T
,例如Queue中objectinfo,可是objectinfo內有三個變數
' n, o4 y) L$ `4 q8 i! [,包括CurContent, MaxContent, AvgStaytime,我試過在
. [4 x4 [3 J- y6 _VisualTool內的text display中設定指令,但仍顯示數值0,沒有達到預期的等候線的等候量7 m6 n! E; p$ a( N6 t& j4 Y
treenode current = ownerobject(c);
/ t+ \2 l; p. s8 K, J- j0 Ttreenode  textnode = parnode(1);
/ U# p& _$ g) H# ^/**Display Text*/
, A# v$ Y/ M5 ]; Q
1 e8 M' K% v& n7 R: k/** \nText: */
4 F! p* J4 a' M+ o) i% H0 o1 F- vstring text = /**/"Hello"/**/;/ O' |4 N& P& [4 @# s1 [0 p
treenode queuevar1 = node("/Queue2/objectinfo/CurContent", model());" y: b) w# q3 L# Y0 p6 J
double curcontent = getnodenum(queuevar1);
6 |6 z& V# @, K" i' h
" T/ h; R2 J% n9 I* A; _2 Esetnodestr(textnode,numtostring(curcontent));" }% g4 `2 o; |$ d/ k, t

4 D. B, k  q9 z; N3 a/ v4 u5 breturn 1;
; o8 r) r/ n+ y- @" X3 n) o0 y我知道以下指令可以顯示等候線量,但我仍想知道如何得到tree中的數值
7 I7 z8 U: U+ i" n5 Hdouble curcontent = getnodenum(queuevar1);- m% ]4 _; m% E
double zz = content(node("/Queue2",model()));
2 b% z4 l1 }9 E- Dsetnodestr(textnode,numtostring(zz));
作者: domcylai    时间: 2012-12-5 09:05
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。" e2 k6 @2 m- {) J  m, j

) R* Z1 D% Z  {. j- d" h1 P5 U我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都可以在Model tree 中找到對應的節點,  但其實有更簡單的獲得這些值的方法,不僅限于node()函數,也可以使用其他命令。3 F( K8 |5 e" y; C* p
) M% B* a9 q% V
請下載模型(Version6.0.2Chinese)參考:& }; c( v. X: d' ^
[attach]1010[/attach]
0 v/ T2 Z6 S, G( L; t. v" `8 N7 F. i) f# N' I
關於tree的操作有很多內容,可以參考下面幾個帖子:
  f4 W$ x; N) y" q& ?4 e7 Khttp://flexsim.asia/viewthread.php?tid=2956&extra=page%3D1
; s8 `4 F7 f* s( |% ihttp://flexsim.asia/viewthread.php?tid=2898&extra=page%3D1
作者: ccharlie    时间: 2012-12-5 14:34
本帖最后由 ccharlie 于 2012-12-5 14:37 编辑 : U. `& y/ u, l6 a* K
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。
9 P1 r) y, V9 p- E2 d' w6 w
' x: {0 D% L1 {我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都 ...# a& `$ k6 y2 I/ y; I" U& J
domcylai 发表于 2012-12-5 09:05
3 o( \' z4 h# Q" Q* O5 l, d- {1 g2 k
感謝domcylai的回應,剛剛研究了domcylai的模型,他是用stats_staytimeavg這個屬性來獲取個體在機台的平均停留時間,此種方法需要事先先知道stats_staytimeavg這個屬性值,而我想知道的是有沒有方法可以直接抓取tree鍾某個節點的值並顯示在visualtools中,例如queue中的objectinfo有3個變數,有沒有方法可以直接抓出例如maxcontent的值。
. {; E; E, I$ U3 K[attach]1019[/attach]
作者: ccharlie    时间: 2012-12-5 14:49
3# ccharlie
# c& W2 i/ ]% O" ]又例如另外一個例子,我做了一個模型用來計算運作中模型的再製品量,wip是globaltable,在tree中也找的到,當然可以用gettablenum("wip",1,1)來取得數字,但如果要從tree中直接抓取數字不曉得有沒有別的方法,也請各位先進幫忙,感謝!
/ a) t: L( j& G3 V: b( I
! h. P7 {- N6 \5 [" b" O[attach]1021[/attach][attach]1020[/attach]
作者: domcylai    时间: 2012-12-5 15:29
4# ccharlie
' ~" v4 r0 \, F6 K5 y4 t7 p7 }$ a
7 l5 d% W- D* s; B4 ~3 |* w) s& h  |  @; `; \  P! r1 P; {
原理相同:    9 \& \6 D# V) Q6 g' v
treenode thenode = ...;         //获得想要的节点变量1 D- D( C" c; d: R. {
int value = getnodenum(thenode);         //使用函數獲得節點的值,并用正確的類型標示符返回到腳本中
作者: ccharlie    时间: 2012-12-5 15:38
5# domcylai
4 `$ }0 E% U. U, U+ m( w
) T$ ?0 ?2 _  A* s) m% F/ y( v無奈啊,還是失敗% ~, w. \+ f4 R# I$ }+ L
我使用( o* Q  m9 m' x. J
treenode current = ownerobject(c);3 ~' k: s! P( z) {, B/ @; S5 s
treenode  textnode = parnode(1);3 r: g  f, \7 u# r' t/ l  g
treenode thenode = node("/Tools/GlobalTables/wip/variables/data/Row 1/Col 1",model());
/ [% K& v# j7 s# `1 y3 {4 v, c4 s
/ a( C4 u) ~3 D6 X5 X/**Display Text*/2 q) V- `( e, |0 P

2 I3 ]! C: d; Q" j1 [0 J/** \nText: */2 ^* o3 O" I' H. x) I
//string text = /**/"Hello"/**/;
) S9 g5 ?. X5 S" s9 gint wip = getnodenum(thenode);  f2 {8 ~& }$ i! V8 y$ @
setnodestr(textnode,numtostring(wip));
* I* u$ f3 B) J+ @6 C1 X8 G' r( a3 e9 O# R3 I* i; t$ @
return 1;
3 X9 A+ Z# x+ y但顯示出來的wip量一直都是0( g3 r$ Y0 Z+ S% z8 M# O
3 u( T" J) U% ?
$ m$ p( L; H' u" U. V+ K7 M
[attach]1022[/attach], }# J3 z* e$ ?6 s) q! i
[attach]1023[/attach]




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