全球FlexSim系统仿真中文论坛

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

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

[复制链接]
跳转到指定楼层
1#
mymailmy001 发表于 2011-1-4 01:06:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用combiner做装配生产线,零件装配位置不正确,如何调整. W* _9 B( Z: U
在什么地方设置,好心人发个图片说明一下0 R& m  i  {2 a% p& m1 M( `( s: H

0 @+ S7 s4 D+ c1 f; G+ E- z1 W6 J
" T" |' _  ^( V) z( |; s. |另:如果在离开COMBINER的时候,使实体显示导入的模型,在哪里设置+ z0 y, N, X/ W5 }! I+ b, N- N
请指教,越具体越好,如果用代码,请举例具体格式
1 |9 K2 R, r" t3 ?: j3 [' W& M: J, ?' o我是初学,简化的答案我看不懂
( u% M6 m% s& E+ B4 s- S0 i谢谢啦
2#
xiexiaoch134 发表于 2011-1-4 11:39:06 | 只看该作者
第一个问题可以参照本论坛的案例下载里面的“DVD装配”模型,调整零时实体位置可以在onentry触发器里面setloc。
1 h8 Q: W5 B' [+ X  L第二个问题,我不明白你的意思。请描述清楚。
3#
 楼主| mymailmy001 发表于 2011-1-4 13:47:09 | 只看该作者
本帖最后由 mymailmy001 于 2011-1-4 13:51 编辑 ) P3 V* `9 ^3 R7 i9 C+ W

( x1 i. H! v/ ~- x先谢谢,辛苦啦( {! P. {- l& X- A% z. D
其实我只想做出装配的效果,上边问的是我听说的两种解决办法,但我都不会. J; k, {' [* ]+ N+ x$ }
你说的在onentry触发器里面setloc我用过了,但是用于复杂部件定位很难,且多数位置需要坐标换算% q9 w- ]+ ^0 I# I) q; V
* d' O4 q8 a1 U6 M5 r) [
第二个问题是这样的,如果把上一步骤装配好的东西做成一个3DS文件并导入Flexsim的临时实体库中,让临时实体离开COMBINER时显示这个装配好的模型,每一步都这样重复往,就实现每步装配后的效果了(QQ群听说的,还没弄明白),好像用触发器代码有个setobjectshapeindex(如下图),好像是往里输入代码,我不会。这种方法对么,能做到么?如果能行,请告诉我这个代码的格式好么。尝试了好多次,编译都不对。  V. ?2 T5 y& o2 a* v6 }) W
D:\1.jpg
4#
 楼主| mymailmy001 发表于 2011-1-4 13:58:55 | 只看该作者
我不会发图片,图片发不上去,就是下面这段代码,! u/ j& Z- z5 V& W8 M6 p

7 t6 m% \2 w: S' t4 U/ p8 K6 Hfsnode* item = parnode(1);
$ g! N- o5 p7 h2 t# Hfsnode* current = ownerobject(c);
& Y( P( w) y( t; W3 `//PROSESTART* T# K6 }, D3 y' O4 g
//Change the 3D shape of/ \" _; ]  z. ^
//PROSEEND
$ ^* ~  O; y: A: F. R: Ufsnode* theobject =
. M/ x/ _# c# {4 E* S* e, m- C//PARAMSTART
8 R. ]- _( |  ?6 a# A& m item 5 ?% o, u7 w1 J* z  m; s1 B, I7 ?
//PARAMEND0 b7 R5 J+ B+ j9 \
;% e  q( V! F" ^! i
//PROSESTART' U: T3 v2 e/ i0 m4 j' c4 @
//object to shape index number, e4 _. W( r6 G' `7 [+ y
//PROSEEND
+ ?) `. P6 w2 C6 b
6 M, O+ C# T$ q! B" z% \# Gint theindex =
# N) Q5 u% d( ~5 ]  s5 k//PARAMSTART
$ ^/ q0 L% q' z) F8 w 1
# }9 p6 B, U( V# U4 m8 t# `//PARAMEND4 A! t; K% e" R
;+ C; _$ k1 a' S6 ?% I; ?0 l
//PROSESTART+ A8 `& y& S* f$ F
//./ `' j& {& a. O+ X) `2 [8 O7 a
//PROSEEND* l) B% ]5 k2 n6 T2 P/ ]8 y
! l; b& Z" U: A1 f- s! u* l0 X
setobjectshapeindex(theobject,theindex);
# w; W% I8 S; W0 A5 F/ Y/ \. C
& e) P- D/ J! @怎么用?
: t) i( G* t  G0 P) r- Y# M如果这种方法可行,那么是在onentry里用,还是在onsetupfinish里用呢?
( \- X  g- L1 [( W& ]2 ~请指教!
5#
xiexiaoch134 发表于 2011-1-4 20:48:56 | 只看该作者
指教不敢当。/ P% E* B- }: J# ?
第一个问题我也没有更好的办法,不过你可以试着了解坐标系之间的关系,你的组装是在组合器的坐标系下完成,所以这个跟系统坐标应该没有关系。你可以暂停运行的情况下,调整组件的坐标,让它达到理想的位置,然后记下坐标,再在相应的程序里面写下这些相对于组合器坐标的相对坐标。$ u* J' F- t0 [' ?6 M  |8 K, S
第二个问题,你给出的这些代码,前面带“//”一行语句只是当作说明,不起作用。至于在哪个触发器里面写代码,你应该去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-5-12 15:31 , Processed in 0.085213 second(s), 14 queries .

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

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