ybbmq 发表于 2007-3-24 14:20:59

这样的运动如何实现?

两个圆柱体呈一字摆放,0-5秒时,前一个圆柱体以速度v1向前直线推进;5-10秒时,后一个圆柱体以相同的速度V1向前直线跟进。
给个思路!

我用Fixed Joint将前后两个圆柱体分别与地固定,在仿真脚本中分别Deactive与Active,但出现了问题:当5-10秒时,前一个圆柱体又回到初始位置。应该如何解决?

ybbmq 发表于 2007-3-24 15:08:39

请版主帮帮忙,给个思路!

寒风凛冽 发表于 2007-3-24 16:05:42

用if 函数吧

ybbmq 发表于 2007-3-24 21:02:52

能具体点吗?

ybbmq 发表于 2007-3-25 10:00:53

如何在运动学仿真过程中动态改变Fixed JOINT的位置?
如果这个问题能解决也应该可以实现上述动作,对吧?

ybbmq 发表于 2007-3-25 10:03:35

我测试过了,好像也不行。

哪位高人说说:如何实现上述跟进的动作?

klaus_xu 发表于 2007-3-28 20:19:12

改用 CATIA V5 \ DMU Kin,如果可以用CATIA的话

hwzhu 发表于 2007-3-28 22:15:09

两个圆柱体各加一个motion不可以吗?

inndoor 发表于 2007-3-28 23:14:52

这个或许可以:

注意用位移控制,
the first body:if(time-5:v1*time,v1*5,v1*5)
the second body:if(time-10:if(time-5:0,0,v1*(time-5)),v1*(10-5),v1*(10-5))

速度控制的话,
the first body:if(time-5:v1,0,0)
the second body:if(time-10:if(time-5:0,0,v1),0,0)

我在网吧上的,你自己搞一下,调试下,应该是没有问题的:)

[ 本帖最后由 inndoor 于 2007-3-29 08:44 编辑 ]

inndoor 发表于 2007-3-28 23:16:23

不过,这样没有什么意义的,是否可以考虑用step5,这样行动的曲线比较光滑一些.

ybbmq 发表于 2007-3-29 09:11:04

上述方法,如step或if定义位置或速度曲线,施加在移动副上,那么请问移动副是施加在哪两个物体上?
1 如果在两个物体上分别施加相当于ground的移动副并施加Motion,在这种情况下,的确可以实现跟进动作。但问题是:若在First Body和Second Body之间是由两个移动副连接,且在仿真过程中,移动副的方向可能发生改变。这样的话,施加相对与ground的移动副是不行的。

2 如果施加在First Body和Second Body之间,在这种情况下,若First Body或Second Body没有施加Fixed Joint,那么First Body和Second Body将同时向相反的方向运动。也就是说,在First Body运动的时刻,Second Body需要“与ground固定”;当Second Body运动的时刻,First Body需要“与ground固定”。实现“跟进”的动作。

inndoor 发表于 2007-3-29 09:24:58

你只给了两个圆柱体,你说移动副可能会是施加在哪两个物体上??:Q

对于1的问题:你看看你1楼的帖子是怎么说的,我是被你搞糊涂了.我是按照你1楼的思路给的方法.你仅仅要达到1楼的目的,这个方法是没有问题的."若在First Body和Second Body之间是由两个移动副连接",看不明白.呵呵....:L .移动副的方向改变的是正负方向,不知道还会改变哪些,如果你的东西的第二连杆是其他物体,那你需要通过控制第二连杆和第一连杆的运动来达到你的目的.这样你的两个圆柱体之间就没有直接联系.

2.需要声明的是,我的方法就是达到你的目的的.不过,不是你说的"固定",而是速度为0,就是说静止.

不知道我的意思表达清楚了没有.

inndoor 发表于 2007-3-29 09:34:44

你调试下方法.
两个圆柱体分别设滑动副,同时把第二连杆设为地.
然后把上边的位移控制输入到表达式里面,看看结果.

ybbmq 发表于 2007-3-29 09:50:46

举例:形如等腰梯形,顶边为上平台,底边为下平台,两个侧边为支撑杆。
运动分两个节拍:第一个节拍,下平台固定不动,上平台在支撑杆的作用下(速度分别为V1和V2)向上平动;第二个节拍,上平台不动,下平台在支撑杆的作用下(速度分别为V3和V4)向上“跟进”。
我的想法:
在上平台添加Fixed Joint(ID=1),在下平台添加Fixed Joint(ID=2),在仿真脚本中这样写:
DEACTIVE/JOINT ID=1
ACTIVE/JOINT ID=2
开始仿真,5秒
DEACTIVE/JOINT ID=2
ACTIVE/JOINT ID=1
继续仿真,5秒
这样做,出现的问题是,当ACTIVE/JOINT ID=1时,上平台又重新回到了原来的位置,而不是固定在当前位置下。看来这样做是行不通的。
在论坛上也有一些热心的朋友提示用STEP函数或IF函数,但这些方法好像只适合一端固定的情况,不能实现“跟进”的动作。
如何实现“”“”“”“”“跟进”“”“”“”“”的动作!!!!!!!谢谢

inndoor 发表于 2007-3-29 11:54:55

哦,原来如此.
你的v1和v2是相等的,v3和v4是相等的,只是速度方向不同.

要达到"运动"的效果,可以把上下两个平台设定为沿着上下滑动的滑动驱动副.
然后把支撑杆分解为两个相对滑动的杆体.一个铰接在上台,一个铰接在下台,然后设定两个相对滑动(中心线位置重合),滑动副没有驱动即可.

inndoor 发表于 2007-3-29 11:56:13

接上面.

这样仅仅控制上下两个平台滑动就可以达到运动目的啊.

inndoor 发表于 2007-3-29 11:57:19

我根据你原来的做了个东西,是录象的.你加个支撑杆就可以了.
截图被遮挡住了,不过没有关系,最后的附件里面把函数都表示出来了.



[ 本帖最后由 inndoor 于 2007-3-29 16:02 编辑 ]

ybbmq 发表于 2007-3-29 12:07:53

inndoor,帮我看看,谢谢

ybbmq 发表于 2007-3-29 12:10:14

关键的问题在于,V1和V2不相等,所以“把上下两个平台设定为沿着上下滑动的滑动驱动副”是不行的。

ybbmq 发表于 2007-3-29 14:41:25

我看了你给我的演示,非常感谢,但我观察,两个移动的物体(part2和part3)的移动方向都是确定的(相对于GROUND水平方向移动),而我给出的两个平台的运动是平面运动(平动+转动),而不是平动, 其运动的方向有两个支撑杆(驱动单元)的运动速度决定。使问题变复杂了。
页: [1] 2
查看完整版本: 这样的运动如何实现?