全球FlexSim系统仿真中文论坛

搜索
查看: 7847|回复: 9
打印 上一主题 下一主题

用combiner做装配生产线,零件装配位置不正确,如何调整

[复制链接]
跳转到指定楼层
1#
mymailmy001 发表于 2011-1-4 01:06:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用combiner做装配生产线,零件装配位置不正确,如何调整# c* o# r2 q. V
在什么地方设置,好心人发个图片说明一下
! }( @5 r' c; y1 t1 \
6 ^9 Q/ [7 L- |5 ?, G5 }& h& E- {* t, _! U$ o* e+ _; E3 c
另:如果在离开COMBINER的时候,使实体显示导入的模型,在哪里设置
9 _* B6 O$ W- O4 N% j请指教,越具体越好,如果用代码,请举例具体格式
' y) I+ r4 M+ K. F我是初学,简化的答案我看不懂
" m4 @0 t* k9 ^8 d+ o谢谢啦
2#
xiexiaoch134 发表于 2011-1-4 11:39:06 | 只看该作者
第一个问题可以参照本论坛的案例下载里面的“DVD装配”模型,调整零时实体位置可以在onentry触发器里面setloc。
* {: c9 P8 ?/ c/ e) L第二个问题,我不明白你的意思。请描述清楚。
3#
 楼主| mymailmy001 发表于 2011-1-4 13:47:09 | 只看该作者
本帖最后由 mymailmy001 于 2011-1-4 13:51 编辑
  T( ~  n6 {( t+ _+ s
4 e9 m% g% y: N2 Y先谢谢,辛苦啦7 T9 ~+ Q8 i! I# k  C
其实我只想做出装配的效果,上边问的是我听说的两种解决办法,但我都不会( @( x0 z) m! q) `& }/ p/ L
你说的在onentry触发器里面setloc我用过了,但是用于复杂部件定位很难,且多数位置需要坐标换算3 q) _' ]/ `& v- U

4 ]: W  u  o# C) h1 M8 Y$ c第二个问题是这样的,如果把上一步骤装配好的东西做成一个3DS文件并导入Flexsim的临时实体库中,让临时实体离开COMBINER时显示这个装配好的模型,每一步都这样重复往,就实现每步装配后的效果了(QQ群听说的,还没弄明白),好像用触发器代码有个setobjectshapeindex(如下图),好像是往里输入代码,我不会。这种方法对么,能做到么?如果能行,请告诉我这个代码的格式好么。尝试了好多次,编译都不对。* s; b/ y  e# d/ m7 J% Z! e
D:\1.jpg
4#
 楼主| mymailmy001 发表于 2011-1-4 13:58:55 | 只看该作者
我不会发图片,图片发不上去,就是下面这段代码,
" i. K! l* T' ]& a, T: p- l; M) s! |* ~' T
fsnode* item = parnode(1);
- R1 R& U0 k3 e/ O5 A* A# ?fsnode* current = ownerobject(c);
2 |$ W8 j9 r/ Y) l4 g; D. K9 Q//PROSESTART
3 ]: f7 n4 n0 k# W* s0 F2 Z//Change the 3D shape of
' o- t, o0 b$ u, e/ a( L3 o//PROSEEND
8 _$ W, T9 g4 T7 f- t; vfsnode* theobject =2 U7 f/ v% m6 V3 w+ q- p
//PARAMSTART6 n5 ]( e/ J# h
item / o" V: j" f: ?5 {7 W
//PARAMEND6 _" J$ [% c' W
;
7 v! F5 [7 f! Z  N2 s' T& r//PROSESTART
8 G% B( p8 P  M: U# n4 }//object to shape index number
5 I# l! H4 Q6 A4 f6 `//PROSEEND
+ y& ]! f! G4 e4 I, c
7 p* z( g3 w2 z. E' Eint theindex =
/ f; I1 m, r& s9 U//PARAMSTART7 D) f2 S$ E. Z# h
1
) e7 `* Z: A! \3 J. C/ X" x//PARAMEND
9 k+ M- N5 n, Y9 m( t;
* n) [5 u" J' R/ M' [5 ?//PROSESTART
, v: E. ^( y0 H0 k' f3 ]3 \  [, Z//.
9 V- M* r4 h9 h* |; f! B//PROSEEND7 {& @# _) L% ^/ u9 r" L

& ?  V. ?, L! ]1 j+ qsetobjectshapeindex(theobject,theindex);
, X( k- x$ \2 K1 v( d
8 t& C5 @0 }% ~8 F* A8 w8 J# l怎么用?
) m7 b6 Q  n: }' h3 B9 b如果这种方法可行,那么是在onentry里用,还是在onsetupfinish里用呢?
: c( u" a" G( f- [请指教!
5#
xiexiaoch134 发表于 2011-1-4 20:48:56 | 只看该作者
指教不敢当。! f. k5 Z" }# t  C( A  N
第一个问题我也没有更好的办法,不过你可以试着了解坐标系之间的关系,你的组装是在组合器的坐标系下完成,所以这个跟系统坐标应该没有关系。你可以暂停运行的情况下,调整组件的坐标,让它达到理想的位置,然后记下坐标,再在相应的程序里面写下这些相对于组合器坐标的相对坐标。
+ Y$ q5 }$ T- w: R- _" M+ K第二个问题,你给出的这些代码,前面带“//”一行语句只是当作说明,不起作用。至于在哪个触发器里面写代码,你应该去help文档里面了解相应的触发器是什么时候才会触发,然后决定在哪里写代码。setobjectshapeindex可以实现你要的功能。具体代码怎么写请参考help》command的相应指令介绍。一般代码都不需编译的,应用ok就行了。
6#
 楼主| mymailmy001 发表于 2011-1-5 00:40:35 | 只看该作者
我是初学的,能得到帮助非常感激!
7#
wang-csn 发表于 2011-3-12 18:15:29 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
8#
wang-csn 发表于 2011-3-12 18:20:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
9#
Rosalyn 发表于 2011-3-16 21:28:57 | 只看该作者
楼主应该是用3.0做的,setobjectshapeindex的第二个参数,应该是在工具箱里的导入媒体文件里查找你导入的图片序列号,也可以用getshapeindex("D:\Program Files\Flexsim3ChDemo\fs3d\OperatorFRAME5.3DS")这是一个绝对路径的引用,如果模型和图片在同一文件夹下可以直接写getshapeindex("OperatorFRAME5.3DS")
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-29 21:52 , Processed in 0.093808 second(s), 13 queries .

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

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