全球FlexSim系统仿真中文论坛
标题:
用combiner做装配生产线,零件装配位置不正确,如何调整
[打印本页]
作者:
mymailmy001
时间:
2011-1-4 01:06
标题:
用combiner做装配生产线,零件装配位置不正确,如何调整
用combiner做装配生产线,零件装配位置不正确,如何调整
0 ?& P5 V# u0 p& w G2 R
在什么地方设置,好心人发个图片说明一下
5 F5 o4 T) _, q, P0 \6 X
; K. E$ M, c; j# j% o5 S; w
3 \+ n+ V# J0 \+ O; k" U
另:如果在离开COMBINER的时候,使实体显示导入的模型,在哪里设置
7 A2 E6 q- ?' ]/ ]8 S0 U( S6 `
请指教,越具体越好,如果用代码,请举例具体格式
3 }& z7 U# W" Q" b" q( V
我是初学,简化的答案我看不懂
# v( Q7 {2 V+ |4 q% S. ^, X
谢谢啦
作者:
xiexiaoch134
时间:
2011-1-4 11:39
第一个问题可以参照本论坛的案例下载里面的“DVD装配”模型,调整零时实体位置可以在onentry触发器里面setloc。
' ^ S/ m: Y6 a" }# W' g- ~
第二个问题,我不明白你的意思。请描述清楚。
作者:
mymailmy001
时间:
2011-1-4 13:47
本帖最后由 mymailmy001 于 2011-1-4 13:51 编辑
5 R" u, z3 @: {5 j/ I+ Z1 ]. N' E2 r
5 R6 d- ]# O7 U1 W
先谢谢,辛苦啦
* D. R' ]7 i7 V
其实我只想做出装配的效果,上边问的是我听说的两种解决办法,但我都不会
3 p) K( M3 {% j& T3 Y. K
你说的在onentry触发器里面setloc我用过了,但是用于复杂部件定位很难,且多数位置需要坐标换算
0 E; n5 ~' a' P4 S1 [9 g
: X. m g$ }2 K, N" ^8 u7 u- H
第二个问题是这样的,如果把上一步骤装配好的东西做成一个3DS文件并导入Flexsim的临时实体库中,让临时实体离开COMBINER时显示这个装配好的模型,每一步都这样重复往,就实现每步装配后的效果了(QQ群听说的,还没弄明白),好像用触发器代码有个setobjectshapeindex(如下图),好像是往里输入代码,我不会。这种方法对么,能做到么?如果能行,请告诉我这个代码的格式好么。尝试了好多次,编译都不对。
) ]) w" I9 p z _6 H2 r- M
D:\1.jpg
作者:
mymailmy001
时间:
2011-1-4 13:58
我不会发图片,图片发不上去,就是下面这段代码,
# u V& |) O% H- e! g# ~
2 k2 J& d# }+ N0 l
fsnode* item = parnode(1);
/ m& U: ~. D. a* C6 w
fsnode* current = ownerobject(c);
1 H9 @! J( B9 ?7 Y& U- c
//PROSESTART
" Z# I# @# V* z/ q
//Change the 3D shape of
& S3 }' Q* j" t# ~
//PROSEEND
) p$ }0 c. L4 f8 e
fsnode* theobject =
) i# b2 B' M6 ?) N9 ]7 }1 e; n$ j
//PARAMSTART
: D$ \: s) c" k" A. R
item
! G! V. U# o& N& c
//PARAMEND
, g, O" P, ]4 ^( x+ @
;
9 `. l% v; X H& @% P& o/ g
//PROSESTART
7 c* {2 D2 W! y B/ T9 T- R; F
//object to shape index number
# l+ s$ ~( ^- Y# K$ I
//PROSEEND
) W6 `. K4 A3 Z) r
' Y7 @1 U; n* F
int theindex =
1 J4 q" J2 T6 Z1 c1 @0 Z
//PARAMSTART
+ L7 \8 Q: b, `" U, h7 K L X, K
1
2 ?* W s2 L# e% f0 I
//PARAMEND
& v, \" r- j. b+ u/ q
;
7 j8 J- @6 Z8 d7 }& D% t
//PROSESTART
" E; z. z. m9 Y' o$ D* V) E
//.
/ I# V8 Q4 L s& l
//PROSEEND
+ ~5 q3 ^; c4 k# Z w$ r: }; q
. B# S3 A6 Q2 w
setobjectshapeindex(theobject,theindex);
+ s( q% T0 ]: ]2 w5 z3 f# u
+ @! q. t! L8 R: S1 \/ e' }3 q
怎么用?
. c' A' ]; E# G! i7 k. Q
如果这种方法可行,那么是在onentry里用,还是在onsetupfinish里用呢?
$ q) L2 O) G1 {" g; ~
请指教!
作者:
xiexiaoch134
时间:
2011-1-4 20:48
指教不敢当。
! g$ d9 F" ]: |; F6 I: C* u [7 a& f
第一个问题我也没有更好的办法,不过你可以试着了解坐标系之间的关系,你的组装是在组合器的坐标系下完成,所以这个跟系统坐标应该没有关系。你可以暂停运行的情况下,调整组件的坐标,让它达到理想的位置,然后记下坐标,再在相应的程序里面写下这些相对于组合器坐标的相对坐标。
( Z# J1 m- X% B0 Y3 o
第二个问题,你给出的这些代码,前面带“//”一行语句只是当作说明,不起作用。至于在哪个触发器里面写代码,你应该去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