全球FlexSim系统仿真中文论坛

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

作者: ccharlie    时间: 2012-12-4 22:31
标题: 如何得到tree中的變數值?
各位先進,我想要利用VisualTool來動態顯示tree內的變數值
" w) H( x  h# m; x6 Q7 ?% L,例如Queue中objectinfo,可是objectinfo內有三個變數
& t) O1 B; s0 A* j,包括CurContent, MaxContent, AvgStaytime,我試過在+ r5 i: A5 x* m0 T) l
VisualTool內的text display中設定指令,但仍顯示數值0,沒有達到預期的等候線的等候量
* E/ G  M) S0 }& G& e3 R  k# x0 ptreenode current = ownerobject(c);
2 `$ V; ^; w* \3 s* }" r+ p1 Ftreenode  textnode = parnode(1);: p' |/ I& F. q& D
/**Display Text*/, r% ^5 j+ W2 ?3 i# i! V& B7 q
$ b+ X2 N& z# h" |; V
/** \nText: */; `9 ?6 [; I! I; U
string text = /**/"Hello"/**/;
( H+ T# s9 i1 c1 Q. Ctreenode queuevar1 = node("/Queue2/objectinfo/CurContent", model());
; N9 G9 @  j2 Ydouble curcontent = getnodenum(queuevar1);
! t% b. G) `* Y. p; y8 ?
" }6 Y/ o5 Z& E, C0 ]- ?setnodestr(textnode,numtostring(curcontent));
7 K3 t$ l" [8 [  Q% o
$ |0 t% k7 t' H  s+ I- O- |return 1;
- p8 a9 f; s; G/ V% F我知道以下指令可以顯示等候線量,但我仍想知道如何得到tree中的數值
5 l) E  @1 l3 }- t8 ?% Adouble curcontent = getnodenum(queuevar1);
, {6 [$ f% A7 T6 w  ^% m4 c# bdouble zz = content(node("/Queue2",model()));
& F2 b# }2 \1 b1 v- @setnodestr(textnode,numtostring(zz));
作者: domcylai    时间: 2012-12-5 09:05
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。2 N/ Y2 b3 k- |% T# a
: Z# f! y4 Z! y; Y6 S- P5 {! E5 w( b
我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都可以在Model tree 中找到對應的節點,  但其實有更簡單的獲得這些值的方法,不僅限于node()函數,也可以使用其他命令。4 V3 n6 d; N7 v7 A& S/ k/ a7 }

; B. X1 J. {. f1 a& N9 O請下載模型(Version6.0.2Chinese)參考:8 J. h+ X( p2 M" {  ^( a
[attach]1010[/attach]( ]; ~- D6 C7 M; J4 @  F

3 j$ N( A$ y  K關於tree的操作有很多內容,可以參考下面幾個帖子:
+ ?$ _" T. F% u- lhttp://flexsim.asia/viewthread.php?tid=2956&extra=page%3D1
8 d9 V4 |# o, w  ^" ~% q, `6 H* p- v5 ^http://flexsim.asia/viewthread.php?tid=2898&extra=page%3D1
作者: ccharlie    时间: 2012-12-5 14:34
本帖最后由 ccharlie 于 2012-12-5 14:37 编辑 " V( F1 l. f' V$ @) _1 J
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。; s0 c+ B) u5 I$ E

9 R4 U! v4 ~8 Y* j, }8 M我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都 ...1 o. w% M$ V0 i' ^. v
domcylai 发表于 2012-12-5 09:05

* c: T7 T' w+ q; b! c9 ]感謝domcylai的回應,剛剛研究了domcylai的模型,他是用stats_staytimeavg這個屬性來獲取個體在機台的平均停留時間,此種方法需要事先先知道stats_staytimeavg這個屬性值,而我想知道的是有沒有方法可以直接抓取tree鍾某個節點的值並顯示在visualtools中,例如queue中的objectinfo有3個變數,有沒有方法可以直接抓出例如maxcontent的值。
" G& T1 F4 j# u# F2 N# |[attach]1019[/attach]
作者: ccharlie    时间: 2012-12-5 14:49
3# ccharlie
/ @9 {' ~  A' }( ~' u4 i3 W又例如另外一個例子,我做了一個模型用來計算運作中模型的再製品量,wip是globaltable,在tree中也找的到,當然可以用gettablenum("wip",1,1)來取得數字,但如果要從tree中直接抓取數字不曉得有沒有別的方法,也請各位先進幫忙,感謝!% D* u$ o5 ~) ^# V  `
2 O) c3 W5 [7 r4 q& G3 T, \
[attach]1021[/attach][attach]1020[/attach]
作者: domcylai    时间: 2012-12-5 15:29
4# ccharlie
7 b$ G# _2 z! a. x0 U4 T$ \8 Q0 \( t7 P, b$ c6 N* ]4 Q* I8 U. a7 J- V

2 F8 X4 x$ z+ ^. W6 e0 h原理相同:    6 Q0 V; q$ t; o5 U; v
treenode thenode = ...;         //获得想要的节点变量
% e; N. X9 Y1 U, F) eint value = getnodenum(thenode);         //使用函數獲得節點的值,并用正確的類型標示符返回到腳本中
作者: ccharlie    时间: 2012-12-5 15:38
5# domcylai
6 e1 V2 s# x  f! T* E- W+ D5 ^: e( V5 I, @( ~: a8 L: u
無奈啊,還是失敗
$ D  C- Y! u3 I$ }  l" E& M我使用
: n3 q# P3 G/ ^$ Wtreenode current = ownerobject(c);' E. v$ B& y, {" v# F# ?  q
treenode  textnode = parnode(1);8 m$ A2 ^. }2 `$ V" J
treenode thenode = node("/Tools/GlobalTables/wip/variables/data/Row 1/Col 1",model());: D8 s: r  O  P
, |$ M0 s, v6 |# ]" F& i: q7 c
/**Display Text*/
1 T( c5 \: Y1 F  R6 T  t- l+ F3 I3 L8 F, e" p% B5 c: O6 ~
/** \nText: */
& |' q* b6 H- S$ b# c6 j//string text = /**/"Hello"/**/;
, c6 O" p6 O1 c3 tint wip = getnodenum(thenode);
5 w/ S" }" a* F/ H- C8 b- X- |1 Isetnodestr(textnode,numtostring(wip));
. e! f8 N' t2 c9 z
! c+ J8 t0 j( K; V. X# Creturn 1;  g, Y: ~4 Z+ a6 N( V
但顯示出來的wip量一直都是0
% y1 H3 e% v- U& R3 n
, d3 y+ \3 M" U1 P( x4 q& ^1 T8 ~7 P1 v3 I& H. D( A
[attach]1022[/attach]/ z# l3 S# G6 g. k" `! o
[attach]1023[/attach]




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