全球FlexSim系统仿真中文论坛
标题:
函数库
[打印本页]
作者:
wj109260758
时间:
2010-7-15 00:13
标题:
函数库
实体参量
. i* H/ l$ o4 A9 G* ?: f
下列的命令和存取变量在Flexsim中被用作实体引用。
4 F& B8 l1 t1 a: K2 L5 J* [
变量current和item
2 |/ M! y* Q; j; `
• current - 变量current是当前资源实体的引用。通常可以是下拉菜单中的一个存取变量。
6 [0 _2 B3 b6 Z' H" r
• Item - 变量item是某触发器或函数所涉及的临时实体引用。通常可以是下拉菜单中的一个存取变量。
; X8 E; w$ `4 f1 z" s
引用命令
7 s8 p1 M$ k5 D; a3 A' O, d
命令(参数列表) 说明 示例
! Q3 Q( b( B$ t7 f+ w
first(node) 返回的是所传递的实体中排序第一的对象的引用 first(current)
4 Z/ K$ j# @- Q( ?$ N! A6 A
last(node) 返回的是所传递的实体中排序倒数第一的对象的引用 last(current)
5 X5 _0 E) ]+ g9 N+ q8 C
rank(node,ranknum) 返回的是所传递的实体中某给定排序的对象的引用 rank(current,3)
( `- |1 l* V+ ?9 e% g* J
inobject(object,portnum) 返回的是与所传递的实体的输入端口号相连的对象的引用 inobject(current,1)
0 U8 x1 I9 h/ V( s
outobject(object,portnum) 返回的是与所传递的实体的输出端口号相连的对象的引用 outobject(current,1)
$ h: S2 C# G1 Z! m* N! [4 k
centerobject(object,portnum) 返回的是与所传递的实体的中间端口号相连的对象的引用 centerobject(current,1)
" }" b, ?+ X! e3 R6 W
next(node) 返回的是所传递的实体中排序下一个对象的引用 next(item)
& Y+ F3 @7 Q+ E( ~* M
% \# L+ ?4 v* Z0 k- X% Q5 i
' Z* M* F# x# ]. t1 y
' D$ A! Y3 H" x- r( v
1 ]7 g9 S2 } W- J
! [" j, A. M" _0 W: t
. n2 l1 e4 H+ j! f
- H7 i& M! _2 J' _
# v' @" Y0 @ S. D3 g2 x
0 f! L' l7 Z5 T; }9 Y. A
, W" R# h# }9 i) ~6 ^8 k
3 `5 i" s1 x7 P1 i
; V" {6 t% \$ E7 F% l y6 A
) E; C) }" _2 f: \$ z
$ q' j, Z/ Z4 E1 t
' V1 J* m0 `) G! a6 U! C% R7 H
( r& b2 d0 P9 ^7 l9 M" T
实体属性
( B% u6 z4 _4 F( s/ v6 R& W
命令(参数列表) 说明
/ G6 w/ p' u- J; p- x+ `
getname( object ) 返回实体的名称
) J* h: d& t! i9 V% m D* S7 t
setname( object, name ) 设定实体的名称
2 ~: h9 Q0 z) X8 o$ J' D# y: u
getitemtype( object ) 返回实体中临时实体类型的值
9 T8 H5 }& e2 d9 v
setitemtype( object, num) 设定实体中临时实体类型的值
d* q7 d$ m( M! X/ i$ {& g; Q
setcolor( object, red, green, blue ) 设定实体的颜色
$ J K# G+ W* B3 ^6 M* l
colorred( object ) blue,green,white... 设定实体的颜色为红、蓝、绿、白等
/ `7 F ~$ T t
setobjectshapeindex ( object , indexnum ) 设定实体的3D形状
2 f; N3 M8 h- y3 O
setobjecttextureindex ( object , indexnum ) 设定实体的3D纹理
4 b: Q' R$ [8 D& B) X* ?
setobjectimageindex ( object , indexnum ) 设定实体的2D 纹理,通常只在平面视图中使用
- K G: z, b$ \9 m0 N9 J
实体空间属性
* U6 s9 [0 o* [6 f8 Z2 ^4 C
命令(参数列表) 说明
0 v" D; `8 g* y
% M' h# h# {3 W4 w
xloc( object ) yloc( object ) zloc( object ) 这些命令返回实体x、y、z轴向的位置
# t* z" g7 j# y3 ]; z# X* I
setloc( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的位置
. }. S' b* _4 a3 z5 h, V
9 A6 {6 b: w0 k( Z7 D3 W" x
xsize( object ) ysize( object ) zsize( object ) 这些命令返回实体x、y、z轴向的尺寸大小
$ L4 j0 S2 `$ j5 t- w- o
setsize( object, xnum, ynum, znum ) 此命令设定实体x、y、z轴向的尺寸大小
. z5 B+ x# a" [/ t& V" Z2 C/ k
( O" l+ M( a, D, h4 D1 ~3 N, U3 X
xrot( object ) yrot( object ) zrot( object ) 这些命令返回实体围绕x、y、z轴向的旋转角度
$ p e1 {* i/ ?8 y V- ^
setrot( object, xdeg, ydeg, zdeg ) 此命令设定实体围绕x、y、z轴向的旋转角度
( n% \/ v5 |4 u# V+ V3 s: f7 w% q
& o/ Y) y+ |9 n6 L6 k: k
1 b; U8 [4 |) q) C0 S
Y+ x; `. {9 r. k
2 q8 b' q$ o X* q/ a; z
# v% l( N2 M: V% W- D; G
. o4 K8 f- y9 I X5 D
* H+ X; l o4 \1 Y8 U, I
. E5 C. h# O" S
+ t1 v! c' [2 o7 H- C, Z) d
* t' Q j2 y ^% [3 [$ {( [
! l4 y0 M9 ^) B
* N3 \! B- J( \7 ^7 M
: \7 t9 x3 f3 P
; B$ R7 \# q& O9 x0 x% v
' q! s- d! R; P( k+ T% h
实体统计值
2 u) t1 v7 Z" {" }; V
命令(参数列表) 说明
8 C# r5 }1 F$ r# D0 w3 S
content( object ) 返回实体当前数量
) r9 s1 S1 b- I! k; M% E) M1 ~0 {
getinput( object ) 返回实体的输入统计
5 s" ^% K* y# A6 _2 p! q
getoutput( object ) 返回实体的输出统计
4 J) N+ M+ o6 H) N U
setstate( object, statenum ) 设定实体的当前状态
5 @0 \3 K# |# |1 T5 X# |9 _
getstatenum( object ) 返回实体的当前状态
4 v. o t; \& W/ k1 \2 ~" X
getstatestr( object ) 以字符串返回实体当前状态
- d# D; j2 t2 p8 e, R/ f
getrank( object ) 返回实体的排序
; Z0 a; D0 S9 O5 L, A; T* Q
setrank( object,ranknum ) 设定实体的排序
! K5 \" i* o6 k" f
getentrytime( object ) 返回实体进入到当前所在实体中的时刻
8 f. T7 ?4 ?' ~& g! _! N
getcreationtime( object ) 返回实体的创建时刻
: q; _9 U4 C1 G: g( R
实体标签
* u! ?5 n8 l7 `- ^3 Y9 V9 M8 {% x5 H
命令(参数列表) 说明
: [1 @2 q7 j4 A% b* C$ x
getlabelnum( object, labelname ) getlabelnum( object, labelrank) 返回实体的标签值
/ l3 U3 u7 i S3 A! l
setlabelnum( object, labelname , value ) setlabelnum( object, labelrank , value ) 设定实体的标签值
! L: @2 e z; _% {
getlabelstr( object, labelname ) 获得实体标签的字符串值
& Z9 Q# n7 b {+ @8 j8 O
setlabelstr( object, labelname , value ) setlabelstr( object, labelrank , value ) 设定实体标签的字符串值
; _2 u$ p7 J" r
label( object, labelname ) label(object, labelrank) 返回一个作为节点的标签的引用,此命令常用在把标签当作一个表来使用的情况下。
, U/ r* V* ]. O9 _
表
, i4 A' A* @2 a8 P2 b" M( C, C! r
命令(参数列表) 说明
3 R8 s/ W) h: r9 r+ e" n
gettablenum( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的值
6 }; c# P; A7 _& R
settablenum( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的值
& Z6 q6 o$ r' t2 b6 v
gettablestr( tablename / tablenode / tablerank, rownum, colnum ) 返回表中特定行列的字符串值
* C' e; g, x! D* r8 s; G: f
settablestr( tablename / tablenode / tablerank, rownum, colnum, value) 设定表中特定行列的字符串值
, w& F! z- N& P0 u# {* A; J
settablesize( tablename / tablenode / tablerank, rows, columns ) 设定表的行列数大小
1 g; }1 V# X0 u. x& x; h
gettablerows( tablename / tablenode / tablerank) 返回表的行数
# Z: Q, ?( |( W- }' S
gettablecols( tablename / tablenode / tablerank) 返回表的列数
+ ? n, U2 o3 z
clearglobaltable( tablename / tablenode / tablerank) 将表中所有数字值设为0
' H. d6 x: Y! V/ Z. V
实体控制
: A9 ^. W0 x# \! R* Q# g4 ?6 t
命令(参数列表)) 说明
! g8 _) J: k/ V
closeinput( object ) 关闭实体的输入端口
P3 g+ k3 K) W
openinput( object ) 重新打开实体的输入端口
: |6 y0 C8 g6 r0 y! m
closeoutput( object ) 关闭实体的输出端口
+ f8 i5 e3 A1 R5 x. k& d- m2 ?
openoutput( object ) 重新打开实体的输出端口
( H9 C5 w& Z n, R: X5 c7 @
sendmessage( toobject, fromobject, parameter1, parameter2, parameter3 ) 触发实体的消息触发器
8 r2 {4 @" W( ~
senddelayedmessage( toobject, delaytime, fromobject, parameter1, parameter2, parameter3 ) 在一段特定时间延迟后触发实体的消息触发器
9 W7 n5 k; d3 s6 `: s
stopobject( object, downstate ) 无论实体在进行什么操作,都令其停止,并进入指定的状态
" A( s0 E3 ]( @% _6 p
resumeobject( object ) 使实体恢复其原来的无论什么操作
4 ^: \4 m' [9 w0 j
stopoutput( object ) 关闭实体的输出端口,并累计停止输出的请求
! F, l4 p; Z# ]* z
resumeoutput( object ) 在所有停止输出请求都恢复以后,打开实体的输出端口
- A! N7 ~* t/ O5 g$ i
stopinput( object ) 关闭实体的输入端口,并累计停止输入的请求
g+ v2 t4 g4 e6 U; {4 h1 H, h
resumeinput( object ) 在所有停止输入请求都恢复以后,打开实体的输入端口
+ }+ z- j# @ m! C; ^
insertcopy( originalobject, containerobject ) 往容器里插入新的实体复制品
9 `5 z* W; T; ?# l
moveobject( object, containerobject ) 将实体从当前容器移到它的新容器中
; W: [. s3 Z2 o, }
高级函数
2 N# z2 U/ v. n3 [$ E8 H7 L% h5 t3 c
实体变量
9 _" z8 O1 T. v
命令(参数列表) 说明
% V7 u e, G$ s8 @. F4 m
getvarnum( object, “variablename” ) 返回给定名称的变量的数值
" f' t$ H: F3 w; W# j/ m! Q% k: ?
setvarnum( object, “variablename” , value ) 设定给定名称的变量数值
8 K8 F9 K7 a; N' X
getvarstr( object, “variablename” ) 返回给定名称的变量的字符串值
4 t p6 z4 ?# ^" K$ X+ [/ z2 O. L
setvarstr( object, “variablename” , string ) 设定给定名称的变量的字符串值
/ Y4 t; F) X; K
getvarnode( object, “variablename” ) 返回一个节点,作为指向给定名称的变量的引用
0 W0 I* v. B: f, ]4 x$ k
任务执行器控制
$ B6 |6 v9 K. Y% c' i4 u1 j
参见任务序列,可以获得更多有关控制任务执行器的信息。
$ w# s% U8 l, m! W5 z! K
提示和界面输出
2 o3 N4 B1 N" ]$ E( k( N
命令(参数列表) 说明
$ r/ k% G# x0 y: @) t' j, x
pt( text string ) 向输出控制台打印文本
2 Z, j1 f8 k3 r, }( p* E
pf( float value ) 向输出控制台打印浮点数值
* v0 Q N u) ^+ C& n: D0 v
pd( discrete value ) 向输出控制台打印整数数值
* V Y& Z! V, M6 K3 U
pr( ) 在输出控制台中建新的一行
7 U% t/ d w$ U$ G3 ]
msg( “title”, “caption” ) 打开一个简单的“ 是、否、取消”消息框
- N1 m( l% G' u4 S
userinput( targetnode, “prompt” ) 打开一个可以设定模型节点值的对话框
- Y1 p$ ]. k, ?1 K: K' m _
concat( string1, string2, etc. ) 合并两个或多个字符串
: q. |! K3 ?% b. ?
更多高级函数
4 ~" E* Q! e) B7 t0 K* y% t
下面是可能使用到的更多高级函数。这里没有提供参数列表,参见命令集可获得更多信息。
& Y/ [! s7 ^$ g. B) F
节点命令 - node(), nodeadddata(), getdatatype(), nodetopath(), nodeinsertinto(), nodeinsertafter(), getnodename(), setnodename(), getnodenum(), getnodestr(), setnodenum(), setnodestr(), inc();
, e& i) W! w$ c8 F. z5 I+ [1 e, @ a
数据交换命令 - stringtonum(), numtostring(), tonum(), tonode(), apchar();
, F* ^8 X! w; v- e F+ x6 R( |
节点表命令 - setsize(), cellrc(), nrows(), ncols();
. u0 o' a0 e4 C4 K# ?
模型运行命令 - cmdcompile(), resetmodel(), go(), stop();
- a1 Z/ `& O, e8 { h% D. f; }$ D: _2 w/ l
3D个性化绘制代码命令 - drawtomodelscale(), drawtoobjectscale(), drawsphere(), drawcube(), drawcylinder(), drawcolumn(), drawdisk(), drawobject(), drawtext(), drawrectangle(), drawline(), spacerotate(), spacetranslate(), spacescale();
! K. f/ Q$ X& Q) x& a. x ~; z2 ~
Excel命令 - excellaunch(), excelopen(), excelsetsheet(), excelreadnum(), excelreadstr(), excelwritenum(), excelwritestr(), excelimportnode(), excelimporttable(), excelclose(), excelquit();
5 Y' Q" X% m& k% [6 }& W
ODBC命令 - dbopen(), dbclose(), dbsqlquery(), dbchangetable(), dbgetmetrics(), dbgetfieldname(), dbgetnumrows(), dbgetnumcols(), dbgettablecell(), dbsettablecell();
& I3 S1 [0 [/ n2 @# o6 O: d6 R) n
运动学命令 - 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