全球FlexSim系统仿真中文论坛

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

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

[复制链接]
跳转到指定楼层
1#
mymailmy001 发表于 2011-1-4 01:06:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用combiner做装配生产线,零件装配位置不正确,如何调整
4 e( @, p5 w% N- z" e在什么地方设置,好心人发个图片说明一下! f1 b4 q6 b/ R, I5 N

' c" J7 N  \  Q; D' l0 V
$ D6 P- Q/ D! n/ ^5 e7 A, A& u+ C另:如果在离开COMBINER的时候,使实体显示导入的模型,在哪里设置
. D  D& R6 a, X- U% M9 b$ ^. Y/ b请指教,越具体越好,如果用代码,请举例具体格式
+ D/ ]5 ?" Y, U( A% a我是初学,简化的答案我看不懂
1 H$ k/ I( f( m. v; `' a1 _谢谢啦
2#
xiexiaoch134 发表于 2011-1-4 11:39:06 | 只看该作者
第一个问题可以参照本论坛的案例下载里面的“DVD装配”模型,调整零时实体位置可以在onentry触发器里面setloc。$ \2 H; S& B5 n, L6 B5 k
第二个问题,我不明白你的意思。请描述清楚。
3#
 楼主| mymailmy001 发表于 2011-1-4 13:47:09 | 只看该作者
本帖最后由 mymailmy001 于 2011-1-4 13:51 编辑
& R# i' U! R3 Z* q7 z
$ C6 I2 q2 A# H8 H$ z先谢谢,辛苦啦
# {1 ^6 B: S3 c7 V0 M+ p其实我只想做出装配的效果,上边问的是我听说的两种解决办法,但我都不会
+ V0 m! ^# V& [' ^* L$ Z3 B# b你说的在onentry触发器里面setloc我用过了,但是用于复杂部件定位很难,且多数位置需要坐标换算8 Q' a  J) W9 J' U3 D3 {

" G2 N: V) z2 j/ N& L9 \第二个问题是这样的,如果把上一步骤装配好的东西做成一个3DS文件并导入Flexsim的临时实体库中,让临时实体离开COMBINER时显示这个装配好的模型,每一步都这样重复往,就实现每步装配后的效果了(QQ群听说的,还没弄明白),好像用触发器代码有个setobjectshapeindex(如下图),好像是往里输入代码,我不会。这种方法对么,能做到么?如果能行,请告诉我这个代码的格式好么。尝试了好多次,编译都不对。" {. d  T( O0 d" L: s
D:\1.jpg
4#
 楼主| mymailmy001 发表于 2011-1-4 13:58:55 | 只看该作者
我不会发图片,图片发不上去,就是下面这段代码,
' B- Z/ q, ~8 R& w5 U# ~6 U2 X! e, d, B! @
fsnode* item = parnode(1);
- G' r9 d# c$ g* j  \fsnode* current = ownerobject(c);
; p* ?  q, X5 n$ M' S3 n8 j, m  ?3 ~//PROSESTART
: L# X* [* H; K9 n; ]//Change the 3D shape of8 a; p9 r3 z5 K) ]8 I
//PROSEEND4 s  Z$ W2 m. C
fsnode* theobject =
) q1 I! F( D( Z//PARAMSTART' s/ {& g  e7 l! h
item
' L& B9 h* K7 F% N//PARAMEND3 ~% g! s( M4 L5 v! k5 u! A
;! I5 I8 @# q& w3 U4 ?2 K& T
//PROSESTART) \0 `) a5 H. x: E
//object to shape index number5 h( B+ @5 l" K9 k7 E6 ~
//PROSEEND
/ N9 z% [+ p8 z  n# p$ I$ ^. [+ O- K8 s$ @9 D: X
int theindex =- l) l) v1 V: b# T* J. O2 ~% \1 q  B8 i
//PARAMSTART
5 w: _  ^) l1 w4 T  z1 } 1 % ?1 \2 T( |- e2 ~8 H0 ?
//PARAMEND) [* J' X! d1 S! \1 E6 g; R
;
7 X; z: z9 E- ^, f' ?9 [4 W9 k; I' `//PROSESTART
7 @0 _/ ?4 i* V/ M//.2 U% `8 q. p- p  Q1 N( c
//PROSEEND
) |( w' L1 P3 k8 p7 b# k
: q% e( g1 v6 _* S/ w8 osetobjectshapeindex(theobject,theindex);' o3 q3 c5 i7 W8 c: s

- F1 G$ _: Q$ i  X% V9 ]怎么用?
4 t4 w8 B8 m4 X/ }1 L如果这种方法可行,那么是在onentry里用,还是在onsetupfinish里用呢?
8 v6 e& B! A+ S( \6 @请指教!
5#
xiexiaoch134 发表于 2011-1-4 20:48:56 | 只看该作者
指教不敢当。- ~- _% P3 [% a
第一个问题我也没有更好的办法,不过你可以试着了解坐标系之间的关系,你的组装是在组合器的坐标系下完成,所以这个跟系统坐标应该没有关系。你可以暂停运行的情况下,调整组件的坐标,让它达到理想的位置,然后记下坐标,再在相应的程序里面写下这些相对于组合器坐标的相对坐标。2 K, c3 L  [8 N
第二个问题,你给出的这些代码,前面带“//”一行语句只是当作说明,不起作用。至于在哪个触发器里面写代码,你应该去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 18:25 , Processed in 0.064471 second(s), 13 queries .

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

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