|
实体参量2 P$ Z* s* R. a3 ~2 v8 h
下列的命令和存取变量在Flexsim中被用作实体引用。+ C- \0 X o# Z. D
变量current和item
7 p8 [& L' G) O& j0 g* V• current - 变量current是当前资源实体的引用。通常可以是下拉菜单中的一个存取变量。 0 j5 q/ }! H% l
• Item - 变量item是某触发器或函数所涉及的临时实体引用。通常可以是下拉菜单中的一个存取变量。 @# B: h# n, n1 g+ A& ~. R3 J
引用命令. v" V2 o9 Y2 Y' F1 K
命令(参数列表) 说明 示例. k/ O9 a9 }. J! u- b2 Z
first(node) 返回的是所传递的实体中排序第一的对象的引用 first(current)
5 C! q3 _4 W! _6 N) `% zlast(node) 返回的是所传递的实体中排序倒数第一的对象的引用 last(current)
# t! l' Y3 c( K8 }" zrank(node,ranknum) 返回的是所传递的实体中某给定排序的对象的引用 rank(current,3)
6 ^0 k" J: ?& \/ jinobject(object,portnum) 返回的是与所传递的实体的输入端口号相连的对象的引用 inobject(current,1)# ]% J; N# I/ D, f6 ?. [4 q8 E
outobject(object,portnum) 返回的是与所传递的实体的输出端口号相连的对象的引用 outobject(current,1)
4 ?& c. G+ D4 B- G7 o( w4 h0 tcenterobject(object,portnum) 返回的是与所传递的实体的中间端口号相连的对象的引用 centerobject(current,1)
! V" @* R7 w, o- W2 `( ^% Q) F5 Ynext(node) 返回的是所传递的实体中排序下一个对象的引用 next(item)0 S z* ?2 y4 X6 i, R E$ P3 z- u
$ W* k- G. N6 _6 {! X& t
" _1 G S# J: V1 D2 s+ ~& ?
9 U( @' I( V6 e
, n7 o4 M2 N E8 [$ D9 X( k1 R& r1 c8 C$ h/ q
' G+ A2 I4 ^) m: H& ]* z/ y+ M+ W2 v' y) F" l
/ L3 Y, v" r5 F& k" n/ q
* l; I4 A' A! f1 j7 ]2 b) R" O
9 ^& f8 R& q: ]3 T! ^
3 {3 e! Y/ b8 S7 z) P9 V: {; l+ f2 r! _4 z8 r5 p) q0 C# o4 w
5 H7 A" m' t0 d
. K5 W9 C4 k: ]3 e7 z" r/ a7 k- W' v8 O+ o, ?( ~6 A/ U8 x/ q1 c
5 K/ g' J v3 h! N) Q1 j
实体属性
+ [/ y, I0 O) A3 M命令(参数列表) 说明) P/ W! ^3 r& a) J0 {
getname( object ) 返回实体的名称2 i& T3 ]% e R% d( G* n+ I2 m
setname( object, name ) 设定实体的名称' {: t5 M# I3 ]3 I1 K
getitemtype( object ) 返回实体中临时实体类型的值
. C1 ]8 l7 a nsetitemtype( object, num) 设定实体中临时实体类型的值
, Y+ k' C5 t8 Q* }7 Xsetcolor( object, red, green, blue ) 设定实体的颜色, _& s/ Q: k0 h* |7 D" Z$ Z( y
colorred( object ) blue,green,white... 设定实体的颜色为红、蓝、绿、白等
, P7 B3 Z' A6 U+ c: `: gsetobjectshapeindex ( object , indexnum ) 设定实体的3D形状
+ M; F) a3 Y: msetobjecttextureindex ( object , indexnum ) 设定实体的3D纹理
! z6 g2 U1 I2 u. e, N( r% \setobjectimageindex ( object , indexnum ) 设定实体的2D 纹理,通常只在平面视图中使用
}+ ~4 V& L: y4 B+ v5 j实体空间属性; s5 ]& C; n' z! U$ a, \ i2 X
命令(参数列表) 说明
& O+ ^, f/ }5 B% Y/ T
" R9 h0 e9 R$ M: l' N: o3 {3 Cxloc( object ) yloc( object ) zloc( object ) 这些命令返回实体x、y、z轴向的位置
. W4 ^8 q" V, r4 s+ I Wsetloc( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的位置& X- \3 q H( T& I- O1 r# o+ I
2 ~$ S8 f+ a" H6 f8 b% s1 ?xsize( object ) ysize( object ) zsize( object ) 这些命令返回实体x、y、z轴向的尺寸大小8 a& S. ~: l2 Q8 |" C* y0 C6 t J
setsize( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的尺寸大小: b4 l2 K6 W5 E& _. Z
3 Z9 a. j1 Q% s4 R1 J- N# ixrot( object ) yrot( object ) zrot( object ) 这些命令返回实体围绕x、y、z轴向的旋转角度1 N: ~3 s; A; S) f' z7 A5 W
setrot( object, xdeg, ydeg, zdeg ) 此命令设定实体围绕x、y、z轴向的旋转角度1 A; {" z+ c8 } q% q
) m0 ]0 o' `" b* A2 y# e6 q4 f" ^4 q; d4 f" Q! i
' C4 R$ v A& x8 S% o& M
7 K3 O3 W' w$ f$ H+ H3 A6 C1 w
+ @ c' d' D: O4 c9 b' \) j2 n# m- |- ~; l) \
/ n4 o# Y& A! e
% w5 x# A; q* [! L& F/ T
3 @0 f$ x( O8 [& Q9 I* S% n
0 m, c' y2 G6 \: Q; [ L) R6 A
; E( V- f% r1 y' u+ F; e6 T6 U" g+ W+ r! V, Y# `! P9 N- m
0 \3 L3 n3 B! B! x' i. U' _8 j6 }9 ^6 R. B6 W/ i" X$ t2 G8 _' B4 [
6 O; m g0 k" |- J9 c9 m+ u实体统计值
5 U5 A3 D) o& x% x1 _( |3 F% N命令(参数列表) 说明
7 F6 m" F1 L% h3 }content( object ) 返回实体当前数量% @: w" v' R) K @! U
getinput( object ) 返回实体的输入统计; I6 a" O5 U1 z g
getoutput( object ) 返回实体的输出统计8 b; {" j* d: u V8 V* N
setstate( object, statenum ) 设定实体的当前状态
1 ~; r. t; k) hgetstatenum( object ) 返回实体的当前状态
' v( c2 H6 _7 z" [getstatestr( object ) 以字符串返回实体当前状态+ r+ z6 }, p2 h0 V) I
getrank( object ) 返回实体的排序
0 q" }" n- N3 e$ _) ]setrank( object,ranknum ) 设定实体的排序* P& j4 y) G+ E j5 F
getentrytime( object ) 返回实体进入到当前所在实体中的时刻3 ^1 p: J, r% b/ q( j: u: C! R" p$ B* }
getcreationtime( object ) 返回实体的创建时刻4 _( f p3 U% I' C
实体标签. H4 l- v5 ]% a6 K p9 r# {' f
命令(参数列表) 说明
& k1 D7 @! |2 o5 Agetlabelnum( object, labelname ) getlabelnum( object, labelrank) 返回实体的标签值
, h5 W5 R9 I& i/ fsetlabelnum( object, labelname , value ) setlabelnum( object, labelrank , value ) 设定实体的标签值5 ~4 b$ {8 k/ p; R6 b% F" W& T
getlabelstr( object, labelname ) 获得实体标签的字符串值
4 G1 Z8 K/ f; a1 n3 F: c% psetlabelstr( object, labelname , value ) setlabelstr( object, labelrank , value ) 设定实体标签的字符串值
I3 _6 w( U7 G, J! l4 }3 Clabel( object, labelname ) label(object, labelrank) 返回一个作为节点的标签的引用,此命令常用在把标签当作一个表来使用的情况下。
9 x1 s$ H/ {" L0 n+ G; I( @表
8 p8 H* P% F- k% m; s命令(参数列表) 说明
" j' [+ y# U& g& s. x- qgettablenum( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的值7 Z4 H8 B2 Y: T4 m# z, o4 D# o
settablenum( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的值8 c9 K' B! Q% d! G0 V0 \+ ?
gettablestr( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的字符串值" q: z' }! C& N% H6 r) L
settablestr( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的字符串值/ w; s1 y; g0 m6 ?% Y7 s( f
settablesize( tablename / tablenode / tablerank, rows, columns ) 设定表的行列数大小 S% t2 T4 q7 w' u: c
gettablerows( tablename / tablenode / tablerank) 返回表的行数* I/ X% C7 `1 {% G
gettablecols( tablename / tablenode / tablerank) 返回表的列数
5 ]8 P( K+ Q! k9 s0 Kclearglobaltable( tablename / tablenode / tablerank) 将表中所有数字值设为0
# c$ B3 j- N7 T' U% l实体控制8 [; U7 W7 [8 T% o# B8 y
命令(参数列表)) 说明) S/ f2 x( k' p* T# a, V7 S" e
closeinput( object ) 关闭实体的输入端口" I. Q: J1 s8 _. F) r* O
openinput( object ) 重新打开实体的输入端口
- ^3 u7 x3 i0 J" N, ocloseoutput( object ) 关闭实体的输出端口/ L3 l s4 O! u! D( J" N$ H
openoutput( object ) 重新打开实体的输出端口. g$ O/ ]9 C* @! m
sendmessage( toobject, fromobject, parameter1, parameter2, parameter3 ) 触发实体的消息触发器$ s6 T# B3 {) Q1 n1 b5 ?, k
senddelayedmessage( toobject, delaytime, fromobject, parameter1, parameter2, parameter3 ) 在一段特定时间延迟后触发实体的消息触发器2 W$ X- e% L! R ]! i$ d) \! X
stopobject( object, downstate ) 无论实体在进行什么操作,都令其停止,并进入指定的状态
' ^. s0 z" Z# W7 L( O& Sresumeobject( object ) 使实体恢复其原来的无论什么操作7 q; M* p+ \: i2 P: ^
stopoutput( object ) 关闭实体的输出端口,并累计停止输出的请求
% M1 p# I! h& t' K" n/ B6 g. I% Gresumeoutput( object ) 在所有停止输出请求都恢复以后,打开实体的输出端口3 Z i# r, K& y/ a1 D9 V
stopinput( object ) 关闭实体的输入端口,并累计停止输入的请求4 E! v9 z0 w+ z# P o
resumeinput( object ) 在所有停止输入请求都恢复以后,打开实体的输入端口9 Z T- o+ N. h2 K" ~
insertcopy( originalobject, containerobject ) 往容器里插入新的实体复制品; q* X0 Z9 j, v+ Y2 S" G
moveobject( object, containerobject ) 将实体从当前容器移到它的新容器中4 N* Y) h0 m1 Z
高级函数
; S, z2 W4 S+ h' R; H3 E实体变量
" V+ u# S, m% k7 l命令(参数列表) 说明% \' q3 t* Q0 b9 }+ L% B
getvarnum( object, “variablename” ) 返回给定名称的变量的数值* {. M- y2 v6 r) m) \7 p
setvarnum( object, “variablename” , value ) 设定给定名称的变量数值
5 K0 Y) l) R9 U) C* ~" ^0 l5 {getvarstr( object, “variablename” ) 返回给定名称的变量的字符串值
$ l6 s; {' S9 [0 n1 [setvarstr( object, “variablename” , string ) 设定给定名称的变量的字符串值
\# X' n" z7 n# T- Jgetvarnode( object, “variablename” ) 返回一个节点,作为指向给定名称的变量的引用# p" [) T# D3 [1 v; k7 b/ ~
任务执行器控制) ?3 C( \+ _$ B$ N) J$ F2 l8 R' P% u
参见任务序列,可以获得更多有关控制任务执行器的信息。& g: w8 ~5 d1 k5 @
提示和界面输出9 r" C% `3 h/ Z5 `3 c5 W, N
命令(参数列表) 说明8 G# x/ h+ l; Q# h0 h$ v
pt( text string ) 向输出控制台打印文本
- T; t. d* h. ^, `1 D7 R5 b9 lpf( float value ) 向输出控制台打印浮点数值
! S, e: D- n$ q! g: Q9 vpd( discrete value ) 向输出控制台打印整数数值
m3 l R% z& t* j' T! npr( ) 在输出控制台中建新的一行$ }$ w- z1 }; U' P& ~! j- I
msg( “title”, “caption” ) 打开一个简单的“ 是、否、取消”消息框
8 G3 u( x; W$ B& k) v3 i' huserinput( targetnode, “prompt” ) 打开一个可以设定模型节点值的对话框
4 m3 }" E) A: d- e/ I* h' Dconcat( string1, string2, etc. ) 合并两个或多个字符串/ L' f2 Z9 F1 }9 q% y- h/ L5 Z( @
更多高级函数1 b* s1 G7 K2 `$ j6 I; S
下面是可能使用到的更多高级函数。这里没有提供参数列表,参见命令集可获得更多信息。2 x, c$ }0 e$ ]8 Z5 f; f i5 ?/ F
节点命令 - node(), nodeadddata(), getdatatype(), nodetopath(), nodeinsertinto(), nodeinsertafter(), getnodename(), setnodename(), getnodenum(), getnodestr(), setnodenum(), setnodestr(), inc();
$ H% c( u! D7 `) I! d数据交换命令 - stringtonum(), numtostring(), tonum(), tonode(), apchar();0 x3 Q5 c1 O# j: ]0 S9 S1 ~( G
节点表命令 - setsize(), cellrc(), nrows(), ncols();# ~8 Q; F+ B \2 x/ ?: k
模型运行命令 - cmdcompile(), resetmodel(), go(), stop();
( p% n/ x; B6 H0 W- X3D个性化绘制代码命令 - drawtomodelscale(), drawtoobjectscale(), drawsphere(), drawcube(), drawcylinder(), drawcolumn(), drawdisk(), drawobject(), drawtext(), drawrectangle(), drawline(), spacerotate(), spacetranslate(), spacescale();- }% [2 M: y2 A5 |$ ]' }
Excel命令 - excellaunch(), excelopen(), excelsetsheet(), excelreadnum(), excelreadstr(), excelwritenum(), excelwritestr(), excelimportnode(), excelimporttable(), excelclose(), excelquit();$ c8 z9 u; O' Y) ^2 n( G
ODBC命令 - dbopen(), dbclose(), dbsqlquery(), dbchangetable(), dbgetmetrics(), dbgetfieldname(), dbgetnumrows(), dbgetnumcols(), dbgettablecell(), dbsettablecell();
# v* ^9 ~/ I6 W, V* |运动学命令 - initkinematics(), addkinematic(), getkinematics(), updatekinematics(), printkinematics() |
|