全球FlexSim系统仿真中文论坛

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

作者: ccharlie    时间: 2012-12-4 22:31
标题: 如何得到tree中的變數值?
各位先進,我想要利用VisualTool來動態顯示tree內的變數值
( y' P& [" C8 t4 w' b; \,例如Queue中objectinfo,可是objectinfo內有三個變數1 h3 h) f% B' ~' q* J9 S
,包括CurContent, MaxContent, AvgStaytime,我試過在  F. z; R: p6 x  u' N- _
VisualTool內的text display中設定指令,但仍顯示數值0,沒有達到預期的等候線的等候量
8 O% R# M' R/ j" w5 W2 [treenode current = ownerobject(c);" E$ M- P4 E' r, n6 l9 C* [
treenode  textnode = parnode(1);7 D' l' Q& H7 W  S: @# g8 F
/**Display Text*/
% l; i( p0 R3 \4 {% I2 z/ n( h, _2 `. R. g1 Q
/** \nText: */4 \! G6 ?9 M- c3 P7 v
string text = /**/"Hello"/**/;
& E; a4 g' p6 c" `  [! vtreenode queuevar1 = node("/Queue2/objectinfo/CurContent", model());8 E4 q1 X& t/ z
double curcontent = getnodenum(queuevar1);
7 j. T" Z0 k2 y( l6 r
8 {8 j+ i8 _5 _7 n: _9 nsetnodestr(textnode,numtostring(curcontent));
- F: D9 W! W, Y4 N; y9 S# l% D- u, y( f
return 1;. M# e1 q" n, Z5 n; a& l/ \9 _1 y( V
我知道以下指令可以顯示等候線量,但我仍想知道如何得到tree中的數值1 ?* I' R1 c; h6 g, {2 R2 ~0 @
double curcontent = getnodenum(queuevar1);; ~* Q* Q6 t9 a+ W) z; M  `5 t
double zz = content(node("/Queue2",model()));9 I* N9 Y8 H" X; j2 D5 s( A
setnodestr(textnode,numtostring(zz));
作者: domcylai    时间: 2012-12-5 09:05
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。# e/ I  a2 u. y' j0 Z8 R* R
' M7 L2 F0 ]0 M: @- |, ^4 I# B/ T5 \
我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都可以在Model tree 中找到對應的節點,  但其實有更簡單的獲得這些值的方法,不僅限于node()函數,也可以使用其他命令。+ b0 R  K5 L0 r$ ^/ c( b
* U' x1 c7 N  P& B
請下載模型(Version6.0.2Chinese)參考:
. B3 }/ D: o3 m& {4 A4 N+ C[attach]1010[/attach]
1 X5 A# L1 i  L# B4 V$ U. B" c+ ]# @
( X" [1 a' n6 f! I4 X關於tree的操作有很多內容,可以參考下面幾個帖子:
/ A0 i/ M8 _3 G/ y3 @" Bhttp://flexsim.asia/viewthread.php?tid=2956&extra=page%3D1
4 `6 Y+ T! k% \& Z! r9 Dhttp://flexsim.asia/viewthread.php?tid=2898&extra=page%3D1
作者: ccharlie    时间: 2012-12-5 14:34
本帖最后由 ccharlie 于 2012-12-5 14:37 编辑
  y; e8 D: L' `7 r0 r; g
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。
1 \7 `% S& d0 J: F% h4 z5 Y% Q
/ _! w; n3 ^5 r+ j我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都 ...
) X  A4 n; H& }- i) g1 S3 l  Sdomcylai 发表于 2012-12-5 09:05
$ V0 o( q3 c6 ~- A  @
感謝domcylai的回應,剛剛研究了domcylai的模型,他是用stats_staytimeavg這個屬性來獲取個體在機台的平均停留時間,此種方法需要事先先知道stats_staytimeavg這個屬性值,而我想知道的是有沒有方法可以直接抓取tree鍾某個節點的值並顯示在visualtools中,例如queue中的objectinfo有3個變數,有沒有方法可以直接抓出例如maxcontent的值。
- K' g4 F+ ^& W5 f[attach]1019[/attach]
作者: ccharlie    时间: 2012-12-5 14:49
3# ccharlie . \8 d" |+ @: w3 n
又例如另外一個例子,我做了一個模型用來計算運作中模型的再製品量,wip是globaltable,在tree中也找的到,當然可以用gettablenum("wip",1,1)來取得數字,但如果要從tree中直接抓取數字不曉得有沒有別的方法,也請各位先進幫忙,感謝!
! _5 C& R5 d7 g+ g+ K$ Z* E
# Y7 q7 |3 e9 v( H) L" e# k[attach]1021[/attach][attach]1020[/attach]
作者: domcylai    时间: 2012-12-5 15:29
4# ccharlie
5 J% S" O  {3 I# V
# F. R0 g: W) l: S2 A) n+ f
& w* ~( F1 l1 [  j' }3 j' U# H原理相同:   
2 P7 Q  u" }' c- E4 Y' Q. f' ?# Gtreenode thenode = ...;         //获得想要的节点变量
5 q$ ~* Y9 j) g0 j: vint value = getnodenum(thenode);         //使用函數獲得節點的值,并用正確的類型標示符返回到腳本中
作者: ccharlie    时间: 2012-12-5 15:38
5# domcylai
  s; k. }& I0 q3 c$ t+ {3 K2 _1 y
+ S$ p- ~- B1 u5 n% ^無奈啊,還是失敗
/ e* M5 r- E& F$ t1 x& ]我使用
3 L! M+ J) I  U) [( ytreenode current = ownerobject(c);" {; R9 o: X4 m' [( Z
treenode  textnode = parnode(1);
+ y( M3 G% H' btreenode thenode = node("/Tools/GlobalTables/wip/variables/data/Row 1/Col 1",model());) i! P7 W9 b  M% S6 i

/ I  T8 m0 J  F$ J3 \3 {/**Display Text*/
) W: S. p- }  j9 w0 s7 \4 U* B& |9 {, i; r
/** \nText: */
* f4 \* E0 ]& y! L+ x//string text = /**/"Hello"/**/;
# Q% u0 y0 L* R' v! [( d( @0 |int wip = getnodenum(thenode);
1 R4 C. l! s) |& _setnodestr(textnode,numtostring(wip));
5 y5 v# `0 z3 E# t
0 w* w( E6 f7 N$ freturn 1;
( S/ r4 J$ {+ [  z$ T但顯示出來的wip量一直都是0  B, g6 K/ v" T0 e2 z& ^! L# }, h

- Q9 I/ m5 f# ~, r9 x, W3 I
2 V7 w& D) `8 Q' ^0 t6 d; h[attach]1022[/attach]
1 D2 t/ C6 J5 `' e[attach]1023[/attach]




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