全球FlexSim系统仿真中文论坛

搜索
查看: 341|回复: 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分别对应上面四种实体,判断里的代码总是识别不了我给临时实体设置的标签,有没有哪位老师可以帮我看一下,是哪里的问题,该怎么办才能解决,十分感谢!- N% ~, v4 p4 t5 H1 K5 v. m
发生器的代码如下:
0 k- t9 e! q9 T/**Custom Code*/
& K9 M* D9 B8 `  ]) V
  l. R$ v+ }# p$ b. \Object current = ownerobject(c);' B: ?3 u3 z3 y, a9 ~* }+ N0 W
Object item = param(1);
. c3 ~5 o7 {1 Hint port = param(2);
* A9 Z+ ^) r* k4 p3 h3 \
8 Z3 d" y6 a7 V6 Y2 TObject involved = item;0 G0 t: r/ _* J# G) r2 C
double x1 =180;) X) w- m* m) N% l. |9 w
double y1 = 0;
; w' k( m7 [% V+ g! \3 b  Zdouble z1 = 0;
2 ]/ o2 U. N' n  J- u: J) b* \. g1 d3 K$ a. Z( H$ ]
double x2 = 0;( U6 C* Z2 P! d) D3 s% d
double y2 = 0;
% m4 X3 Z4 H+ }2 ?' qdouble z2 = 180;
' w. f0 G5 J$ ~! i; R  o
3 h3 t7 E" y8 x5 Z# d) C: bdouble x3 = 180;
% D* W9 L" u) N% V# g  H: sdouble y3 = 0;
4 T: X% c2 c) i: t; X7 L6 R/ Xdouble z3 = 180;! f: G1 M6 Q' Q1 [; t
& d: m( z4 |' @( w: G
double x4 = 0;
3 Z4 w# q- @0 b) Hdouble y4 = 0;
3 z* l5 ?7 |: i9 C- I8 t$ k6 s7 Idouble z4 = 0;1 [$ D% e. e7 ~& A3 S8 |

0 T* X8 j5 Z% l- Z# Gdouble randomVal = duniform(0, 4);' F% ?0 Y. g* M. h" _  S. \
if(randomVal < 1)
! W; [1 I( s# |{+ ~( h8 s. {1 [( c8 Q: A' \
   setrot(involved, x1, y1, z1);
) z8 o' G# e: s5 g  setlabel(involved,"Rotation","xRotation");
3 Z$ u! a* ]! i}* ]: O" R. ], v) _8 d
else if( randomVal < 2)
; t4 V+ F/ [& K/ O1 m- d/ B) }, m$ L{  
1 Y4 T( m% j' u1 X! x    setrot(involved, x2, y2, z2);5 a0 x( z- c9 f  d( w# y2 p1 p/ s
   setlabel(involved,"Rotation","zRotation");
# D. O* X( [0 J9 G* q1 e6 B}, j# K8 @" c! N3 K' _( _+ m- \
else if(randomVal < 3 )
4 K: ~. p  O6 P; w{( {3 y: ~# R" c" {5 y
    setrot(involved, x3, y3, z3);0 G3 U8 d6 b* J/ f
   setlabel(involved,"Rotation","xzRotation");. X- R/ D7 ~* m! K" B
}
; v+ r# }' `7 f' L0 H6 S) Y! h: M7 Telse$ D! c" g  x5 V; O
{
! y. T! C' Q+ o  A    setrot(involved, x4, y4, z4);/ e7 N8 h9 Q* k
  setlabel(involved,"Rotation","noRotation");- l4 U* L+ i" P# B; ]# @0 d$ K
}% i' C5 l& F) v7 H# B! v! u1 P
判断的代码如下:& _1 V/ p# h' ]3 t3 ^
/**Custom Code*/
1 P6 v6 g9 l7 Z8 @$ EObject current =ownerobject(c);
$ s- L" @3 p  h. W7 r" {Object item = param(1);
6 i" {  d  Q2 w, y6 P: h( O- tint port = param(2);5 I$ W' X( o& g6 a
0 S# j0 y* `( D& W- n6 g3 T& ~
Object involved = item;
& U" s  g% x" J
: A( P) q, O# i% }" W3 Y6 Xstring labelVal = getlabelstr(involved, "Rotation");
: v: e% D  }! ]0 Z% ~/ T) @# W' K% Z
1 Z% z4 P' M9 Y% cif(labelVal == "xRotation")
5 F, E5 Q, |6 }, l9 m{
. P6 c3 V5 V6 y* I# z' p    return 1; // Divert the item to port 1
2 X, @! W' ~5 I3 \3 n; B( W}) T7 h" f3 U8 [; I
else if(labelVal == "zRotation"). g: r* B, M7 `6 h# M2 ~. O
{
" k  `3 Y+ @1 S# @, U8 i! e    return 2; // Divert the item to port 2
+ ~# }2 L; h  J. T4 G}
; A3 k& r1 L* F( Q/ Z6 ~' Eelse if(labelVal == "xzRotation")! e2 n; ?9 ^4 m! j6 O0 X
{! `! O" |/ J6 v  G, @  r9 j# [
    return 3; // Divert the item to port 3- ]7 W) o5 W0 m8 f0 v. t
}
( D/ o5 z6 p- }& `! V) }! y! gelse if(labelVal == "noRotation")0 O( J; C( i2 {) W) P! R
{
% n) y6 n! _& d6 e& T$ R# }    return 4; // Divert the item to port 44 D1 y" z4 w6 z9 Q+ }9 d* {; ^
}
+ b1 N8 ~3 z3 ?, h1 ^) C2 ?4 `+ N. o, A
+ G: b/ {! C+ e模型附上:
: g& O# s9 L$ Z6 X, a

本帖子中包含更多资源

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

x
2#
csn-support 发表于 2023-12-13 09:58:25 | 只看该作者
在pf中没有对四种类型的标签赋值,需要赋值以后再进行判断。* d: f$ N+ n$ F# ^6 x

本帖子中包含更多资源

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

x
3#
 楼主| 廉梦华 发表于 2023-12-13 11:53:51 | 只看该作者
csn-support 发表于 2023-12-13 09:58! w7 N5 m1 @  O# ?
在pf中没有对四种类型的标签赋值,需要赋值以后再进行判断。
; A$ y4 o$ c& F5 Y7 h
谢谢!谢谢!十分感谢老师的指导,
4#
csn-support 发表于 2023-12-13 12:07:11 | 只看该作者
廉梦华 发表于 2023-12-13 11:532 D8 @" r: V. ]  W' q+ a3 q5 \1 ^
谢谢!谢谢!十分感谢老师的指导,
3 \/ z, U9 j0 b/ l4 O: H
直接读取标签也可以,不过要记得加上token.
' t1 r' q3 C7 j- a8 w) m6 J

本帖子中包含更多资源

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

x
5#
 楼主| 廉梦华 发表于 2023-12-13 13:40:55 | 只看该作者
csn-support 发表于 2023-12-13 12:07
( ?! H3 e( u2 b3 l$ l$ z直接读取标签也可以,不过要记得加上token.

; H- G% O8 e0 n* @: x8 `6 K, b2 ?感谢老师的指导
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-28 03:31 , Processed in 0.069480 second(s), 14 queries .

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

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