全球FlexSim系统仿真中文论坛

标题: PF里判断命令代码无法识别标签的问题 [打印本页]

作者: 廉梦华    时间: 2023-12-13 08:46
标题: PF里判断命令代码无法识别标签的问题
我想达成的结果是——通过发生器创建四种不同的临时实体,分别是绕x轴旋转180度、绕z轴旋转180度、绕x轴和z轴旋转180度、不旋转这四种临时实体,同时给这四种临时实体赋标签分别为xRotation、zRotation、xzRotation、noRotation。然后从PF里的判断命令中引出4条支线1、2、3、4分别对应上面四种实体,判断里的代码总是识别不了我给临时实体设置的标签,有没有哪位老师可以帮我看一下,是哪里的问题,该怎么办才能解决,十分感谢!
/ N" E, K+ ?* i9 A5 h! C& m% r发生器的代码如下:) q/ d, s+ d( j: A. |+ U6 y6 g
/**Custom Code*/
+ I9 n% c- M7 Q- s3 K) e% \$ v' {
' p, `, A' @/ g6 I+ @, b4 \Object current = ownerobject(c);
/ E8 S8 r: o& V* e5 Y( G, cObject item = param(1);9 d) l, T8 b6 m! f9 c
int port = param(2);9 u: \1 |: Z8 D
; S( U, n; ]! _& m4 R, s7 W
Object involved = item;7 ]! ]4 B3 g% b0 v! W7 b7 y- n
double x1 =180;
' J5 R5 m$ T( W) E# j& Jdouble y1 = 0;
% \8 |) e% j1 |' `/ r* Sdouble z1 = 0;6 @. D6 F0 z! p4 x

9 D7 N6 Y- H% W$ t4 x7 c$ Z- G& gdouble x2 = 0;# k* e; z7 V  ?. V. C6 H
double y2 = 0;! h/ R  Q: N" n+ R% W/ J, f
double z2 = 180;5 H: W7 R# L& ], ?- \+ w
" U7 f' |* I8 k
double x3 = 180;
" c5 s8 b5 L" r# y0 k4 ydouble y3 = 0;
, q- W  k2 n) v8 P* g& ~! O* X% _double z3 = 180;2 y1 Y4 N& K$ G- c& g

7 Z' Q/ R: T3 z, {" t; k+ sdouble x4 = 0;8 R, `. ?' x' R5 u- o4 Y1 V* e
double y4 = 0;
& d6 o) z: v6 I( N2 X; ?& I$ R7 w: n8 \double z4 = 0;- W( W8 e) Y. j7 ?+ \  j

  C3 L, M0 D- tdouble randomVal = duniform(0, 4);; X- A3 I1 K1 T
if(randomVal < 1)
6 c) D( Y  G3 Z2 a- i6 ^2 H{3 x" x" ], S% U' J6 A! k
   setrot(involved, x1, y1, z1);4 \1 ?: Z9 D8 l; ^( l
  setlabel(involved,"Rotation","xRotation");+ f9 w$ e7 c; W
}4 |) X5 ?( i! a) g
else if( randomVal < 2)# h. R1 L! k# Y0 {; C
{  
( }; ]- G5 }2 X" ]    setrot(involved, x2, y2, z2);/ Q0 W/ a" b& n; U
   setlabel(involved,"Rotation","zRotation");4 ~8 ], c) G* }" k4 t7 T7 V6 P
}, L$ t9 Z# r  ~* z
else if(randomVal < 3 )3 \8 Z  B2 T! `; d6 Z6 p& w6 N
{
( ?4 B4 Q0 A  m' c    setrot(involved, x3, y3, z3);$ Z" R  Z+ _2 t2 G# b" h) E
   setlabel(involved,"Rotation","xzRotation");3 f5 ]' k' X' M1 s
}- J) Q, _6 d  i2 a" K4 ]% y* `' C
else
; r& x8 q( L, A6 R. t+ o+ N" l& ^{
" m8 t! W3 V' M7 s) Z) _0 X, [    setrot(involved, x4, y4, z4);
  ~( u! V) W& S! I  setlabel(involved,"Rotation","noRotation");
- x2 D/ g! e5 V$ W1 C+ o( [8 {5 F4 E}$ C+ \/ k' X2 q2 C
判断的代码如下:1 q& _4 p( z* V$ _) _! C' q) R
/**Custom Code*/% ]5 u$ |9 E5 P" K6 J. P
Object current =ownerobject(c);% s- x" S% P7 Y) g; q2 z! n. T
Object item = param(1);
! m0 T2 M; C* Y+ {3 {* n# C  D# ?8 Jint port = param(2);
( I$ e" y( u6 c( ~- |
. l. e* b4 w3 P/ f* N! `Object involved = item;# v1 h( {6 n) z/ s& u8 A( u" o
0 R  Y/ S' {( n. i$ g
string labelVal = getlabelstr(involved, "Rotation");. E1 g# F* P9 F  D3 k/ ]

3 r3 ?4 p. a2 `2 xif(labelVal == "xRotation"). C$ i$ Z$ r- a; ?) v
{
$ G3 o, b2 R9 c/ @% s3 g! Z    return 1; // Divert the item to port 1" O5 R$ L1 b, K# B
}! G% p* v9 ^. W: q; M. Q: L) H7 Z
else if(labelVal == "zRotation")
  a9 k" @6 G3 @, v6 `4 Z" ?3 u{
! K$ C- S* p% ~8 {$ `    return 2; // Divert the item to port 2. _6 R1 V) y. F3 S9 o
}2 `* B; w; S2 M/ K- I% o
else if(labelVal == "xzRotation")
! z6 x- K* Z6 Z) @{
# c, ^( D: ^. A$ f8 b+ X    return 3; // Divert the item to port 34 V4 g+ [4 ]& T/ n% M! I. o' e  O9 i" N
}
% X0 T# n9 g1 O7 t& [else if(labelVal == "noRotation")' e* b3 n& Q+ A, L0 Q5 v
{( W6 h3 V- _2 E9 Z4 m" P: o. Y$ _
    return 4; // Divert the item to port 41 p7 x4 |7 V* j
}
# r: h0 z4 O( D; o( X
( V, `& E. z8 |) R模型附上:: _1 c3 q) b; d( m) V; l4 l) c+ b

作者: csn-support    时间: 2023-12-13 09:58
在pf中没有对四种类型的标签赋值,需要赋值以后再进行判断。: b% b# `. C7 R8 q8 c4 \. m4 i

作者: 廉梦华    时间: 2023-12-13 11:53
csn-support 发表于 2023-12-13 09:58
. l; w: n: ?: a  G7 f- ~在pf中没有对四种类型的标签赋值,需要赋值以后再进行判断。

, x; O7 a0 p2 K/ p- _- }2 }谢谢!谢谢!十分感谢老师的指导,
作者: csn-support    时间: 2023-12-13 12:07
廉梦华 发表于 2023-12-13 11:53
' \% b7 \3 A' h1 g: Y6 j谢谢!谢谢!十分感谢老师的指导,

& @. N" n" @0 b9 ~' |: Z$ N直接读取标签也可以,不过要记得加上token.
- I; B$ d3 B' c) R
作者: 廉梦华    时间: 2023-12-13 13:40
csn-support 发表于 2023-12-13 12:077 U9 ^6 ]) B0 X/ H8 Q. C& O
直接读取标签也可以,不过要记得加上token.

. S5 k; i% F0 t# A, Z感谢老师的指导




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