全球FlexSim系统仿真中文论坛

标题: 货架属性修改 [打印本页]

作者: feng_gdd    时间: 2019-10-30 15:49
标题: 货架属性修改
在代码生成Rack的过程中,会遇到需要修改Rack的bay和level的情况。目前有两个问题:
% f! M3 \  o# N9 `  _: ]: m1,在代码里面修改Rack的bay和level的值之后,如何在3D模型中显示出修改后的Rack外观;" G  k' Y$ S2 ?9 J& d
2,会存在一个Rack中不同的bay或level的值不一样,如何通过代码修改每个bay或者
( P1 _, I: ^) w2 f* {- O" Wlevel的值,使Rack属性中bay or level最终显示的值为修改后的值。
" x+ i) x0 Z0 ^4 E
作者: 1780043361    时间: 2019-10-30 17:18
本帖最后由 1780043361 于 2019-10-31 09:28 编辑 : r8 f1 J8 z" A/ z* `/ p: w3 F
8 s% Q: {+ P. [; |9 k0 Y8 ]
试试这样的代码 ,底层原理我也不懂,只是用脚本执行了默认窗口的点击“应用”功能,能实现代码更改货架尺寸及不同层高度
9 h5 k8 N9 J4 k5 H0 g
作者: 1780043361    时间: 2019-10-31 09:36
1780043361 发表于 2019-10-30 17:18
# m7 I3 c7 B2 m: S2 j5 J2 J试试这样的代码 ,底层原理我也不懂,只是用脚本执行了默认窗口的点击“应用”功能,能实现代码更改货架尺 ...

- F  A7 p! [5 {. l8 e2 n1 T  h' D有没有大佬可指点下(1)如我上图中的模型,在我关闭了货架的属性窗口后,VIEW:/active下面代表货架属性窗口的节点(图中红框所示)已经消失,但为何却没有影响我后续的对该对象的引用及执行  (2)如何能直接返回某个对象当前已经打开的GUI窗口的引用,如图中货架所对应的红框中的节点。
作者: feng_gdd    时间: 2019-10-31 11:25
1780043361 发表于 2019-10-30 17:18* G  W; \9 Q. C8 h' f
试试这样的代码 ,底层原理我也不懂,只是用脚本执行了默认窗口的点击“应用”功能,能实现代码更改货架尺 ...
( J; _7 \  ^0 `9 G
谢谢您提供的一个思路,这个操作是在每个Rack的 活动窗口中进行的,对于Rack数量较少时,这个操作是完全没问题的,可是对于货架数量很多时,这样操作会不会很影响效率,所以,可以考虑在单个节点上进行操作,希望有思路了再互相分享,谢谢!
作者: 1780043361    时间: 2019-10-31 14:51
feng_gdd 发表于 2019-10-31 11:25  a# [5 e# g# {: M% G2 [3 ~
谢谢您提供的一个思路,这个操作是在每个Rack的 活动窗口中进行的,对于Rack数量较少时,这个操作是完全 ...
8 q& t. A" H2 d; j7 _
改进了一下 绕过了GUI的环节, 这样更新多个货架的属性会方便些
  1. treenode rack = node("RACK", model());//根据名称“RACK”引用货架3 y( ^# e9 L5 p) u" i
  2. function_s(node("/?Rack", library()),"BasicRefreshTable",rack,4,2,1,2);//设置层数 列数 高 宽8 A4 c' Z- n  U; p- J9 E
  3. treenode sizetable = getvarnode(rack, "sizetable");//获取货架的尺寸表格
    0 N: H9 s0 D9 U2 e1 m) |2 q
  4. settablenum(sizetable,1,1,2);//设置第一列第一层高度为2# |3 J: m) r2 n" @3 Z
  5. function_s(node("/?Rack", library()), "RefreshTable", rack);//可直接更新
    / I5 W5 W* ?! r: U" J3 I
  6. repaintview(current);
复制代码
+ M4 i, V0 W- u7 b: I

3 p& F1 u  {- P2 L) g0 f$ w: l' P
作者: feng_gdd    时间: 2019-10-31 19:28
1780043361 发表于 2019-10-31 14:511 c  X. n8 _. @1 c* i3 M# y
改进了一下 绕过了GUI的环节, 这样更新多个货架的属性会方便些

; T) A9 u9 |2 v, j! [7 ^请问您这样操作完成后,货架在3D模型中还是连续的吗,我刚才试了下,这样操作完成后的货架是断断续续的,不是完整的货架
作者: feng_gdd    时间: 2019-10-31 20:18
1780043361 发表于 2019-10-31 14:51
8 @4 H9 i1 d/ h, F$ ?0 L改进了一下 绕过了GUI的环节, 这样更新多个货架的属性会方便些
1 o9 b0 G2 C% X6 H/ C; A7 E2 A
  1. function_s(node("/?Rack",library()),"BasicRefreshTable",rackm,content(addbaym),content(baym),setlevelnum,setbaynum);
复制代码
" D+ T! W) j9 l1 p% [+ D' I$ ~: `
改成这样子
# n  ^1 ?" [/ b) H$ _
  1. function_s(node("/?Rack",library()),"RefreshTable",rackm,content(addbaym),content(baym),setlevelnum,setbaynum);
复制代码
! c+ s7 u0 i9 E+ }5 G6 r/ R- V
就可以了,我这边的实验结果很满意




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