全球FlexSim系统仿真中文论坛

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

作者: ccharlie    时间: 2012-12-4 22:31
标题: 如何得到tree中的變數值?
各位先進,我想要利用VisualTool來動態顯示tree內的變數值5 q3 b5 ^6 z( F# ?* j
,例如Queue中objectinfo,可是objectinfo內有三個變數
/ G% n* s( o# ~6 G/ q, V$ ]& n,包括CurContent, MaxContent, AvgStaytime,我試過在
5 e6 |  r- o. P/ E( OVisualTool內的text display中設定指令,但仍顯示數值0,沒有達到預期的等候線的等候量* w" X, q4 P+ ^# d, R
treenode current = ownerobject(c);# J( q5 R/ |/ ?
treenode  textnode = parnode(1);
0 A' d- R) p+ T8 K3 ?/**Display Text*/
% E7 H: c. w+ c4 d4 c% o1 I2 O7 h; G/ z) p$ B- a5 Z2 ?
/** \nText: */
2 P" W2 F1 l; H# ?string text = /**/"Hello"/**/;
! {" e- A* ~5 P( }0 ftreenode queuevar1 = node("/Queue2/objectinfo/CurContent", model());  k. [" O3 o4 m7 ]3 b0 b( T# l
double curcontent = getnodenum(queuevar1);# @  w4 ]) \% J6 {9 C& }, r
" D2 y" ?* D" Q6 e  Y$ ~
setnodestr(textnode,numtostring(curcontent));7 R, L+ X* a1 E& |/ L. F

- M0 l6 h  M  k0 O* `' ?. jreturn 1;! A! J: c! Z6 G" \
我知道以下指令可以顯示等候線量,但我仍想知道如何得到tree中的數值& K/ x2 f" b) ]. O5 r
double curcontent = getnodenum(queuevar1);
0 [/ ?8 R  }" k7 Y4 fdouble zz = content(node("/Queue2",model()));
- p. Q9 x, ]9 y, k! Z- i* Xsetnodestr(textnode,numtostring(zz));
作者: domcylai    时间: 2012-12-5 09:05
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。& o2 U3 S0 e% I
. `- w7 p8 Q. W) k" V
我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都可以在Model tree 中找到對應的節點,  但其實有更簡單的獲得這些值的方法,不僅限于node()函數,也可以使用其他命令。
8 J- A. a2 i' p& [
' L$ q. S  e* T! S6 w6 j2 ]0 b* Q請下載模型(Version6.0.2Chinese)參考:0 i8 l1 R' {9 d9 V$ Z& B
[attach]1010[/attach]6 Z: n' x, M* D3 k( @

5 x1 |1 {0 a! G4 c關於tree的操作有很多內容,可以參考下面幾個帖子:
4 W3 f9 e0 k& G6 k; p  {" Ihttp://flexsim.asia/viewthread.php?tid=2956&extra=page%3D1! V" T* `( _4 ~- P( y- K
http://flexsim.asia/viewthread.php?tid=2898&extra=page%3D1
作者: ccharlie    时间: 2012-12-5 14:34
本帖最后由 ccharlie 于 2012-12-5 14:37 编辑
4 E( @' j' r1 [& z% s3 g, `% }5 |
得到tree中的值有很多種方法,樓主不妨到論壇上看看其他帖子。! n6 D# P$ ^) D  Q9 ^

" z/ w# G) g* y2 _我做了一個小模型,用可眎化工具“佈告板”功能顯示實體的某些屬性: 暫存區的當前容量CurContent和處理器的平均停留時間AvgStaytime。這兩個數值都 .... d7 B7 F; Y+ \+ f! w8 j* {
domcylai 发表于 2012-12-5 09:05
; x2 z1 i+ ^7 Q4 n! Y5 a  ~2 \
感謝domcylai的回應,剛剛研究了domcylai的模型,他是用stats_staytimeavg這個屬性來獲取個體在機台的平均停留時間,此種方法需要事先先知道stats_staytimeavg這個屬性值,而我想知道的是有沒有方法可以直接抓取tree鍾某個節點的值並顯示在visualtools中,例如queue中的objectinfo有3個變數,有沒有方法可以直接抓出例如maxcontent的值。/ M* M$ X- _' q& d0 q8 j' |
[attach]1019[/attach]
作者: ccharlie    时间: 2012-12-5 14:49
3# ccharlie : m0 W# K* ~; k- D% G$ {8 X
又例如另外一個例子,我做了一個模型用來計算運作中模型的再製品量,wip是globaltable,在tree中也找的到,當然可以用gettablenum("wip",1,1)來取得數字,但如果要從tree中直接抓取數字不曉得有沒有別的方法,也請各位先進幫忙,感謝!
2 ]/ P. {1 ]1 d6 {, I+ M  |* q; h  ~/ M+ z
[attach]1021[/attach][attach]1020[/attach]
作者: domcylai    时间: 2012-12-5 15:29
4# ccharlie
2 `: d, _' V/ g7 P3 a2 v. R- H+ F- i5 n3 w* p1 E3 J( A0 k
$ g! |5 y' n6 |; _# x" ~7 o( l
原理相同:   
$ |9 r. B# b6 \: y0 ^treenode thenode = ...;         //获得想要的节点变量
1 g* a  U/ D3 m* Gint value = getnodenum(thenode);         //使用函數獲得節點的值,并用正確的類型標示符返回到腳本中
作者: ccharlie    时间: 2012-12-5 15:38
5# domcylai # d2 [6 o5 V8 C6 d. r) I

5 Y6 P* h: U" R4 v) z無奈啊,還是失敗
, i; q# Y3 g7 [我使用0 @- o# c" {$ T8 C1 k
treenode current = ownerobject(c);& k! Z/ c# `7 P# D$ p0 F# [
treenode  textnode = parnode(1);
3 P  o$ a1 ~! K- Z% Xtreenode thenode = node("/Tools/GlobalTables/wip/variables/data/Row 1/Col 1",model());
& q; A1 j8 d0 m5 P; n# \1 V* |8 e; x* d
/**Display Text*/
9 N; Q$ c9 [( R
5 }& H0 L( J1 Y9 c) U: @5 [/** \nText: */
. E1 ?5 P% \4 n( b, M3 R//string text = /**/"Hello"/**/;( m8 l! O' ]1 j2 E6 U5 D
int wip = getnodenum(thenode);
! A, F1 l5 t/ W7 z. Ssetnodestr(textnode,numtostring(wip));2 y5 ?6 G3 V9 u0 \" j4 f
% k: r1 @7 K, W- i. Q
return 1;  q6 D6 `) w1 c5 S1 A6 Z; ^
但顯示出來的wip量一直都是0  \, R! L! V7 i5 L: N

9 i, V& d. }3 _  S! ?* g" P* R8 [1 ^( F, v% G
[attach]1022[/attach]* p: U6 f" e* |& m8 U! B
[attach]1023[/attach]




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