全球FlexSim系统仿真中文论坛
标题:
函数库
[打印本页]
作者:
wj109260758
时间:
2010-7-15 00:13
标题:
函数库
实体参量
' ]) |7 D8 M: h* l# M1 Z e3 D
下列的命令和存取变量在Flexsim中被用作实体引用。
# }4 X+ v& g0 [' _8 ^
变量current和item
& ], j3 W& I- Y( S: q
• current - 变量current是当前资源实体的引用。通常可以是下拉菜单中的一个存取变量。
4 w) R" H5 }. a
• Item - 变量item是某触发器或函数所涉及的临时实体引用。通常可以是下拉菜单中的一个存取变量。
" l. w; H$ ^2 H, L8 {
引用命令
D, ]! N' X. D9 I' c
命令(参数列表) 说明 示例
3 G( g% F$ b4 ~. U |. l+ k
first(node) 返回的是所传递的实体中排序第一的对象的引用 first(current)
& B g# ]7 E/ X+ K
last(node) 返回的是所传递的实体中排序倒数第一的对象的引用 last(current)
& X/ l' G6 [; t2 l8 g% x" }
rank(node,ranknum) 返回的是所传递的实体中某给定排序的对象的引用 rank(current,3)
0 Y- s: `5 @8 G1 m$ j& u6 D. N& ^
inobject(object,portnum) 返回的是与所传递的实体的输入端口号相连的对象的引用 inobject(current,1)
6 I2 }! C; e- H' ~1 [+ r/ _
outobject(object,portnum) 返回的是与所传递的实体的输出端口号相连的对象的引用 outobject(current,1)
2 R7 s. \: ]* }0 U
centerobject(object,portnum) 返回的是与所传递的实体的中间端口号相连的对象的引用 centerobject(current,1)
% X( W/ R) `3 G
next(node) 返回的是所传递的实体中排序下一个对象的引用 next(item)
$ P0 u5 t: f6 q4 Z5 X* a5 A6 p
8 Y7 @5 _1 m- K1 z
* k: O3 G Q5 s- _8 x
. D. c. F: x" y
; l2 \* i; P* x, k+ I9 D
/ o4 w) c1 d! ~5 r& r3 S+ @
$ G3 s6 E7 d: g1 i+ s; _
5 m2 ]/ S! B5 V5 x2 J: i/ W
t& r; H/ q d/ H% Y, {: ]
) M }( Z1 X' W4 s d9 }
) Z) |, E: E& ^$ {4 }2 e
- h8 g: i9 |4 d) }% e h
) O# k( j C! c$ ^/ d9 O ^
6 l+ w" r% t$ N9 [
( O( c1 b5 h4 J, t
" W9 t6 |5 K& j$ b) l4 P: Z
E+ _! G/ K: E2 E9 i/ r
实体属性
. o$ _; x K2 w/ v9 b' A/ E# W+ f
命令(参数列表) 说明
, |. b( c" C0 h2 f/ U( r9 j. u
getname( object ) 返回实体的名称
5 k3 R5 w# ?* u! p* J
setname( object, name ) 设定实体的名称
7 J0 S9 o4 }, K
getitemtype( object ) 返回实体中临时实体类型的值
- d! J5 P. w9 \; G9 s; m
setitemtype( object, num) 设定实体中临时实体类型的值
& o! i: z# t* Q4 ^
setcolor( object, red, green, blue ) 设定实体的颜色
& Y8 v3 ^4 x4 G2 c/ g# i) [
colorred( object ) blue,green,white... 设定实体的颜色为红、蓝、绿、白等
9 I. Q. j+ e: v$ e( o/ g! v1 h
setobjectshapeindex ( object , indexnum ) 设定实体的3D形状
4 e% d, n7 G4 y. w- N4 P& v
setobjecttextureindex ( object , indexnum ) 设定实体的3D纹理
, `& h3 a! o5 c7 o; ?
setobjectimageindex ( object , indexnum ) 设定实体的2D 纹理,通常只在平面视图中使用
* p6 B; `% c' V$ g9 W, X
实体空间属性
% _: o$ u8 W7 Q: W
命令(参数列表) 说明
2 [8 x) G( O' b. D$ }4 S
7 U Z1 v% n' t [/ S
xloc( object ) yloc( object ) zloc( object ) 这些命令返回实体x、y、z轴向的位置
2 D: z" K# `& c
setloc( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的位置
! j. t! j3 ~ n" j
4 P) f R) ?& `- ~2 ~8 N* w8 i
xsize( object ) ysize( object ) zsize( object ) 这些命令返回实体x、y、z轴向的尺寸大小
' l. l- A- Q. d u% u1 h: t) j: w: N
setsize( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的尺寸大小
' Q. g w! @* W" Z7 v
@, S k+ E, X$ c$ c$ y
xrot( object ) yrot( object ) zrot( object ) 这些命令返回实体围绕x、y、z轴向的旋转角度
6 J9 L. @% @* k$ u, b8 u6 D4 T3 L
setrot( object, xdeg, ydeg, zdeg ) 此命令设定实体围绕x、y、z轴向的旋转角度
n- c) z/ d0 K' m- H* P) L% U
. n0 {) ~4 b8 y
2 V+ M5 J! i, p- \9 q
+ Y9 D3 G2 E) _. v: u4 \$ L9 E
! x; b: ?$ I( e, \6 P
8 J2 J, P; d! F6 H" g6 q3 r
- O- ^8 }9 F% h- O6 O0 ~ w
) h0 M' u2 ?3 b" x
/ s5 w3 `' Q& ]" D1 o* x+ N3 u0 h
" z! j1 t8 c$ T/ `2 u& J
( @. Y# S, a! K1 ~! O
2 X1 i5 S& j* W0 X7 Q
; P2 D9 W& V/ ~0 Q& `3 T6 O
/ `* \3 g( k6 q2 u6 B9 b
9 x% g3 y+ `% |! o) Y1 p* p
. x0 D" i/ B- k' Q) D- s5 [. h
实体统计值
# j3 D4 m% h7 @8 m$ z
命令(参数列表) 说明
- a7 u: n6 G+ a) i' R
content( object ) 返回实体当前数量
- R8 P9 \2 R9 n+ m
getinput( object ) 返回实体的输入统计
6 G* o' E: i H+ O1 i s0 [
getoutput( object ) 返回实体的输出统计
( \0 d+ W. A6 }& W4 y
setstate( object, statenum ) 设定实体的当前状态
( h: x9 @8 F: o- g* _& \
getstatenum( object ) 返回实体的当前状态
& ^* `, M" r& D( f; r- n+ B8 ^7 m
getstatestr( object ) 以字符串返回实体当前状态
6 u: F: h2 ^7 d$ ?$ w3 t/ [7 z
getrank( object ) 返回实体的排序
+ `9 p& p8 E w N. R
setrank( object,ranknum ) 设定实体的排序
) ?8 r: \6 `/ W' i% b
getentrytime( object ) 返回实体进入到当前所在实体中的时刻
7 ?: B6 k" ~( s2 @0 R; W% W: ?
getcreationtime( object ) 返回实体的创建时刻
2 n! `3 Y; { L. a9 N/ ?% G" Z
实体标签
0 Q/ d7 a3 k6 a8 W) c. ^) v
命令(参数列表) 说明
% M1 I# J: u) C
getlabelnum( object, labelname ) getlabelnum( object, labelrank) 返回实体的标签值
" T3 G- l% g8 l
setlabelnum( object, labelname , value ) setlabelnum( object, labelrank , value ) 设定实体的标签值
0 ?( Z; D. B. m
getlabelstr( object, labelname ) 获得实体标签的字符串值
9 u! j: M( ~9 T& P
setlabelstr( object, labelname , value ) setlabelstr( object, labelrank , value ) 设定实体标签的字符串值
b0 C4 t7 J8 N1 I1 w/ p, U
label( object, labelname ) label(object, labelrank) 返回一个作为节点的标签的引用,此命令常用在把标签当作一个表来使用的情况下。
; V; ]+ E$ K- y$ P7 N
表
% ]6 ]# q' u; d1 A) ]. O. O" z
命令(参数列表) 说明
2 E4 @* @7 F4 H7 y. N
gettablenum( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的值
7 A! q1 u, R$ X" P& |* ]9 x1 |
settablenum( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的值
+ `. @3 b4 B" |! t- m% b% | G
gettablestr( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的字符串值
+ q$ V C! t0 ^3 g( H- d
settablestr( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的字符串值
' C2 B( E7 {6 Y, o9 [( K' x; H
settablesize( tablename / tablenode / tablerank, rows, columns ) 设定表的行列数大小
* v' V) }. b+ w3 M$ S- E9 w
gettablerows( tablename / tablenode / tablerank) 返回表的行数
2 \3 b/ P! }' M% E
gettablecols( tablename / tablenode / tablerank) 返回表的列数
8 E; G. l. K6 ? L9 F
clearglobaltable( tablename / tablenode / tablerank) 将表中所有数字值设为0
$ e2 i) \8 |4 n
实体控制
. |* \# l M: W" z6 X* J
命令(参数列表)) 说明
9 _9 M$ P- k& d3 z
closeinput( object ) 关闭实体的输入端口
9 u' e/ f! u' m7 s: q/ q
openinput( object ) 重新打开实体的输入端口
: ]; b A" s) f& A v
closeoutput( object ) 关闭实体的输出端口
. ^! Z! Y/ Q( F ]* O0 |( w3 S& T" [3 a
openoutput( object ) 重新打开实体的输出端口
0 D4 Z, e$ @- N3 J, c: O) M& m3 D
sendmessage( toobject, fromobject, parameter1, parameter2, parameter3 ) 触发实体的消息触发器
- p Z: h2 S, v6 F. I: c
senddelayedmessage( toobject, delaytime, fromobject, parameter1, parameter2, parameter3 ) 在一段特定时间延迟后触发实体的消息触发器
. n+ B! Z, C0 g
stopobject( object, downstate ) 无论实体在进行什么操作,都令其停止,并进入指定的状态
7 Q1 m5 ^7 U( B5 T- G. E
resumeobject( object ) 使实体恢复其原来的无论什么操作
$ T! `$ y( c4 X7 _- C
stopoutput( object ) 关闭实体的输出端口,并累计停止输出的请求
0 Z# s) e7 J. ~( E* b$ S6 j
resumeoutput( object ) 在所有停止输出请求都恢复以后,打开实体的输出端口
* H8 T+ }% W0 q. L1 r2 c5 W W
stopinput( object ) 关闭实体的输入端口,并累计停止输入的请求
& Y: e/ {7 f B: H
resumeinput( object ) 在所有停止输入请求都恢复以后,打开实体的输入端口
4 F1 m' u& _! E
insertcopy( originalobject, containerobject ) 往容器里插入新的实体复制品
5 ]5 | Y. j. o
moveobject( object, containerobject ) 将实体从当前容器移到它的新容器中
' h5 |/ K$ c5 `" H) x1 E1 C0 `
高级函数
% q0 q. h; Q% W! G
实体变量
2 C1 f# W: M# Z7 e+ N5 K7 Y
命令(参数列表) 说明
, A1 R. c% v7 I% ?
getvarnum( object, “variablename” ) 返回给定名称的变量的数值
& v4 T4 J' q. i. ~
setvarnum( object, “variablename” , value ) 设定给定名称的变量数值
- O8 l% a$ u* t8 H" T6 ^& Y9 x
getvarstr( object, “variablename” ) 返回给定名称的变量的字符串值
# g. q8 \0 ?, e6 n
setvarstr( object, “variablename” , string ) 设定给定名称的变量的字符串值
' b. T; K" q& V
getvarnode( object, “variablename” ) 返回一个节点,作为指向给定名称的变量的引用
! Z. ^' @3 v9 {4 @0 |. d
任务执行器控制
2 p5 C$ L* k6 `* G; K# {
参见任务序列,可以获得更多有关控制任务执行器的信息。
% ~) s0 ]" M2 G% I$ n4 _+ B1 H# A
提示和界面输出
' W% R# e2 A1 x
命令(参数列表) 说明
1 @6 R! |0 q7 P ]' c
pt( text string ) 向输出控制台打印文本
) w% ]9 \8 _' j$ Z+ H( q: j }
pf( float value ) 向输出控制台打印浮点数值
% W r0 G* y, [9 b* s
pd( discrete value ) 向输出控制台打印整数数值
0 I: R# [3 Q* k7 |/ g5 | t
pr( ) 在输出控制台中建新的一行
1 ]4 C7 s3 `& O9 u- P! {
msg( “title”, “caption” ) 打开一个简单的“ 是、否、取消”消息框
+ K7 E+ q$ J2 L) h. `3 M
userinput( targetnode, “prompt” ) 打开一个可以设定模型节点值的对话框
( a1 y7 `. s( ~0 @' ]! s
concat( string1, string2, etc. ) 合并两个或多个字符串
6 J5 c* L1 f5 v- C
更多高级函数
$ t/ n* ^" C- |
下面是可能使用到的更多高级函数。这里没有提供参数列表,参见命令集可获得更多信息。
( q4 r3 f K/ y( V3 |" `4 w' Q
节点命令 - node(), nodeadddata(), getdatatype(), nodetopath(), nodeinsertinto(), nodeinsertafter(), getnodename(), setnodename(), getnodenum(), getnodestr(), setnodenum(), setnodestr(), inc();
+ a @/ ?( D9 w3 ~
数据交换命令 - stringtonum(), numtostring(), tonum(), tonode(), apchar();
9 X. K6 h. P7 w8 P Y
节点表命令 - setsize(), cellrc(), nrows(), ncols();
4 i+ }5 j1 P5 |8 u& K
模型运行命令 - cmdcompile(), resetmodel(), go(), stop();
$ f) u. q; |9 i% j; K
3D个性化绘制代码命令 - drawtomodelscale(), drawtoobjectscale(), drawsphere(), drawcube(), drawcylinder(), drawcolumn(), drawdisk(), drawobject(), drawtext(), drawrectangle(), drawline(), spacerotate(), spacetranslate(), spacescale();
: U5 W* M7 |; r9 @" `
Excel命令 - excellaunch(), excelopen(), excelsetsheet(), excelreadnum(), excelreadstr(), excelwritenum(), excelwritestr(), excelimportnode(), excelimporttable(), excelclose(), excelquit();
0 A" N) } {# C; W* v' d) `5 f
ODBC命令 - dbopen(), dbclose(), dbsqlquery(), dbchangetable(), dbgetmetrics(), dbgetfieldname(), dbgetnumrows(), dbgetnumcols(), dbgettablecell(), dbsettablecell();
4 C7 s- O( _3 U. @
运动学命令 - initkinematics(), addkinematic(), getkinematics(), updatekinematics(), printkinematics()
作者:
ants_song
时间:
2010-7-15 08:26
哈哈,怎么把3.0中文版操作说明书中的内容粘上来啦
作者:
往事如风210
时间:
2010-7-15 09:58
哈~~不要说这也是你的家底哦!
作者:
wj109260758
时间:
2010-7-15 11:44
我觉得这玩意很好啊,当时看到这个就开窍了
作者:
02琊琊
时间:
2012-6-19 21:48
哈哈 受用 谢啦
作者:
DONGDAxxy
时间:
2012-9-17 17:11
作者:
嗜血黑猫
时间:
2013-4-23 10:16
很有用,谢谢分享
作者:
yushaozheng1990
时间:
2013-12-9 21:03
有些粗糙啊
作者:
a445608540
时间:
2013-12-12 08:40
谢谢分享
作者:
yuzhu
时间:
2015-12-24 10:47
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3