全球FlexSim系统仿真中文论坛
标题:
用combiner做装配生产线,零件装配位置不正确,如何调整
[打印本页]
作者:
mymailmy001
时间:
2011-1-4 01:06
标题:
用combiner做装配生产线,零件装配位置不正确,如何调整
用combiner做装配生产线,零件装配位置不正确,如何调整
y% Q' S+ L0 l K% v
在什么地方设置,好心人发个图片说明一下
T: i, e2 `9 z
8 E p; k" d% l! ~+ |- a
7 |. C# }: i' c/ X9 z1 e( ]
另:如果在离开COMBINER的时候,使实体显示导入的模型,在哪里设置
7 d5 a. u# n8 P( L
请指教,越具体越好,如果用代码,请举例具体格式
0 |5 q0 l' ]- B
我是初学,简化的答案我看不懂
+ L/ [) L4 x9 }8 J; r% O, X# x% j2 ^
谢谢啦
作者:
xiexiaoch134
时间:
2011-1-4 11:39
第一个问题可以参照本论坛的案例下载里面的“DVD装配”模型,调整零时实体位置可以在onentry触发器里面setloc。
# S: Q* i( U) ~/ o2 a. ^) D, h
第二个问题,我不明白你的意思。请描述清楚。
作者:
mymailmy001
时间:
2011-1-4 13:47
本帖最后由 mymailmy001 于 2011-1-4 13:51 编辑
4 T) T Z. [8 H4 R
: K/ X$ P/ w3 ]5 X
先谢谢,辛苦啦
. h2 H( k# n, p9 }, r/ l; E
其实我只想做出装配的效果,上边问的是我听说的两种解决办法,但我都不会
5 [: b" e; x. R( d7 R( @) h
你说的在onentry触发器里面setloc我用过了,但是用于复杂部件定位很难,且多数位置需要坐标换算
- J! I" H# s9 z$ P* {1 J$ a+ ?
4 R v+ F( `& V& B- j, T
第二个问题是这样的,如果把上一步骤装配好的东西做成一个3DS文件并导入Flexsim的临时实体库中,让临时实体离开COMBINER时显示这个装配好的模型,每一步都这样重复往,就实现每步装配后的效果了(QQ群听说的,还没弄明白),好像用触发器代码有个setobjectshapeindex(如下图),好像是往里输入代码,我不会。这种方法对么,能做到么?如果能行,请告诉我这个代码的格式好么。尝试了好多次,编译都不对。
9 A4 G# K" O& k' S* T
D:\1.jpg
作者:
mymailmy001
时间:
2011-1-4 13:58
我不会发图片,图片发不上去,就是下面这段代码,
3 H% g/ p4 d5 x
/ C# C0 U# B# W4 N: N# ]! x
fsnode* item = parnode(1);
- W, u& Q! K3 E4 s4 E3 m
fsnode* current = ownerobject(c);
) a m' [3 U8 r, q" O! g
//PROSESTART
3 ~- l/ ]. I5 i0 w
//Change the 3D shape of
3 c! S4 Q6 s5 n* F
//PROSEEND
( l# B1 d3 A6 u
fsnode* theobject =
+ a/ [3 q5 L( H) S
//PARAMSTART
, n3 ` ?2 U ]' a3 ?
item
, c% c5 H3 a/ C- b1 [2 q
//PARAMEND
& I. ^" @% A5 u! o- M' h
;
, K1 c1 y2 Q! S# i# a
//PROSESTART
: x7 D0 E, J8 E9 `
//object to shape index number
4 f4 M8 P) f- _) a) `5 I! W2 [. a7 y
//PROSEEND
6 ~9 y- Q' B9 _" T
& A' x. n3 w6 x: U; l; ]
int theindex =
( T v4 `! [- Y2 p
//PARAMSTART
9 }9 p: _, N3 m; |6 O1 U
1
7 M8 }% R( W- z( q$ R
//PARAMEND
' w. N& V* q! ^
;
7 F, d6 W) w+ B2 B K
//PROSESTART
6 t$ F: x1 o% j
//.
& W2 ~: G. V" x* Y
//PROSEEND
( Y4 M$ S" `$ ^5 U
1 W# }+ x! }' f$ x6 h
setobjectshapeindex(theobject,theindex);
% v2 v& [) F& f* l( X7 I7 Q
- l7 e- o6 s) K% q
怎么用?
: }. x A7 T+ ]+ n, \
如果这种方法可行,那么是在onentry里用,还是在onsetupfinish里用呢?
. a9 n% R2 x, t6 F1 }9 {* C; k
请指教!
作者:
xiexiaoch134
时间:
2011-1-4 20:48
指教不敢当。
" M6 u, d6 V6 p- V, J' A
第一个问题我也没有更好的办法,不过你可以试着了解坐标系之间的关系,你的组装是在组合器的坐标系下完成,所以这个跟系统坐标应该没有关系。你可以暂停运行的情况下,调整组件的坐标,让它达到理想的位置,然后记下坐标,再在相应的程序里面写下这些相对于组合器坐标的相对坐标。
; l" x+ D0 K! m& S/ q ?1 Q
第二个问题,你给出的这些代码,前面带“//”一行语句只是当作说明,不起作用。至于在哪个触发器里面写代码,你应该去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