|
实体参量
$ O5 O/ ?# A6 P+ w: f% u: r下列的命令和存取变量在Flexsim中被用作实体引用。
% l) L/ S9 d: U u( [: l, ?0 |4 a变量current和item
' {2 Y- y* i+ a8 M2 H( K9 P* t$ i1 m6 n• current - 变量current是当前资源实体的引用。通常可以是下拉菜单中的一个存取变量。
. [9 N* f- f1 H5 P. I% e* Y• Item - 变量item是某触发器或函数所涉及的临时实体引用。通常可以是下拉菜单中的一个存取变量。 , w* A" u& }6 k# O/ S1 ^
引用命令, N! O, Z& }& g1 F( M$ B
命令(参数列表) 说明 示例* ?: v' h+ {. F# w4 G, Y
first(node) 返回的是所传递的实体中排序第一的对象的引用 first(current)
5 |" t) l5 w/ R* Y8 [6 t4 @last(node) 返回的是所传递的实体中排序倒数第一的对象的引用 last(current)
$ r3 G# U5 p3 [: c4 L( B6 }! {4 N( `9 Vrank(node,ranknum) 返回的是所传递的实体中某给定排序的对象的引用 rank(current,3)
# H7 e& i' K" E- W/ U5 S4 T( ~, cinobject(object,portnum) 返回的是与所传递的实体的输入端口号相连的对象的引用 inobject(current,1)) U' |- b+ }& ^5 {5 k
outobject(object,portnum) 返回的是与所传递的实体的输出端口号相连的对象的引用 outobject(current,1)" i4 B" L% {: z( a
centerobject(object,portnum) 返回的是与所传递的实体的中间端口号相连的对象的引用 centerobject(current,1)
2 P, N0 T( s- s7 O) e& Z* knext(node) 返回的是所传递的实体中排序下一个对象的引用 next(item). y" Q7 U; w7 N; h7 d! l
; t3 n" }/ b5 I8 s* ^, b' s X* s; w0 I- N; q5 z- C; a4 K1 I( h
4 ^, J9 m$ {7 T0 s2 U$ E) C; J3 j
3 I( O' n! M, U, E; D- P$ S6 i2 K9 c
/ G* K( }6 \3 B2 ^
; R5 e* p4 ~3 c1 r7 J" i2 h* s& e& b1 y$ m" v; M3 K6 C, V
5 h$ [4 d4 `# J" F; Q! ]8 u/ }- n
' r) D. H+ |! O j- I* r% Q9 q' H- Z2 Z; u: l0 a' K
) |( W, K; j0 G: u4 \" F' R% J, A9 o- |3 |. F3 M
: X6 w/ k% n( q6 Y2 g. `& x3 A; J7 u+ x0 h! j8 X* O
0 A9 G$ q! B4 [% `
6 ^1 b* L& d9 ~0 f" {9 U, d7 l
实体属性7 j7 t/ F3 D1 i: Y/ e; h9 t
命令(参数列表) 说明% Y. z% v$ j6 z' `
getname( object ) 返回实体的名称
# ^% @. w2 B( wsetname( object, name ) 设定实体的名称
, I& R! L9 z6 u5 x9 jgetitemtype( object ) 返回实体中临时实体类型的值) ?) M1 l' J! v' }- L3 q3 G9 ~
setitemtype( object, num) 设定实体中临时实体类型的值
( U J$ [. Z; j2 esetcolor( object, red, green, blue ) 设定实体的颜色5 r S! ], a( K' ] u# l
colorred( object ) blue,green,white... 设定实体的颜色为红、蓝、绿、白等& `2 k( ~+ E) n* j5 t$ W
setobjectshapeindex ( object , indexnum ) 设定实体的3D形状
/ `( _1 o5 R& V" U+ e, P5 _. U. y9 y% Wsetobjecttextureindex ( object , indexnum ) 设定实体的3D纹理4 E5 f* W& P& A, E
setobjectimageindex ( object , indexnum ) 设定实体的2D 纹理,通常只在平面视图中使用- E- w1 ^2 w$ d p3 W' G! q' W# y
实体空间属性* E, a, C, |: u0 d
命令(参数列表) 说明
1 C" P, P$ r: c8 w
2 T# e2 ~0 T7 O5 p K* V- g4 h& [xloc( object ) yloc( object ) zloc( object ) 这些命令返回实体x、y、z轴向的位置
9 X$ U C/ @2 e6 U: [1 Usetloc( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的位置
/ @+ }, }: V+ s- G : v; |% S: I& O; @/ J1 A+ N
xsize( object ) ysize( object ) zsize( object ) 这些命令返回实体x、y、z轴向的尺寸大小
$ [, ~& n' v8 R& K3 Asetsize( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的尺寸大小
* B2 X; y+ V# z. N7 Z' S
4 u, P: M, T/ }( j Axrot( object ) yrot( object ) zrot( object ) 这些命令返回实体围绕x、y、z轴向的旋转角度4 `& W6 Z' r5 D
setrot( object, xdeg, ydeg, zdeg ) 此命令设定实体围绕x、y、z轴向的旋转角度
3 {! ]8 o) l* M8 Z- q
0 R' l$ ?# Z1 Z$ W- w
! @! o; m) B+ h+ u& v1 v: b5 E% o2 `* ~
$ M; M9 n5 ^4 W7 Q% [0 ?( _4 h$ m6 m8 y: w
# B. a/ b3 S% V/ z* R+ I( I' w. k+ X" c( F, W# n9 R- m) A
& z7 W! c# B. l2 G7 b2 l( [ {; e$ r* ?/ {& Y* c% P
" C! W% \7 N* ]$ h# F* ]" A
$ ?- y7 V( I3 A) o4 I ~
. ^2 Y+ D, D# U- E% ]( h
/ r! j7 F! s# r7 [, x# X1 j" W( O o+ V. g1 k! E; h
; ?* U% G9 l$ _$ i% D! \9 s: Y: \实体统计值, a( n: `, \1 u# ?* D
命令(参数列表) 说明
7 W3 O5 k. F# x3 i4 |. l! Ncontent( object ) 返回实体当前数量$ D( x* h- q; r* P
getinput( object ) 返回实体的输入统计+ F6 I: ?& g+ p
getoutput( object ) 返回实体的输出统计) y [, a/ ]1 e* v0 u5 A- C
setstate( object, statenum ) 设定实体的当前状态
& }- x+ C) w6 R6 K% D1 r+ dgetstatenum( object ) 返回实体的当前状态4 E6 c& G6 c. B* U$ x3 _: _
getstatestr( object ) 以字符串返回实体当前状态
2 u* J' K& Y8 Egetrank( object ) 返回实体的排序$ U! g. w4 T& W8 U+ V
setrank( object,ranknum ) 设定实体的排序+ F7 Z4 M0 L7 S; {. z3 b2 F& Y7 E5 z
getentrytime( object ) 返回实体进入到当前所在实体中的时刻8 \# T" _2 ^( {7 A' G
getcreationtime( object ) 返回实体的创建时刻1 e( c% t6 P& Z' j5 Q* K1 W8 S5 B
实体标签
0 v7 T" p P: y4 t7 ?# D% V m+ `命令(参数列表) 说明1 H: D- V; \3 `( n4 Y/ W
getlabelnum( object, labelname ) getlabelnum( object, labelrank) 返回实体的标签值' n3 F9 L ` |8 ?- A
setlabelnum( object, labelname , value ) setlabelnum( object, labelrank , value ) 设定实体的标签值
& b/ Y7 o" B0 b1 Wgetlabelstr( object, labelname ) 获得实体标签的字符串值
5 f6 ~" q, ~$ E' \. [) nsetlabelstr( object, labelname , value ) setlabelstr( object, labelrank , value ) 设定实体标签的字符串值
6 F5 n( K/ h4 U' K0 b1 Llabel( object, labelname ) label(object, labelrank) 返回一个作为节点的标签的引用,此命令常用在把标签当作一个表来使用的情况下。
2 _. C2 l" J9 r: W. B$ ?表
! |$ J4 R# v9 t# a; g命令(参数列表) 说明1 ], t. h5 Y# _* d. b) c( _ ]5 R
gettablenum( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的值
( L7 q6 [5 S. ]: d# X- xsettablenum( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的值
, k7 Y* m2 d8 f' x' e/ A8 l$ [gettablestr( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的字符串值7 w$ @' n- q' g1 ^ S. R0 O& ]
settablestr( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的字符串值, F4 E# E5 g( ?5 ?( A( M
settablesize( tablename / tablenode / tablerank, rows, columns ) 设定表的行列数大小: M3 l4 ^+ p* I( l4 z1 Z# j+ Q
gettablerows( tablename / tablenode / tablerank) 返回表的行数% v4 T% H& Q$ X. K/ h" E
gettablecols( tablename / tablenode / tablerank) 返回表的列数
# E4 ^ ^3 `! u8 J" V2 [+ w5 iclearglobaltable( tablename / tablenode / tablerank) 将表中所有数字值设为0
6 Y. r& ]7 u7 r6 p+ _9 @1 d% R5 t实体控制
j1 @$ \9 f9 M- |* I命令(参数列表)) 说明- L8 v4 M/ {( K" m1 }- ~& U
closeinput( object ) 关闭实体的输入端口5 K5 u" B* j, ^, a
openinput( object ) 重新打开实体的输入端口. N B- g" }+ V% ]3 }
closeoutput( object ) 关闭实体的输出端口
% d) A2 b H( [1 l) ~7 z" eopenoutput( object ) 重新打开实体的输出端口
; `7 q' c! z7 j9 xsendmessage( toobject, fromobject, parameter1, parameter2, parameter3 ) 触发实体的消息触发器
$ k9 T+ ~9 E% I4 P. N" E- d1 J" ]senddelayedmessage( toobject, delaytime, fromobject, parameter1, parameter2, parameter3 ) 在一段特定时间延迟后触发实体的消息触发器
4 g5 L. _; u7 h# z: X6 y9 Hstopobject( object, downstate ) 无论实体在进行什么操作,都令其停止,并进入指定的状态$ v. h" | G0 S4 S, L; [8 V1 v
resumeobject( object ) 使实体恢复其原来的无论什么操作
5 {/ _2 |3 w, g- kstopoutput( object ) 关闭实体的输出端口,并累计停止输出的请求
9 R3 D) T5 J% Q5 Rresumeoutput( object ) 在所有停止输出请求都恢复以后,打开实体的输出端口$ I1 g' e* d/ X6 G: g4 O7 L
stopinput( object ) 关闭实体的输入端口,并累计停止输入的请求
! {2 c( `5 p) ]5 z: L* eresumeinput( object ) 在所有停止输入请求都恢复以后,打开实体的输入端口* \6 Y' e2 D+ Y4 G I* E
insertcopy( originalobject, containerobject ) 往容器里插入新的实体复制品' p* m, Q7 \8 u6 k) ^+ a6 e
moveobject( object, containerobject ) 将实体从当前容器移到它的新容器中$ W7 ^* B: f% g+ i3 _. o
高级函数% E8 p' `3 Q m; C( r6 v
实体变量
$ A( w5 [- O: V; h4 p9 |1 z6 B0 H' f命令(参数列表) 说明- }7 H, q4 M0 _! o
getvarnum( object, “variablename” ) 返回给定名称的变量的数值9 O& Y4 F6 H* Z: [4 Z; e
setvarnum( object, “variablename” , value ) 设定给定名称的变量数值
) o7 t7 [1 ^* D. Z, ~getvarstr( object, “variablename” ) 返回给定名称的变量的字符串值
; a, O! Y; D/ Psetvarstr( object, “variablename” , string ) 设定给定名称的变量的字符串值8 ]) m$ }3 ^' D* Q
getvarnode( object, “variablename” ) 返回一个节点,作为指向给定名称的变量的引用
/ w* D# v+ U, t$ ?6 c任务执行器控制
# }$ W% n3 H) w* U; c参见任务序列,可以获得更多有关控制任务执行器的信息。+ p+ `( m, `) X% \, F
提示和界面输出
: ]* [1 e$ p; i/ y& P, u命令(参数列表) 说明) C8 g! m9 C. x* g3 I0 _9 N' ]0 Y
pt( text string ) 向输出控制台打印文本; G h* C6 C2 b+ q" P+ X
pf( float value ) 向输出控制台打印浮点数值
5 v3 t6 I- I; epd( discrete value ) 向输出控制台打印整数数值
" c, H% @. G- q. h7 i$ hpr( ) 在输出控制台中建新的一行
( K& z% s2 f; c5 B/ L- e+ G8 O! t ~msg( “title”, “caption” ) 打开一个简单的“ 是、否、取消”消息框
- x& z$ m0 [$ L6 j b3 P: suserinput( targetnode, “prompt” ) 打开一个可以设定模型节点值的对话框2 P$ Q7 i7 E8 P+ [% W- \% {0 z; t
concat( string1, string2, etc. ) 合并两个或多个字符串
' q, D' e5 F. ~+ H% V& ?5 O更多高级函数8 T+ l' O2 G. Y1 B
下面是可能使用到的更多高级函数。这里没有提供参数列表,参见命令集可获得更多信息。
7 [" ]3 I- k3 L* a% i节点命令 - node(), nodeadddata(), getdatatype(), nodetopath(), nodeinsertinto(), nodeinsertafter(), getnodename(), setnodename(), getnodenum(), getnodestr(), setnodenum(), setnodestr(), inc();$ m# N" \$ h \5 ^- D
数据交换命令 - stringtonum(), numtostring(), tonum(), tonode(), apchar();& u2 x B. m7 L% Z
节点表命令 - setsize(), cellrc(), nrows(), ncols();/ L! O6 b3 x& e8 ?5 ?
模型运行命令 - cmdcompile(), resetmodel(), go(), stop();
+ e+ p! L$ X X7 F) k% r* ^3D个性化绘制代码命令 - drawtomodelscale(), drawtoobjectscale(), drawsphere(), drawcube(), drawcylinder(), drawcolumn(), drawdisk(), drawobject(), drawtext(), drawrectangle(), drawline(), spacerotate(), spacetranslate(), spacescale();
$ p% @7 Y- J+ k2 Y- dExcel命令 - excellaunch(), excelopen(), excelsetsheet(), excelreadnum(), excelreadstr(), excelwritenum(), excelwritestr(), excelimportnode(), excelimporttable(), excelclose(), excelquit();( ?1 ^2 H2 {2 L# j9 b& ?! I) c1 \
ODBC命令 - dbopen(), dbclose(), dbsqlquery(), dbchangetable(), dbgetmetrics(), dbgetfieldname(), dbgetnumrows(), dbgetnumcols(), dbgettablecell(), dbsettablecell();
5 ~' T# d7 D7 f运动学命令 - initkinematics(), addkinematic(), getkinematics(), updatekinematics(), printkinematics() |
|