|
实体参量 o+ T, l5 o' M# d/ \! O/ {5 Y+ i
下列的命令和存取变量在Flexsim中被用作实体引用。
5 y, g) `* `* v ^变量current和item
. D# Y3 s7 r# y• current - 变量current是当前资源实体的引用。通常可以是下拉菜单中的一个存取变量。
, D1 [7 B; X8 x- j# c1 h& e/ n• Item - 变量item是某触发器或函数所涉及的临时实体引用。通常可以是下拉菜单中的一个存取变量。
, b) Y) H9 H- U; ?/ t引用命令, U8 n8 R9 {4 z
命令(参数列表) 说明 示例* ^; F" m, E2 u. i6 s) S+ ~' M
first(node) 返回的是所传递的实体中排序第一的对象的引用 first(current)
3 }2 @. J& r: c- y9 M6 q! a# U$ Ilast(node) 返回的是所传递的实体中排序倒数第一的对象的引用 last(current)
0 z8 j4 c3 Q& Crank(node,ranknum) 返回的是所传递的实体中某给定排序的对象的引用 rank(current,3)' Q# g9 ?8 _3 F9 ]
inobject(object,portnum) 返回的是与所传递的实体的输入端口号相连的对象的引用 inobject(current,1)
- k# `( f2 i5 W6 Y) d6 O! noutobject(object,portnum) 返回的是与所传递的实体的输出端口号相连的对象的引用 outobject(current,1)
; a' X1 C* M- p' Scenterobject(object,portnum) 返回的是与所传递的实体的中间端口号相连的对象的引用 centerobject(current,1)7 f2 v/ t6 {* @# \
next(node) 返回的是所传递的实体中排序下一个对象的引用 next(item)
7 w& j4 P4 T" ~" ^
8 o7 O9 \8 _* b3 y$ G5 p! {1 D) Z* I$ X% ~ D2 M% l5 k0 Q
: h* }0 ]7 K: @* c) J
0 M" @) g1 h/ Y& J& O0 i- f: _
% q' g: `: b9 |" |& m7 v- t
D& a* g* W( a: X
1 _7 T; _9 X. r' h) O, X2 {* x: X
: a% C+ g2 M3 ?9 F9 K8 o
( X" L/ r3 X r7 Z$ f. N- a0 y/ R+ c7 O( c
3 g. i& G) S+ e1 K5 Y8 `( r% }8 M7 g: b! Q) [
' d7 l r* N6 {& [8 f7 [0 N/ [$ R
" x' n. c* a. @" X4 z
+ N+ F4 r" g2 j& i: Q1 D
: Y2 Q0 G- ?$ g: }3 ` s" S; s0 {实体属性5 X) Y( _) U; f
命令(参数列表) 说明
. M Q5 i- O3 B' K7 P$ F- {3 O$ {getname( object ) 返回实体的名称( R; y. t0 I* c
setname( object, name ) 设定实体的名称
- {# g3 c1 C7 i, S. r& ?5 {, R2 Ngetitemtype( object ) 返回实体中临时实体类型的值# U4 h. Y3 j0 C
setitemtype( object, num) 设定实体中临时实体类型的值- `! J9 @1 D" ^$ r/ p. I! u0 t
setcolor( object, red, green, blue ) 设定实体的颜色" M h4 H. l. S! f2 i8 W$ {* i) c
colorred( object ) blue,green,white... 设定实体的颜色为红、蓝、绿、白等8 M; u j9 G+ R+ J
setobjectshapeindex ( object , indexnum ) 设定实体的3D形状" n2 ?. B* y9 E6 i
setobjecttextureindex ( object , indexnum ) 设定实体的3D纹理5 \0 M7 A" ]; E$ J: e0 U
setobjectimageindex ( object , indexnum ) 设定实体的2D 纹理,通常只在平面视图中使用; N* _! q5 A9 V4 u3 i2 v# X
实体空间属性
5 m2 H1 x) q* _+ a* T* D命令(参数列表) 说明
7 J& p- p: ^4 s. E# b
, R5 ]- ]2 _+ g" m, d9 Cxloc( object ) yloc( object ) zloc( object ) 这些命令返回实体x、y、z轴向的位置
. w7 @$ v% _% Z4 esetloc( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的位置
/ i+ n$ B9 v. _& A
" ?* ~; K* Y/ w9 I- t! Yxsize( object ) ysize( object ) zsize( object ) 这些命令返回实体x、y、z轴向的尺寸大小* a1 z+ ]3 }* r# n2 z
setsize( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的尺寸大小) c; Y& z" [* B! ~9 @
" b" C, P+ N: A0 c! ]1 n
xrot( object ) yrot( object ) zrot( object ) 这些命令返回实体围绕x、y、z轴向的旋转角度
* Z6 I' w$ @& }1 l9 _( k' O, zsetrot( object, xdeg, ydeg, zdeg ) 此命令设定实体围绕x、y、z轴向的旋转角度4 B$ I& s2 k$ ?% b9 J$ U; P" Y" }
, t X% Q: K) ]- ], N- m' a/ t
8 O* p# U8 u' ^; h( J5 O& G1 f
) @* G1 H6 H2 |. y' v9 P1 M7 G5 O8 ]% M0 ^ Y
7 }9 r. ?) a: l' k1 ?: \0 A/ L( \
: }0 w+ M @# L* v, T, c
5 n. i" S. I) d; {; I4 d
7 u$ A7 Q9 z2 Z T* @
( S3 m5 D4 w* e9 b" W4 X0 @; ?2 A. l# W! Z# d G8 c7 S/ W/ W' X# A2 H( z
, D* R7 A! z7 ] f8 h* `" p! J; P: v; ` I/ x0 a+ _3 L/ k
0 a, \; V1 a/ ?4 G1 P f% ^; n/ {$ H9 C6 @1 v
+ F) I) u' T! x* T0 ~: @8 u实体统计值$ q; i% `: o1 k# S' ^
命令(参数列表) 说明
- t% l; s% H. \* B3 Vcontent( object ) 返回实体当前数量; e0 j. n" I# a( ~: q- O6 D
getinput( object ) 返回实体的输入统计
: o1 j/ s& N/ x* u1 Zgetoutput( object ) 返回实体的输出统计
( u% I0 Z) q9 E0 Csetstate( object, statenum ) 设定实体的当前状态9 d* F7 N( G/ E' H r/ Z; d. c, Z
getstatenum( object ) 返回实体的当前状态3 `3 I0 \7 P+ [. S/ ]% O1 @
getstatestr( object ) 以字符串返回实体当前状态
0 L) k2 s7 g. \! Ggetrank( object ) 返回实体的排序
" J' H. l$ P/ i* Z' nsetrank( object,ranknum ) 设定实体的排序
, ] B4 _& i& Cgetentrytime( object ) 返回实体进入到当前所在实体中的时刻
- e D# M' w9 X1 X0 w9 ` ]getcreationtime( object ) 返回实体的创建时刻
5 h3 _, f( j7 b' ?3 w实体标签
+ N+ v' r' V+ F8 H- ~命令(参数列表) 说明
+ i) @7 w2 T% S1 W& Q) S9 r' Pgetlabelnum( object, labelname ) getlabelnum( object, labelrank) 返回实体的标签值1 }! t _6 n0 Z/ {0 w5 Y
setlabelnum( object, labelname , value ) setlabelnum( object, labelrank , value ) 设定实体的标签值1 p* r5 h" o4 R9 `- I" N
getlabelstr( object, labelname ) 获得实体标签的字符串值
: Z. h/ g! r9 e' Bsetlabelstr( object, labelname , value ) setlabelstr( object, labelrank , value ) 设定实体标签的字符串值2 ]- o3 m3 n- y& c8 b
label( object, labelname ) label(object, labelrank) 返回一个作为节点的标签的引用,此命令常用在把标签当作一个表来使用的情况下。
$ e8 N! j% m7 V表# B4 p; U* B5 m7 V
命令(参数列表) 说明% h. m8 r& }$ U3 \7 j' w
gettablenum( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的值
7 @& `- t7 ?2 m$ y! [7 _ A& z5 usettablenum( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的值1 Z2 P% @2 M' K9 b3 d* e
gettablestr( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的字符串值! G# V0 J0 _+ K
settablestr( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的字符串值/ K, a6 F2 L* O
settablesize( tablename / tablenode / tablerank, rows, columns ) 设定表的行列数大小$ q2 t5 |- I+ j R- ]' k
gettablerows( tablename / tablenode / tablerank) 返回表的行数; C+ A* L, C$ }$ T( r9 [
gettablecols( tablename / tablenode / tablerank) 返回表的列数
& @; B0 T& P, A) Vclearglobaltable( tablename / tablenode / tablerank) 将表中所有数字值设为0) s* b6 k8 q: _+ E! X' P- t
实体控制
1 |, m b8 D) D; H/ q" I命令(参数列表)) 说明
+ \. v$ v. O9 u6 N# Ccloseinput( object ) 关闭实体的输入端口
' P( v f3 e6 `; Q/ p6 Qopeninput( object ) 重新打开实体的输入端口
' O; N6 q3 e E% b) w3 \$ q. rcloseoutput( object ) 关闭实体的输出端口8 O0 _# a% d, q" a: T# j1 t) p
openoutput( object ) 重新打开实体的输出端口 y$ x9 z$ @- O, b- f3 |; I
sendmessage( toobject, fromobject, parameter1, parameter2, parameter3 ) 触发实体的消息触发器6 S/ F. L8 ~: M
senddelayedmessage( toobject, delaytime, fromobject, parameter1, parameter2, parameter3 ) 在一段特定时间延迟后触发实体的消息触发器
U$ N0 h2 j0 H; @8 S" i. f% V8 z+ @stopobject( object, downstate ) 无论实体在进行什么操作,都令其停止,并进入指定的状态' m1 U# d2 n5 R8 ?+ U6 K- t
resumeobject( object ) 使实体恢复其原来的无论什么操作* P& h/ k5 H4 y1 U1 r
stopoutput( object ) 关闭实体的输出端口,并累计停止输出的请求
6 ~. A, ^6 N% u" t: S) A b1 D7 J; hresumeoutput( object ) 在所有停止输出请求都恢复以后,打开实体的输出端口0 S' m/ N7 J; o3 }7 I
stopinput( object ) 关闭实体的输入端口,并累计停止输入的请求
2 d+ s% }- g6 Xresumeinput( object ) 在所有停止输入请求都恢复以后,打开实体的输入端口
3 e* d5 a" Z9 \& Winsertcopy( originalobject, containerobject ) 往容器里插入新的实体复制品
% H7 `/ j8 ^$ Umoveobject( object, containerobject ) 将实体从当前容器移到它的新容器中/ [' f4 _$ O# J, ]: v
高级函数
! n3 P4 q4 ^: N, a实体变量& B* X( e- {" d1 I# G5 S) P/ G
命令(参数列表) 说明
3 i- [3 R, m2 x: F egetvarnum( object, “variablename” ) 返回给定名称的变量的数值
$ z% m: n8 M x8 qsetvarnum( object, “variablename” , value ) 设定给定名称的变量数值3 P9 @1 M* t; E- o
getvarstr( object, “variablename” ) 返回给定名称的变量的字符串值
; E m/ n, r; isetvarstr( object, “variablename” , string ) 设定给定名称的变量的字符串值
$ z# D' C7 g& X9 {; Q! s8 Ugetvarnode( object, “variablename” ) 返回一个节点,作为指向给定名称的变量的引用5 G& d: y1 ~: \
任务执行器控制
9 E; w( p9 u5 {: |参见任务序列,可以获得更多有关控制任务执行器的信息。; H+ j& R7 J, d# I+ |
提示和界面输出; t2 `" w) z% M
命令(参数列表) 说明
: U4 f: Z1 a' rpt( text string ) 向输出控制台打印文本 u; i* D8 L1 j8 x
pf( float value ) 向输出控制台打印浮点数值4 o& [5 U3 t8 H0 |4 a
pd( discrete value ) 向输出控制台打印整数数值
' R P5 q6 w2 ~' [6 x8 gpr( ) 在输出控制台中建新的一行
5 l1 W7 J" Y+ |+ o- D/ pmsg( “title”, “caption” ) 打开一个简单的“ 是、否、取消”消息框2 A C; B2 y" j5 f2 _* L) F5 y
userinput( targetnode, “prompt” ) 打开一个可以设定模型节点值的对话框
/ {# R2 n5 K8 w, ]7 A. dconcat( string1, string2, etc. ) 合并两个或多个字符串) P7 n; @( Q; v! ~+ J
更多高级函数
4 ~ Y. B/ I7 s, i3 n$ Y下面是可能使用到的更多高级函数。这里没有提供参数列表,参见命令集可获得更多信息。8 p5 m' E3 h( g& C4 t: }. G. N
节点命令 - node(), nodeadddata(), getdatatype(), nodetopath(), nodeinsertinto(), nodeinsertafter(), getnodename(), setnodename(), getnodenum(), getnodestr(), setnodenum(), setnodestr(), inc();
7 |# `5 @( h. Z8 _数据交换命令 - stringtonum(), numtostring(), tonum(), tonode(), apchar();' L4 `7 h2 G9 G! |
节点表命令 - setsize(), cellrc(), nrows(), ncols();' Q+ e+ E- m, X6 \+ K3 L% S* l
模型运行命令 - cmdcompile(), resetmodel(), go(), stop();5 @: {7 V8 W5 b" ^+ }# N w* ]
3D个性化绘制代码命令 - drawtomodelscale(), drawtoobjectscale(), drawsphere(), drawcube(), drawcylinder(), drawcolumn(), drawdisk(), drawobject(), drawtext(), drawrectangle(), drawline(), spacerotate(), spacetranslate(), spacescale();1 }! M) g! B& B( _2 n" `
Excel命令 - excellaunch(), excelopen(), excelsetsheet(), excelreadnum(), excelreadstr(), excelwritenum(), excelwritestr(), excelimportnode(), excelimporttable(), excelclose(), excelquit();# E! P$ N5 h: }& o
ODBC命令 - dbopen(), dbclose(), dbsqlquery(), dbchangetable(), dbgetmetrics(), dbgetfieldname(), dbgetnumrows(), dbgetnumcols(), dbgettablecell(), dbsettablecell();3 x$ `6 X: d+ n7 ?" k0 @
运动学命令 - initkinematics(), addkinematic(), getkinematics(), updatekinematics(), printkinematics() |
|