|
实体参量/ ?, t& m4 q9 o9 F! s7 G
下列的命令和存取变量在Flexsim中被用作实体引用。
( ~$ Q; X* U' ^变量current和item" c2 m9 e0 o6 y. u1 h
• current - 变量current是当前资源实体的引用。通常可以是下拉菜单中的一个存取变量。 2 Z/ k* d0 N8 ?7 f
• Item - 变量item是某触发器或函数所涉及的临时实体引用。通常可以是下拉菜单中的一个存取变量。
. p6 V; P1 \. S! O引用命令
1 W1 | O4 r e" U& I% C1 L! E* E命令(参数列表) 说明 示例
" x7 a0 U6 I' efirst(node) 返回的是所传递的实体中排序第一的对象的引用 first(current)
/ B- t2 r6 A$ k. M: M- @& klast(node) 返回的是所传递的实体中排序倒数第一的对象的引用 last(current)6 ~- a) C! p3 q/ L: i; R
rank(node,ranknum) 返回的是所传递的实体中某给定排序的对象的引用 rank(current,3)
4 ~2 C% B4 D3 y. @" R3 [2 W; ?inobject(object,portnum) 返回的是与所传递的实体的输入端口号相连的对象的引用 inobject(current,1)
& ]0 v& b; L) m, c2 ioutobject(object,portnum) 返回的是与所传递的实体的输出端口号相连的对象的引用 outobject(current,1)8 `1 k n# l7 _, k6 E E
centerobject(object,portnum) 返回的是与所传递的实体的中间端口号相连的对象的引用 centerobject(current,1)
' Y+ H6 e+ h1 ~next(node) 返回的是所传递的实体中排序下一个对象的引用 next(item)
9 q+ [0 x* g- l3 \7 \4 }1 \1 e3 x/ K( f& b7 F2 ]5 S' n
: g' @8 q$ n% _6 K) \! y$ r* k
8 i7 d9 z0 A* J: F# D: G( Y5 U0 x/ G
$ i% h- P9 V0 v/ { G2 _" Z9 Z# A& ?5 z( h6 r
$ S# }' ^2 G2 [* ]9 h4 D7 P7 I( [3 E+ S
, y+ g d1 o2 O* H
|. t$ y' h* b, S! F" y
) d# K6 O- w. l# g5 Q" G. ]- N0 U/ S$ y9 h! Q4 V6 K2 {
: r- s d* a% k0 l
( t8 {/ ~% b: d8 t: w s
" f) ?/ I: M( ?# s8 z$ U( B! Z
! k. o4 j0 D. J8 Z# j4 e8 t- ^
- d9 `' {1 \* `- X4 j实体属性- o+ q) U1 y( O+ C
命令(参数列表) 说明
8 J( O' Y4 d5 F' Q% |% mgetname( object ) 返回实体的名称
0 J( w; Z- v* P+ y0 X$ Ksetname( object, name ) 设定实体的名称. I7 J2 L9 I1 T+ P5 @
getitemtype( object ) 返回实体中临时实体类型的值4 R8 Q4 w, m, s
setitemtype( object, num) 设定实体中临时实体类型的值% y: A$ y( ^* k1 ?$ G+ Y
setcolor( object, red, green, blue ) 设定实体的颜色# }1 W3 z$ P; k- Z- h5 O# }/ {
colorred( object ) blue,green,white... 设定实体的颜色为红、蓝、绿、白等" c- x `; Z# v3 h6 f5 m& S
setobjectshapeindex ( object , indexnum ) 设定实体的3D形状
( K& l3 J2 ]4 isetobjecttextureindex ( object , indexnum ) 设定实体的3D纹理 T, u. V7 n% r% b/ i
setobjectimageindex ( object , indexnum ) 设定实体的2D 纹理,通常只在平面视图中使用
( e9 M5 L! Y) n$ I- n+ h: w实体空间属性6 M. k5 |; ` k" \! v& ?
命令(参数列表) 说明' d- ^' l M* P" z) w0 o
4 Q. ? Q2 j2 w- K! O3 n
xloc( object ) yloc( object ) zloc( object ) 这些命令返回实体x、y、z轴向的位置
, e* A2 c" h( U( @! asetloc( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的位置0 U1 G$ b' ~! x! G: J$ u
# p: R7 ]# I! n+ Q, Wxsize( object ) ysize( object ) zsize( object ) 这些命令返回实体x、y、z轴向的尺寸大小
3 E" h/ g k$ \5 B( F5 o1 D Dsetsize( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的尺寸大小( M& L. H; N; t( A
4 j% \: N4 A, }, v
xrot( object ) yrot( object ) zrot( object ) 这些命令返回实体围绕x、y、z轴向的旋转角度
6 e, s: x& R' ^% @setrot( object, xdeg, ydeg, zdeg ) 此命令设定实体围绕x、y、z轴向的旋转角度& w" f7 ]+ d5 ~. C
' ]( B: T" W1 f5 w1 u: Z, `- `
4 N" d' Z& b9 _3 h! k
$ m4 J* o, K8 `3 ]% v- L( f
0 q$ z% t1 r! C. Z4 P# ^( W4 W, [ H) ^- R- H% e
: q0 j0 n) o1 D. l3 ^
6 _9 Z6 b" M- i" Y
8 c2 m) S' n+ l6 ?3 x P2 i
1 z0 a4 b) N2 f/ z/ z3 I, u Y x0 ~* u0 C; N& f
! {9 |$ z7 a* c% |$ e
% m d Z; h0 e$ m V6 U2 ^1 P3 V
$ H$ K) Q, e) y; w# I0 z J- b* b+ u1 r& @
* ]. q, k3 N& w/ Q- r$ r; X实体统计值
5 o$ b" G9 M2 g' r: f# t2 Q命令(参数列表) 说明 s2 e5 W+ K: W! `8 Z; Y
content( object ) 返回实体当前数量
J }7 g1 U& R, ?" V% E; ^getinput( object ) 返回实体的输入统计( c& C* c+ c( K- t
getoutput( object ) 返回实体的输出统计
( M$ ~* i9 ], i/ y- q8 R/ J8 Nsetstate( object, statenum ) 设定实体的当前状态
- K# A$ P: @3 j: N* Sgetstatenum( object ) 返回实体的当前状态- v0 H4 W/ ~0 j; A& e( \
getstatestr( object ) 以字符串返回实体当前状态& S8 I& K6 k7 t
getrank( object ) 返回实体的排序
* x- w' r2 g* s( F5 T1 b" C# d( vsetrank( object,ranknum ) 设定实体的排序* q4 G+ Q$ _0 w1 [
getentrytime( object ) 返回实体进入到当前所在实体中的时刻
$ o2 F' t* b- }0 }' Fgetcreationtime( object ) 返回实体的创建时刻
0 _( D/ @/ n$ x* O# g6 l8 ^实体标签/ M4 R; {" t+ n0 T
命令(参数列表) 说明2 @* c2 |+ B9 x- k2 d, i
getlabelnum( object, labelname ) getlabelnum( object, labelrank) 返回实体的标签值
c5 G2 n2 K( o7 p& ~setlabelnum( object, labelname , value ) setlabelnum( object, labelrank , value ) 设定实体的标签值
8 _6 m; u+ |/ D9 g2 I# f' Ygetlabelstr( object, labelname ) 获得实体标签的字符串值2 H6 V, Q8 [5 N5 W. P1 M# \
setlabelstr( object, labelname , value ) setlabelstr( object, labelrank , value ) 设定实体标签的字符串值
. K2 J: u! R! A/ y; Llabel( object, labelname ) label(object, labelrank) 返回一个作为节点的标签的引用,此命令常用在把标签当作一个表来使用的情况下。
/ X h8 w! F) F6 {4 T表
( I- q: z9 p5 ]+ J. R! c n命令(参数列表) 说明' p( [5 v1 G0 F- b# O8 G
gettablenum( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的值% j# C7 q/ y% O$ X, ?
settablenum( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的值
$ m$ X3 X1 b1 Y9 m4 X9 b8 N4 V- Qgettablestr( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的字符串值
3 |" s' H( i6 n* Q! esettablestr( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的字符串值
/ f7 @% U! n9 C5 ]' b% {settablesize( tablename / tablenode / tablerank, rows, columns ) 设定表的行列数大小( T' l7 m7 H! w$ M' Q8 U
gettablerows( tablename / tablenode / tablerank) 返回表的行数" c, m, T) R, Z3 s
gettablecols( tablename / tablenode / tablerank) 返回表的列数
3 w; P! `8 ~2 }' Q! pclearglobaltable( tablename / tablenode / tablerank) 将表中所有数字值设为09 H) @; ]$ `) R# Q) @
实体控制' A. B5 v2 } Y8 H2 l
命令(参数列表)) 说明
+ F8 C/ G& Y2 E4 E R3 ]closeinput( object ) 关闭实体的输入端口/ b3 H- I- f4 ?
openinput( object ) 重新打开实体的输入端口: `2 w5 \& u. H z
closeoutput( object ) 关闭实体的输出端口) R3 i4 j3 B. ~& j/ A/ Z
openoutput( object ) 重新打开实体的输出端口; [& H1 |2 w3 p6 Y4 V" p% ~/ {/ J
sendmessage( toobject, fromobject, parameter1, parameter2, parameter3 ) 触发实体的消息触发器% Q: D' [$ \. r7 H% i% f; [
senddelayedmessage( toobject, delaytime, fromobject, parameter1, parameter2, parameter3 ) 在一段特定时间延迟后触发实体的消息触发器
/ l7 L, ?! i. p# i$ ^( x" t2 Z0 Xstopobject( object, downstate ) 无论实体在进行什么操作,都令其停止,并进入指定的状态' |4 p: W) u+ p6 @
resumeobject( object ) 使实体恢复其原来的无论什么操作" u ~% f- d$ R6 ~# E2 i. D3 @
stopoutput( object ) 关闭实体的输出端口,并累计停止输出的请求# N% K3 \; N% y7 y! m+ u
resumeoutput( object ) 在所有停止输出请求都恢复以后,打开实体的输出端口, D6 n" t% t" |" T0 z
stopinput( object ) 关闭实体的输入端口,并累计停止输入的请求
: ^6 I$ f1 z7 A! S. T# _resumeinput( object ) 在所有停止输入请求都恢复以后,打开实体的输入端口
/ M) X4 g, @; _8 dinsertcopy( originalobject, containerobject ) 往容器里插入新的实体复制品( A, v2 W' S7 Y0 @
moveobject( object, containerobject ) 将实体从当前容器移到它的新容器中
6 a& t' {' n: T高级函数
5 P" J2 Z3 W7 G+ }6 p6 Z实体变量; p3 p- O4 |% l, y9 L. _
命令(参数列表) 说明
4 u7 m* Y0 D# Z0 qgetvarnum( object, “variablename” ) 返回给定名称的变量的数值
L1 E, ]% y! @setvarnum( object, “variablename” , value ) 设定给定名称的变量数值1 \8 S5 q J1 D! c
getvarstr( object, “variablename” ) 返回给定名称的变量的字符串值
! d: A) @5 m e2 _+ o- @* rsetvarstr( object, “variablename” , string ) 设定给定名称的变量的字符串值% M7 p7 I: C2 H+ |+ s
getvarnode( object, “variablename” ) 返回一个节点,作为指向给定名称的变量的引用
6 U8 z+ Z: P% i5 [9 V2 p任务执行器控制& ` }- y% r, G! ]
参见任务序列,可以获得更多有关控制任务执行器的信息。! F1 t7 ^1 ~( K+ @# X; c3 x
提示和界面输出' V% w' U8 v, t3 K1 k0 Y6 x
命令(参数列表) 说明
- b& F& {8 A9 |7 U. N' r9 m+ \" k( \pt( text string ) 向输出控制台打印文本
3 ~* ?3 p" O" F& }/ ]5 Gpf( float value ) 向输出控制台打印浮点数值8 ?; _- @) G6 F6 w# \
pd( discrete value ) 向输出控制台打印整数数值
) C- u- K! R! Q# x9 `/ N; K" c0 ?/ ]pr( ) 在输出控制台中建新的一行
0 W6 z( q9 J# K" c. f# Q1 lmsg( “title”, “caption” ) 打开一个简单的“ 是、否、取消”消息框 f+ t1 x% p) G, b
userinput( targetnode, “prompt” ) 打开一个可以设定模型节点值的对话框2 H0 z3 Q& S- Z$ Q; W* Z3 r
concat( string1, string2, etc. ) 合并两个或多个字符串0 Y1 j' |- C6 _- X4 e
更多高级函数4 k) h7 T k% X, A- l
下面是可能使用到的更多高级函数。这里没有提供参数列表,参见命令集可获得更多信息。
) k! a4 G0 D5 c8 {2 p# V9 ~节点命令 - node(), nodeadddata(), getdatatype(), nodetopath(), nodeinsertinto(), nodeinsertafter(), getnodename(), setnodename(), getnodenum(), getnodestr(), setnodenum(), setnodestr(), inc();) V' ?! E1 N9 [& ^
数据交换命令 - stringtonum(), numtostring(), tonum(), tonode(), apchar();
% _5 l# o+ h; i# m: W; j# C' P节点表命令 - setsize(), cellrc(), nrows(), ncols();4 c5 W) ~- R, _. P
模型运行命令 - cmdcompile(), resetmodel(), go(), stop();
8 a! x2 ^' g6 \- A: ^) E. C3D个性化绘制代码命令 - drawtomodelscale(), drawtoobjectscale(), drawsphere(), drawcube(), drawcylinder(), drawcolumn(), drawdisk(), drawobject(), drawtext(), drawrectangle(), drawline(), spacerotate(), spacetranslate(), spacescale();
+ u; u% e- ? j$ R0 a3 H% \5 s, m2 uExcel命令 - excellaunch(), excelopen(), excelsetsheet(), excelreadnum(), excelreadstr(), excelwritenum(), excelwritestr(), excelimportnode(), excelimporttable(), excelclose(), excelquit();
* l# o x5 O# c" Z, z( u5 tODBC命令 - dbopen(), dbclose(), dbsqlquery(), dbchangetable(), dbgetmetrics(), dbgetfieldname(), dbgetnumrows(), dbgetnumcols(), dbgettablecell(), dbsettablecell();
* O! a" k: Q3 I9 M; t& D v运动学命令 - initkinematics(), addkinematic(), getkinematics(), updatekinematics(), printkinematics() |
|