全球FlexSim系统仿真中文论坛

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

作者: ccharlie    时间: 2012-12-4 22:31
标题: 如何得到tree中的變數值?
各位先進,我想要利用VisualTool來動態顯示tree內的變數值
' {6 _6 E- X% O! B,例如Queue中objectinfo,可是objectinfo內有三個變數
( n; _0 r7 ?) I; D1 N,包括CurContent, MaxContent, AvgStaytime,我試過在6 L( P& E- |5 e% `
VisualTool內的text display中設定指令,但仍顯示數值0,沒有達到預期的等候線的等候量
8 {& s* t+ ^  c# P$ S; w+ ctreenode current = ownerobject(c);
2 Y9 H! O9 C, n0 s, D: e+ Ktreenode  textnode = parnode(1);
7 t- a  t7 T8 o1 m" y2 n" g/**Display Text*/
3 q3 Z- s0 y$ c6 A. r" ]1 Z1 t8 U7 [) u  `" Y& W
/** \nText: */
0 N. N; t# C" _8 ?string text = /**/"Hello"/**/;
9 @" j4 j5 ]& O7 u. u9 vtreenode queuevar1 = node("/Queue2/objectinfo/CurContent", model());
& v, W6 D4 I- U* G9 K1 o3 k- ?" Qdouble curcontent = getnodenum(queuevar1);
# ~  a2 T, q6 c9 X, U! U6 I" M1 u9 H8 l, g! Y
setnodestr(textnode,numtostring(curcontent));
0 e6 m, y+ ^5 X2 y; Z* |% b/ {9 Y& a8 P* v
return 1;  z" Z! I( N/ _7 D  _4 Y6 C$ s
我知道以下指令可以顯示等候線量,但我仍想知道如何得到tree中的數值
% w4 t& d0 k& T& @/ v2 x3 @double curcontent = getnodenum(queuevar1);( ]6 u9 z! l  K/ p( R
double zz = content(node("/Queue2",model()));
2 J7 r" [9 i' m$ m: asetnodestr(textnode,numtostring(zz));
作者: domcylai    时间: 2012-12-5 09:05
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。
) Z5 Y  w1 l5 s# e4 \* F" D% }4 t, Y6 l. S5 ?4 x
我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都可以在Model tree 中找到對應的節點,  但其實有更簡單的獲得這些值的方法,不僅限于node()函數,也可以使用其他命令。" Z, u! Q3 y: @1 N( [" k5 ~: t- A9 B

% x, z5 @' \8 J/ D+ r  h請下載模型(Version6.0.2Chinese)參考:
2 ]+ F$ G& M# p6 d% |4 }[attach]1010[/attach]
' s% s8 A& F7 j4 L8 M0 i$ D" h$ X2 p0 j
; z! G& v+ b+ s, d( H% ?關於tree的操作有很多內容,可以參考下面幾個帖子:
' h, }2 d. `9 ]3 k$ K) E7 Lhttp://flexsim.asia/viewthread.php?tid=2956&extra=page%3D10 s# N" O0 y" U; t; O  K6 R) a" ~
http://flexsim.asia/viewthread.php?tid=2898&extra=page%3D1
作者: ccharlie    时间: 2012-12-5 14:34
本帖最后由 ccharlie 于 2012-12-5 14:37 编辑 ( W" ?# `$ S% [+ s, I8 C6 D$ |3 u
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。* o) o6 t: A2 |7 K3 H' k1 {( b

6 [2 g% t% f8 z- p- v我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都 ...5 @6 D- n: ^* E& Z# T6 t! o7 H* V: C
domcylai 发表于 2012-12-5 09:05
& F3 F( o% `9 D" S7 H' A
感謝domcylai的回應,剛剛研究了domcylai的模型,他是用stats_staytimeavg這個屬性來獲取個體在機台的平均停留時間,此種方法需要事先先知道stats_staytimeavg這個屬性值,而我想知道的是有沒有方法可以直接抓取tree鍾某個節點的值並顯示在visualtools中,例如queue中的objectinfo有3個變數,有沒有方法可以直接抓出例如maxcontent的值。! n5 ~5 X! D) y2 H- I
[attach]1019[/attach]
作者: ccharlie    时间: 2012-12-5 14:49
3# ccharlie
! e. ~0 l. {+ ~% W: v又例如另外一個例子,我做了一個模型用來計算運作中模型的再製品量,wip是globaltable,在tree中也找的到,當然可以用gettablenum("wip",1,1)來取得數字,但如果要從tree中直接抓取數字不曉得有沒有別的方法,也請各位先進幫忙,感謝!1 ]2 l. ?0 w) u$ \
4 l5 w( I9 c" @; d" F8 o
[attach]1021[/attach][attach]1020[/attach]
作者: domcylai    时间: 2012-12-5 15:29
4# ccharlie 6 m# F/ Q  b1 Z+ o

2 q- V. |$ e& s
& E$ o' A. T5 @3 N原理相同:    5 n, g, h4 C& c: N
treenode thenode = ...;         //获得想要的节点变量" P- C: y" o. ]" }/ a* D
int value = getnodenum(thenode);         //使用函數獲得節點的值,并用正確的類型標示符返回到腳本中
作者: ccharlie    时间: 2012-12-5 15:38
5# domcylai
1 F6 Y5 N. v$ N
! x, g; ~7 h2 d+ z無奈啊,還是失敗
* w7 O+ i+ |" p我使用' K- o+ E1 I" n: d6 z9 U) k1 a4 f
treenode current = ownerobject(c);
9 F+ Q% W: `4 }treenode  textnode = parnode(1);
) j, G9 G. o5 }treenode thenode = node("/Tools/GlobalTables/wip/variables/data/Row 1/Col 1",model());
5 e- A5 V$ D  ?
  u3 T+ @- D" ]. ?/**Display Text*/$ Y% w$ }" c' N. A& a
1 @5 r* B. M. k7 S
/** \nText: */$ w2 S( L3 T! A5 G- s5 |# g4 P5 O
//string text = /**/"Hello"/**/;
" V) h0 R% }7 k" F3 U0 o% F. Uint wip = getnodenum(thenode);
5 H! [% \3 s* t, P6 F) nsetnodestr(textnode,numtostring(wip));. O+ U" u5 H. G: K
, b2 `0 H- z. M8 c1 B, b
return 1;+ U0 G1 `% I% I
但顯示出來的wip量一直都是0
1 N. u2 l4 P5 o% @: N
' T; U& t* ?2 ~0 J% X8 n, c' V
0 Y$ T5 C8 o& l2 f% ?) j[attach]1022[/attach]7 w0 B7 Y; S( R1 x: x. _
[attach]1023[/attach]




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