全球FlexSim系统仿真中文论坛
标题:
用combiner做装配生产线,零件装配位置不正确,如何调整
[打印本页]
作者:
mymailmy001
时间:
2011-1-4 01:06
标题:
用combiner做装配生产线,零件装配位置不正确,如何调整
用combiner做装配生产线,零件装配位置不正确,如何调整
' A& k) \4 g9 H0 ]% R
在什么地方设置,好心人发个图片说明一下
# o3 a& Y) @; e) s( H1 i8 d/ R
8 N. k# ~3 N% D: O2 s
+ {" k; r$ z7 u0 C( w# E' D, c
另:如果在离开COMBINER的时候,使实体显示导入的模型,在哪里设置
, _4 r2 O* e0 H/ n
请指教,越具体越好,如果用代码,请举例具体格式
7 f4 G2 j$ x/ @, q& z
我是初学,简化的答案我看不懂
0 k; s; N* X( V7 H
谢谢啦
作者:
xiexiaoch134
时间:
2011-1-4 11:39
第一个问题可以参照本论坛的案例下载里面的“DVD装配”模型,调整零时实体位置可以在onentry触发器里面setloc。
9 Z' o% J8 g4 W d/ n
第二个问题,我不明白你的意思。请描述清楚。
作者:
mymailmy001
时间:
2011-1-4 13:47
本帖最后由 mymailmy001 于 2011-1-4 13:51 编辑
+ m3 r n5 m& m7 _8 d! h
( E' N. N* u* a
先谢谢,辛苦啦
) r" p' N5 u& N4 T
其实我只想做出装配的效果,上边问的是我听说的两种解决办法,但我都不会
+ o# d1 p, O& L3 R% r7 b7 z3 F
你说的在onentry触发器里面setloc我用过了,但是用于复杂部件定位很难,且多数位置需要坐标换算
2 T" c" |. `: S. O
' Z+ M6 N4 [: Z( N+ m8 m
第二个问题是这样的,如果把上一步骤装配好的东西做成一个3DS文件并导入Flexsim的临时实体库中,让临时实体离开COMBINER时显示这个装配好的模型,每一步都这样重复往,就实现每步装配后的效果了(QQ群听说的,还没弄明白),好像用触发器代码有个setobjectshapeindex(如下图),好像是往里输入代码,我不会。这种方法对么,能做到么?如果能行,请告诉我这个代码的格式好么。尝试了好多次,编译都不对。
6 b1 ^: k2 a3 E% s& U( j- ~
D:\1.jpg
作者:
mymailmy001
时间:
2011-1-4 13:58
我不会发图片,图片发不上去,就是下面这段代码,
9 N0 m7 M4 `0 U. p$ r
6 C. t; ?6 j( H; j
fsnode* item = parnode(1);
" ]+ x5 ~; w5 L0 [9 I
fsnode* current = ownerobject(c);
8 T! L5 t9 R; K: j
//PROSESTART
4 D1 ~+ H+ v& z7 y0 @$ Q. X
//Change the 3D shape of
' r+ [! w3 `) R6 Z8 ]6 V% s3 V
//PROSEEND
9 p* M$ q- q1 |
fsnode* theobject =
2 F( C b7 |- w" l
//PARAMSTART
' Y; B9 t2 F$ P) ^0 g/ u4 N7 Y
item
\ y: k' q0 ]/ z
//PARAMEND
( W5 I6 \' d5 L S! v; P* X& ~
;
s2 A8 V9 Z" u( O* M8 p
//PROSESTART
# T9 Z+ a+ f2 V: R1 ^) v
//object to shape index number
# A. j( W9 {& k* Q
//PROSEEND
1 ^/ T- k2 I, q4 A8 D1 M" J3 b
% j& s1 q4 v1 p, W1 T0 {: {
int theindex =
8 G9 }# K1 p' \% \4 U5 s" f; X& C2 }
//PARAMSTART
3 y, n* {! a, a6 Z3 _1 a% K
1
9 T+ G' |" C r/ S
//PARAMEND
) v; o. V) j8 y" H2 m% q# J- T
;
- \0 i/ D/ m9 K/ m" E
//PROSESTART
0 O1 Z6 t; j$ E* ?2 y8 \9 A8 ]8 H
//.
+ z1 M" v; H) b( L8 I( ?% ]
//PROSEEND
) G9 [; n7 V, |5 C! e, N
: L* y3 W, `* z+ |! f2 a- T9 x3 A4 j
setobjectshapeindex(theobject,theindex);
8 b! Y- {8 q) }( x" K
4 p/ h' I, X1 @2 b
怎么用?
2 ~: ]1 x1 K/ ]/ }" s3 g7 v i
如果这种方法可行,那么是在onentry里用,还是在onsetupfinish里用呢?
, o8 C/ V$ d( K: U$ x
请指教!
作者:
xiexiaoch134
时间:
2011-1-4 20:48
指教不敢当。
$ h2 L. y! E+ S
第一个问题我也没有更好的办法,不过你可以试着了解坐标系之间的关系,你的组装是在组合器的坐标系下完成,所以这个跟系统坐标应该没有关系。你可以暂停运行的情况下,调整组件的坐标,让它达到理想的位置,然后记下坐标,再在相应的程序里面写下这些相对于组合器坐标的相对坐标。
/ c* ^0 h9 h1 t7 r' ?1 K
第二个问题,你给出的这些代码,前面带“//”一行语句只是当作说明,不起作用。至于在哪个触发器里面写代码,你应该去help文档里面了解相应的触发器是什么时候才会触发,然后决定在哪里写代码。setobjectshapeindex可以实现你要的功能。具体代码怎么写请参考help》command的相应指令介绍。一般代码都不需编译的,应用ok就行了。
作者:
mymailmy001
时间:
2011-1-5 00:40
我是初学的,能得到帮助非常感激!
作者:
wang-csn
时间:
2011-3-12 18:15
提示:
作者被禁止或删除 内容自动屏蔽
作者:
wang-csn
时间:
2011-3-12 18:20
提示:
作者被禁止或删除 内容自动屏蔽
作者:
Rosalyn
时间:
2011-3-16 21:28
楼主应该是用3.0做的,setobjectshapeindex的第二个参数,应该是在工具箱里的导入媒体文件里查找你导入的图片序列号,也可以用getshapeindex("D:\Program Files\Flexsim3ChDemo\fs3d\OperatorFRAME5.3DS")这是一个绝对路径的引用,如果模型和图片在同一文件夹下可以直接写getshapeindex("OperatorFRAME5.3DS")
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3