如果你是“CATIA”微信官方账号的老粉丝,那么我相信你一定对下面这篇文章有印象:
如何使零件中的弹簧移动
在本文中,我们使用代码来控制模型参数的连续变化,从而制作出传统DMU无法实现的动画效果。
如果你
分支1:如果你能从一个例子中推断出最后一篇文章,那么你可以使用代码
分支2:如果熟悉DMU模块,可以使用CATIA DMU自带的命令
制作下面的《弹球1.0》动画~
然而,我们在这篇文章中制作的“弹力球”比上面的弹球稍微复杂一点——引入了重力的因素!
我们先来看看最后的效果:
看到这里,估计很多朋友都迫不及待想知道背后的原理了!放心吧,那边肖就一个个来~
软件部分
为了在驱动代码时更平滑地刷新CATIA模型的位置,我们使用CATIA的DMU功能将球的运动分解为X和Y方向的滑动。
自动化对象是应用编程接口的一部分
使用机构对象的PutCommandValues方法,我们可以更改机构中驱动命令的值。由于这个方法后面的变量是一个数组,这意味着我们可以一次改变几个驱动命令的值。那么,你的朋友有没有找到另一种方法让不同的机构/不同的司机同时移动呢~ ~ ~
控制部分
想要看到动画效果,一定要有时间观念。有时间可以说说帧率。然而,在CATIA VBA没有计时器控件,所以我们使用循环循环来连续获取系统时间来模拟该控件。
“计时器”首先获取系统时间
做
如果计时器-t >;1/24然后'每1/24秒,当然,你必须做60FPS,没有人会阻止你
在这里写下要实现的功能
“定时器”更新定时器的值
如果…就会结束
DoEvents的投降控制,避免无限循环假死现象
环
算法部分
准确的说,这个平抛运动不是算法,顶多是几个高中物理公式。
请仔细阅读下面的文章,并试着理解它:
最初,我们需要给出一个水平速度和一个重力加速度g。
在每个时间间隔(也就是上面提到的1/24秒),我们主要做以下事情:
给水平速度乘个小于1的系数,让其不断衰减,并用当前位移(即DMU第二个驱动命令的值)加上这个速度。 根据重力加速度g,算出球在垂直方向的速度,并用当前位移(即DMU第一个驱动命令的值)加上这个速度 将计算后得到的两个驱动命令的值,赋给DMU机构。以上内容只是主要部分。除此之外,还要判断球是否触地,左右边界,什么时候运动停止。
有了上面的知识储备,我们就可以通过下面的代码实现上面动画中显示的功能了!
好了,这个分享到此为止!如果你对DMU的基本操作不是很精通,请理解下面这篇文章,或者点击文章底部的“阅读原文”。
“快走!CATIA DMU运动机构仿真视频教程
学习CATIA有什么想法或问题,欢迎加入QQ群与边肖面对面交流!群内不仅有很多干货,还有很多大神帮你答题~
1.《弹力球 【DMU运动仿真】如何做个弹力球》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《弹力球 【DMU运动仿真】如何做个弹力球》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/816394.html