全球FlexSim系统仿真中文论坛

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

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

[复制链接]
跳转到指定楼层
1#
mymailmy001 发表于 2011-1-4 01:06:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用combiner做装配生产线,零件装配位置不正确,如何调整* p' r/ n; U! @! f- Y; {4 x4 H8 ^% f
在什么地方设置,好心人发个图片说明一下5 A- P! j0 Z: S5 t
: S% y8 i4 V5 v

6 P5 J. L* D, R" I另:如果在离开COMBINER的时候,使实体显示导入的模型,在哪里设置- S+ B  Y$ L5 e- F7 C( D- g7 p
请指教,越具体越好,如果用代码,请举例具体格式! |% t. `2 @8 \7 j
我是初学,简化的答案我看不懂
( A/ K# r1 S7 J( O谢谢啦
2#
xiexiaoch134 发表于 2011-1-4 11:39:06 | 只看该作者
第一个问题可以参照本论坛的案例下载里面的“DVD装配”模型,调整零时实体位置可以在onentry触发器里面setloc。
, B' f* D8 V0 E; ]% s9 |第二个问题,我不明白你的意思。请描述清楚。
3#
 楼主| mymailmy001 发表于 2011-1-4 13:47:09 | 只看该作者
本帖最后由 mymailmy001 于 2011-1-4 13:51 编辑
# R# u* F9 G2 ]" Q- u4 \
9 J0 b4 n( I* N: z/ u' {9 |先谢谢,辛苦啦5 _$ O4 X- l' M+ w) v' C, T
其实我只想做出装配的效果,上边问的是我听说的两种解决办法,但我都不会# Q1 ~+ ~5 Z, U/ J0 S. w* `
你说的在onentry触发器里面setloc我用过了,但是用于复杂部件定位很难,且多数位置需要坐标换算; P6 I! i! [& F9 r( D
# d( U, S# t1 ?, y- G) D- ?2 a
第二个问题是这样的,如果把上一步骤装配好的东西做成一个3DS文件并导入Flexsim的临时实体库中,让临时实体离开COMBINER时显示这个装配好的模型,每一步都这样重复往,就实现每步装配后的效果了(QQ群听说的,还没弄明白),好像用触发器代码有个setobjectshapeindex(如下图),好像是往里输入代码,我不会。这种方法对么,能做到么?如果能行,请告诉我这个代码的格式好么。尝试了好多次,编译都不对。4 r8 h- B3 r$ o1 R! n
D:\1.jpg
4#
 楼主| mymailmy001 发表于 2011-1-4 13:58:55 | 只看该作者
我不会发图片,图片发不上去,就是下面这段代码,9 g/ W5 W  K; z: ]" V4 [0 Q
' |: e2 l+ V' C2 ^; y2 s
fsnode* item = parnode(1);4 H9 G+ v7 ]' E  a6 l4 P
fsnode* current = ownerobject(c);5 i* o; j- g- a
//PROSESTART$ W8 T7 R8 G  ~, R5 p" t
//Change the 3D shape of
. K' N) @) x3 K2 G0 k' D; M8 ~5 V//PROSEEND6 L4 O# T3 S8 z
fsnode* theobject =) G1 o' b4 T" b+ w4 K' o
//PARAMSTART
# j3 E0 [! ?% T' g item 4 w2 _, {2 a' \' W8 D5 z
//PARAMEND
8 a! e' a0 I! U4 S( O$ e6 ];
$ I* _( b" y+ N6 u  j$ M- H//PROSESTART
0 o$ p( f4 J6 ~8 B3 V! S; y//object to shape index number+ q# n  D% s/ Z3 u* j( ~
//PROSEEND
' G) o& G( g9 q7 w# P. e& x1 U6 }9 g$ q1 r1 ?# |* G7 K4 O
int theindex =9 ]7 i# |4 ?; Q# L6 ~$ h: u. H
//PARAMSTART
1 h# Q+ n% ]5 E  d 1
$ g1 D  p- t8 V8 e9 }//PARAMEND3 i, N7 y# @$ x: O3 m
;, m& P  C, p3 z/ x0 x
//PROSESTART& f/ n7 k5 I. W$ D
//." _# o; b9 g" n
//PROSEEND* |& e* j. P5 s9 E1 W
* `4 H& K4 k5 G! \
setobjectshapeindex(theobject,theindex);
: s: a& M. _  p9 t8 B5 J! G
1 P0 C: H0 g- C/ x怎么用?, E: q/ ^0 Q+ s( [
如果这种方法可行,那么是在onentry里用,还是在onsetupfinish里用呢?! o; _; R) M1 h5 u
请指教!
5#
xiexiaoch134 发表于 2011-1-4 20:48:56 | 只看该作者
指教不敢当。
4 a- L5 X# r& x. r5 i8 u第一个问题我也没有更好的办法,不过你可以试着了解坐标系之间的关系,你的组装是在组合器的坐标系下完成,所以这个跟系统坐标应该没有关系。你可以暂停运行的情况下,调整组件的坐标,让它达到理想的位置,然后记下坐标,再在相应的程序里面写下这些相对于组合器坐标的相对坐标。( w2 p* A9 H; q; y' F
第二个问题,你给出的这些代码,前面带“//”一行语句只是当作说明,不起作用。至于在哪个触发器里面写代码,你应该去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 23:03 , Processed in 0.060655 second(s), 13 queries .

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

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