全球FlexSim系统仿真中文论坛

标题: 请问如何如何根据生产状态(比如开机或停机)改变实体(比如处理器).... [打印本页]

作者: 匿名    时间: 2019-1-25 17:10
标题: 请问如何如何根据生产状态(比如开机或停机)改变实体(比如处理器)....
比如一台处理器,设置了SETUP TIME,则在OnSetupFinishi里设置改变固定实体3D外观的触发,表示开始作业。- T  ^/ m5 z+ O4 ~% H/ F# g5 r
系统的默认程序(已将item改成了current):& q2 ]- f4 Z/ n7 \' S1 [1 ^. ^
treenode item = parnode(1);
6 Q5 p- R  j& S! j: ~4 X, U, Wtreenode current = ownerobject(c);. x8 C0 k# J; Y, K, w, ^
int port = parval(2);
0 F( S2 Q0 {  Y: E( F{ //************* PickOption Start *************\\
$ |2 H* ]& m9 u( M; n2 y/***popup:Change3DShape*/
4 p2 w* v+ T9 D' g+ d/**Change 3D Shape*/
8 n/ {! L& m* a/ i& K/** \nObject: */
& S0 x( V; d$ u3 J. H, x0 Vtreenode involved = /***tag:node*//**/current/**/;
% }5 L  ~& c& f/** \nShape Index Number: */
6 w+ E, ]6 g7 I" c: f- Hdouble theindex = /***tag:index*//**/getshapeindex("fs3d\\General\\Box.3ds")/**/;
3 w6 K  n* i/ o3 l- E" D& f
: \5 K4 F0 m" N  J. B2 N9 asetname(shape(involved),"_shape");, d+ F  o& s1 i/ \
setobjectshapeindex(involved,theindex);
% ~& F) H7 H) A" I6 G/**\n*/
! S, Q9 e0 n( q' ?) p7 q7 {} //******* PickOption End *******\\
: X# T1 E: x$ [; V7 n
: o  Q2 e: ?: |/ d7 _9 P其中,/ o. G, e$ ]9 F* _6 g9 J
fs3d\\General\\Box.3ds* H9 T) H5 s) j/ H7 ~
我尝试将自己的模型(SKP格式)放到这个路径下(C:\Program Files (x86)\Flexsim6\fs3d\General\),但一旦触发生效后,模型没有显示出来,读取失败?
4 E8 e/ j; d9 G! s请问正确的操作是怎样的呢?谢谢!
5 c7 i* u; d- \7 N' b7 P; D! |) E5 O1 K9 {( j4 [

作者: SunshineFu    时间: 2019-1-25 20:13
不清楚具体情况,可以上传模型吗?
作者: 王奕    时间: 2019-1-25 20:42
你好,请查看附件,
7 ^/ v/ e: Z% R) m1 Z+ Y& B里面包含了两个SKP模型和一个FLEXSIM6版本的模型。- g2 p9 O- V3 `/ h
FLEXIM模型是想描述一个烘箱的工序过程:停机的时候,门是打开的;开机运行的时候,门是关上的,所以想通过OnSetupFinish触发和OnProcessFinish触发来改变外观,但不知该如何让它们能正确显示出来。0 a1 f/ C" Z& L, q. p
谢谢!
作者: 王奕    时间: 2019-1-25 23:11
本帖最后由 王奕 于 2019-1-25 23:17 编辑 2 t- P8 F6 V) W9 y8 T
) Z1 ~2 k2 O5 c5 |: L$ w
问题如图
作者: Stevenzheng    时间: 2019-1-26 09:23
我式了可以呐,只是在Shap下拉框中选的.
% G; {* p: m  T+ `( i- J& J1 }& y8 `6 D3 r

作者: 王奕    时间: 2019-1-26 09:51
我用的是flexsim6版本的,一直没有试出来
作者: Stevenzheng    时间: 2019-1-26 13:15
王奕 发表于 2019-1-25 23:11
7 _" `0 z( Y8 g: R2 f2 a$ G问题如图

! E$ }+ j- m! j+ x我用7和18刚打开也是这样的,但是选那个shap下拉框里的就可以,6没有那个下拉框吗?或者你用吸管吸下试试呢
作者: Stevenzheng    时间: 2019-1-26 13:23
Stevenzheng 发表于 2019-1-26 13:15
+ H: f) T' Z' h- z/ \, Q. T我用7和18刚打开也是这样的,但是选那个shap下拉框里的就可以,6没有那个下拉框吗?或者你用吸管吸下试试 ...
3 |9 |1 n1 ~, c3 W4 q% o0 D
里面代码是这样的:
( H8 D) f  d" w# ~treenode item = parnode(1);' c' ~/ R; L# W& H
treenode current = ownerobject(c);
0 S$ M8 l' d) i. h' m0 P{ //************* PickOption Start *************\\
% C- s9 _% T$ p, B' m% l/***popup:Change3DShape*/6 q+ y7 G/ \5 r# z$ f4 C- s: y
/**Change 3D Shape*/
! i8 \0 E& Z% Z# vtreenode involved = /** \nObject: *//***tagbject*//**/current/**/;
: M1 n$ i$ r# l7 `- L$ D# `string shapename = /** \nShape: *//***tag:shapepath*//**/"C:\\Users\\admin\\Desktop\\flexsim model\\sketchup models_CS\\heating cabinet_type1_running.skp"/**/;" j6 x( o" y6 C5 D
4 g4 S, n8 [( `% F2 `3 t7 m& y
double theindex = getshapeindex(shapename);! e+ m, U% n" u: M' f0 I

1 @/ N9 }' y9 K# q//Grab the current size of the object" m6 z  J- l+ G5 y& q' T
double x = xsize(involved);* W# o) G5 A% t. f0 x1 M9 R
double y = ysize(involved);
! I. R# T! s; i: l# k/ Ydouble z = zsize(involved);9 X2 |# L) b0 b, G

) i& U* a3 |' a" q+ E2 t3 \5 dsetname(shape(involved),"_shape");0 P/ O6 M8 X/ z& ?
setobjectshapeindex(involved,theindex);
3 c0 ?+ D& I' v- L! J' D
8 W2 V/ m+ |2 Y4 D, o9 f//Update the object to the original size" a! p5 j9 h+ P% @) E* Q+ [
applyshapefactors(involved);  N/ t+ r: ~: H  h' O* `
setsize(involved, x, y, z);( m( _; z+ O1 T* z3 [1 F
/** \nNote: The getshapeindex command is slow if it is called frequently. " Q6 Z7 M; ^* o" |
It is better to define the shape index in a global variable that gets set % M* ?/ U; r0 F9 Q* @2 ^
during reset. You can then replace getshapeindex with the name of your global variable.
6 f2 B8 N1 A. Y* J. w4 F. k0 z6 G4 ^3 \Index values for 3D shapes can be found through the Tools>Media Files menu,
. }) p6 P7 _/ P8 nbut keep in mind that index values can change when new media is loaded.*/7 C2 h" Q: z0 b5 x- P. s
} //******* PickOption End *******\\
9 s4 `! Z" g. I2 E8 F
作者: Stevenzheng    时间: 2019-1-26 13:25
本帖最后由 Stevenzheng 于 2019-1-26 13:28 编辑 7 l- v  R2 {+ E! E! \. E8 _
Stevenzheng 发表于 2019-1-26 13:23% P. @  X/ e  M/ Q7 P8 K7 G2 W
里面代码是这样的:3 {3 g4 f* b' b  c
treenode item = parnode(1);" u3 t" n( X/ e6 b1 O: x( v! [
treenode current = ownerobject(c);
0 B# O0 i8 O& r8 y0 P$ p1 Z9 \  q
那个表情是一个冒号和o,被识别成表情了,另外我是把原来的触发删除后重新建的触发,在原来的触发上边改了保存不上
作者: 王奕    时间: 2019-1-27 10:43
Stevenzheng 发表于 2019-1-26 13:25% C4 n  b" ]& C  q( ]" V% f* m) ~/ \* a
那个表情是一个冒号和o,被识别成表情了,另外我是把原来的触发删除后重新建的触发,在原来的触发上边改 ...
( s0 o4 P4 K0 T* E# T6 D
感谢回复,6里面没有吸管,也没有下拉框,只能通过代码来尝试。
9 I2 E( N3 Y; l% N: J, q又试了几次,还是不行,只能改用别的方法来标识了。




欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3