全球FlexSim系统仿真中文论坛

搜索
查看: 1490|回复: 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分别对应上面四种实体,判断里的代码总是识别不了我给临时实体设置的标签,有没有哪位老师可以帮我看一下,是哪里的问题,该怎么办才能解决,十分感谢!
8 }* x8 T& i$ F% k! s% k! Q3 f发生器的代码如下:
- [, N3 Z! ^* b1 E/**Custom Code*/
3 |0 `" |" D3 r# d: g7 E: B7 _; p% Y% O/ J
Object current = ownerobject(c);# G6 l4 P6 s* S7 S, T
Object item = param(1);
7 x/ i# o. A" M' }int port = param(2);7 X( ~  i7 t; @+ n% C$ k4 S' f

7 V* c. d' \8 y: c1 BObject involved = item;  K% A5 Y) q! P6 x7 L9 O5 h
double x1 =180;  [/ s# i8 d/ m# h
double y1 = 0;
' b: u+ q) f, `double z1 = 0;1 H4 T1 k+ z1 L1 c5 n* J! z1 _+ [

- t* R% |8 |: K- y4 Tdouble x2 = 0;; e) l2 n% h1 Y# y: x0 M
double y2 = 0;, w( @) e2 A) j% c  z& A4 w7 a& w  j
double z2 = 180;
. G/ J* P; h$ s! T; b) [  Y4 r3 t1 _( ?5 B* A  `
double x3 = 180;: c3 H" M: D' i' ?
double y3 = 0;5 k5 t9 K+ ^. J' K1 ~& {
double z3 = 180;: B; W2 |+ w. ]3 r2 B
6 r! \9 H, `7 d) Y! s+ h1 }
double x4 = 0;) o* W7 ?3 L( k( }: \& ^+ q: D
double y4 = 0;
2 Y8 S" q; y. ^9 \; @* zdouble z4 = 0;, B" e) q( }' [( b# G, G1 {. s
0 A9 i. F3 N( b" r
double randomVal = duniform(0, 4);
, G- V% R( J' _' A9 S7 Eif(randomVal < 1); y7 S0 N0 Z# b# y6 s
{
3 t! H, E8 c4 n) g/ j   setrot(involved, x1, y1, z1);- _9 ]/ `2 @/ A
  setlabel(involved,"Rotation","xRotation");
, h, {/ A7 G- c; ^- t  H! M7 Y7 l+ e}. t9 {7 a8 I2 v2 K" }4 Q
else if( randomVal < 2)
" T! u+ s  v8 g$ l' U{  
( Z: U6 c  `% {" N    setrot(involved, x2, y2, z2);
) [, o- O( \: X0 M8 E+ X   setlabel(involved,"Rotation","zRotation");2 G: f5 [: ?" u# t0 \
}" G9 @3 g2 \* r: ^5 D- W
else if(randomVal < 3 )5 c( |$ T9 p! i. a% R9 K% C
{
2 @, M2 t* o% K$ h* _) U    setrot(involved, x3, y3, z3);
0 k& |* ]5 d. Z+ D* P% B; A   setlabel(involved,"Rotation","xzRotation");
, n; Q3 S( _- \" Z# J- O0 F' q}. P5 j7 W+ I% C  n
else* i# y* _  P$ x" j
{
! t! d7 U: {3 F1 Q+ v# ?: m, `7 E    setrot(involved, x4, y4, z4);
  Y( \# g. C5 E- v  setlabel(involved,"Rotation","noRotation");& b' G0 z5 c; r+ h5 l8 x- I
}
$ z% e; V5 l' t# {' A4 U5 s/ |% ]判断的代码如下:
/ s' {; r' J! Q( n; O  D% J/**Custom Code*/6 Z7 M7 F* J1 B! J& z% M7 o
Object current =ownerobject(c);5 [: ~, q8 |. c
Object item = param(1);% ^2 S" H( m) D2 l% Z" j$ S
int port = param(2);, {( `: w& m0 X; r9 p& F( S8 Q

  v7 T; c# R" g% g) T* @Object involved = item;
2 B+ T4 m$ P# \9 h; }: M' G3 L, T* J' C' @/ Z5 `' z
string labelVal = getlabelstr(involved, "Rotation");
6 y. F% ?. _" e1 n8 y/ M) B8 S) W3 T; M$ c' M+ X. @9 p; l
if(labelVal == "xRotation")8 G/ u4 }; ]: e5 d
{+ A5 g; Y) O# h* n7 h7 B
    return 1; // Divert the item to port 17 J* C" G  E1 {9 p$ b( Q3 L2 _+ k9 u! s
}
7 n. }9 Q7 G' ]2 P( ^else if(labelVal == "zRotation")
0 R0 ~. `. e& s$ B3 a{% X; u) ?$ ?* K! U3 g$ d
    return 2; // Divert the item to port 25 s! A$ k4 B3 m& ~. O
}% \2 j5 v* C; m5 Z. R& H7 J' N* p
else if(labelVal == "xzRotation")
, b% T. Z/ H! ]0 N4 W{
& V# P8 ]# z2 Z    return 3; // Divert the item to port 3
) r8 \6 R2 v. g$ `4 j}) h# r( U6 U) j
else if(labelVal == "noRotation")
* O# [& y) S# r3 {% n{
) g" N( p; j5 ?. r; x- _8 D    return 4; // Divert the item to port 4
& X8 @$ n0 i5 D9 a4 w, C+ a}
& E9 \( A3 W9 n- E9 @7 I2 S/ I0 l5 n5 |; P+ Z; y5 A
模型附上:) }; j! F2 u" P9 Z2 d7 a2 U

本帖子中包含更多资源

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

x
2#
csn-support 发表于 2023-12-13 09:58:25 | 只看该作者
在pf中没有对四种类型的标签赋值,需要赋值以后再进行判断。5 w7 g' j2 c8 J0 k6 x( A# T7 I' d

本帖子中包含更多资源

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

x
3#
 楼主| 廉梦华 发表于 2023-12-13 11:53:51 | 只看该作者
csn-support 发表于 2023-12-13 09:58, a  r  _* z4 \) Q- p
在pf中没有对四种类型的标签赋值,需要赋值以后再进行判断。
7 V/ l' ^- f# e
谢谢!谢谢!十分感谢老师的指导,
4#
csn-support 发表于 2023-12-13 12:07:11 | 只看该作者
廉梦华 发表于 2023-12-13 11:53
" o# s8 x8 {$ V% B6 R3 j) X! F谢谢!谢谢!十分感谢老师的指导,

- |- r; J. y: U0 {" P, V" k直接读取标签也可以,不过要记得加上token.
" _# Z2 }/ M9 `  g% Z

本帖子中包含更多资源

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

x
5#
 楼主| 廉梦华 发表于 2023-12-13 13:40:55 | 只看该作者
csn-support 发表于 2023-12-13 12:07. t/ b2 \6 G' O- r1 h& ~7 A/ F! |5 d0 C" w
直接读取标签也可以,不过要记得加上token.
& ?: I; c0 V! h7 ?+ I4 e
感谢老师的指导
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-2 21:02 , Processed in 0.073273 second(s), 14 queries .

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

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