全球FlexSim系统仿真中文论坛

搜索
查看: 408|回复: 4
打印 上一主题 下一主题

PF里判断命令代码无法识别标签的问题

[复制链接]
跳转到指定楼层
1#
廉梦华 发表于 2023-12-13 08:46:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想达成的结果是——通过发生器创建四种不同的临时实体,分别是绕x轴旋转180度、绕z轴旋转180度、绕x轴和z轴旋转180度、不旋转这四种临时实体,同时给这四种临时实体赋标签分别为xRotation、zRotation、xzRotation、noRotation。然后从PF里的判断命令中引出4条支线1、2、3、4分别对应上面四种实体,判断里的代码总是识别不了我给临时实体设置的标签,有没有哪位老师可以帮我看一下,是哪里的问题,该怎么办才能解决,十分感谢!$ Z: }. i7 W+ I7 y, W
发生器的代码如下:8 Z8 I) Z1 [% _" n
/**Custom Code*/, b! r5 M) X: i! s/ u# _

2 V) k* ]" \2 qObject current = ownerobject(c);. @8 c' X( O3 P2 i8 M8 b7 T( W
Object item = param(1);. g9 j) N/ ~1 K9 i
int port = param(2);
" d0 S3 W4 @4 |3 v9 N, A0 ]8 U& h, D- c/ u
Object involved = item;! T; M- x, h% {$ F, y
double x1 =180;
! A6 K- g* ]; U2 Cdouble y1 = 0;! u& @  Z5 _/ H! {% i
double z1 = 0;. p- U- H7 t3 s- a, [
$ T; [7 n9 n# ]8 l
double x2 = 0;
: A( |3 I% j- R2 E5 }% }* A; S. pdouble y2 = 0;
8 n& X% q+ s& @$ a  G' xdouble z2 = 180;
. A. Q! A6 D5 g, w: R/ @0 v3 m$ P  A+ s/ e" p0 O  G2 v
double x3 = 180;
* D: C  ]/ F9 B% Z1 k, N9 Qdouble y3 = 0;
1 k* r2 `9 t# Q! G9 p" n: }8 Zdouble z3 = 180;0 I8 g; _/ \( I5 K' d" ]7 D' ?

# s9 c2 E, n& }; h$ c% u1 H/ M' Ddouble x4 = 0;) [( Y' C) B+ Y( I4 [. b+ {
double y4 = 0;! p. w% j1 [6 a' {
double z4 = 0;
; l; o9 i  |: g0 i2 p. W# ]9 m
$ p6 e3 Z$ h3 E, S5 c% adouble randomVal = duniform(0, 4);
& m; w$ i- L" Z3 _, O2 n# Q  vif(randomVal < 1)
% |' l% r4 f* J0 d{9 v# V3 Q. @6 b6 B; @4 g5 g
   setrot(involved, x1, y1, z1);
; |7 ?( Z2 H) {% C  setlabel(involved,"Rotation","xRotation");' X7 W0 l1 P+ d$ C" J
}
( D' u3 j* G6 jelse if( randomVal < 2)
9 M& V  b9 A+ u% }$ E{  
8 m, O& I* |  T4 Z    setrot(involved, x2, y2, z2);9 c7 T( W: m; r$ F+ u
   setlabel(involved,"Rotation","zRotation");
+ a% S1 P& ?& a" q0 L1 K* }/ F4 _- @3 G}
5 ]- F* N) J! m6 |% B2 A; |else if(randomVal < 3 )& L' d- f: Y* N7 r
{
7 G* G% n2 h  k* j% d1 \+ q    setrot(involved, x3, y3, z3);
% x5 T) g3 j5 H/ P1 B9 s   setlabel(involved,"Rotation","xzRotation");: k1 J1 J7 f# A8 h3 Z
}
2 M( c  N" M" T# z* u3 I2 qelse$ {. b$ l" C; e! Y1 p% }" m) @
{
% e! z& v3 }' x. M% E    setrot(involved, x4, y4, z4);
7 S0 Q5 s' b& P& t4 |6 |% k  setlabel(involved,"Rotation","noRotation");
* t1 ?+ r8 E0 H' v4 a" S}
# o1 d" D, U3 }( U* \: n判断的代码如下:
' Y* |! a$ r# a% L4 _5 a$ T/**Custom Code*/2 n' c3 g8 B* y8 k$ w& j4 Q9 T
Object current =ownerobject(c);
/ ]7 O. e3 `3 K* c# W0 j4 X" AObject item = param(1);/ b* T' C. j; k6 r. o3 o7 @
int port = param(2);
' v3 k- E: c* X2 p% i8 m0 Y2 _' K
6 l" x/ j2 F. A" O7 aObject involved = item;) }; {' F. i. d% x- D4 ~( `- h

+ U; H% x7 @8 n6 Hstring labelVal = getlabelstr(involved, "Rotation");) B8 V* x5 _8 s5 A; G( Z* o; x
- e  f" N4 I( n# w# h" m$ `3 ^/ Z
if(labelVal == "xRotation")# v8 T8 B0 P* Y8 [  `- `  w) s
{
( L# \, d& o, i- C    return 1; // Divert the item to port 1
4 p8 w" H" |+ U  X$ W. f}/ P* L$ ?4 \( y8 A" x8 P1 l. B
else if(labelVal == "zRotation")
  p/ q7 P/ b5 Y) V{
& a; ~& O8 Y7 m) i- X9 b( j    return 2; // Divert the item to port 2
( [+ Y. W/ u( |6 T}
, {+ _+ P) Z4 zelse if(labelVal == "xzRotation")
" V& I6 U' f8 s4 W& d( J. q{7 X  \' b  }1 P0 V  T  {0 E8 A) S
    return 3; // Divert the item to port 3
# K: {! [- L. v9 Z5 [6 g; A# m' _* X}5 |2 y% g% O9 J% x6 J2 _
else if(labelVal == "noRotation")0 I% I, ~0 M' L+ U4 V
{! S/ ^8 a+ j( a- w1 b) u
    return 4; // Divert the item to port 4
$ f: u, N" t  [. {# K4 ]}
) r6 G5 R' [& t) @% ]  j+ S# |6 J6 w! u" J! N" o0 [1 j( a
模型附上:
1 W+ z; K3 G# @! Q2 Q* V

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
2#
csn-support 发表于 2023-12-13 09:58:25 | 只看该作者
在pf中没有对四种类型的标签赋值,需要赋值以后再进行判断。
. C. D5 s; p# x" h* }- B7 N  i

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
3#
 楼主| 廉梦华 发表于 2023-12-13 11:53:51 | 只看该作者
csn-support 发表于 2023-12-13 09:58" z, I! B  s, p6 h
在pf中没有对四种类型的标签赋值,需要赋值以后再进行判断。

' k* D# d; F: p谢谢!谢谢!十分感谢老师的指导,
4#
csn-support 发表于 2023-12-13 12:07:11 | 只看该作者
廉梦华 发表于 2023-12-13 11:53  m/ k' e1 |2 a6 k4 a& h& k# w; p
谢谢!谢谢!十分感谢老师的指导,
! g% V1 _+ F( N8 Z# o4 t; ]
直接读取标签也可以,不过要记得加上token.1 F# ~# K" U) x8 m! K9 Q5 k% C

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
5#
 楼主| 廉梦华 发表于 2023-12-13 13:40:55 | 只看该作者
csn-support 发表于 2023-12-13 12:07
. I) P' ]6 }0 K4 m/ C) h8 c' Y5 p. ?! _直接读取标签也可以,不过要记得加上token.
+ x) I- S8 T6 i) r, o! O5 s! e
感谢老师的指导
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2024-5-20 21:37 , Processed in 0.084106 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表