‘壹’ 如图关于偏置式的曲柄滑块机构的动态模拟图,如何编,关键是代码程序
实际上,程序代码比较简单。
最复杂的应该是几何问题。
我们设,轮是主动地,是匀速运动的,初始位置为水平向右,方向为正方向。
运动速率为Alhpa弧度美秒。
时刻t,L1与水平线的夹角为:t*Alhpa
以轮心为原点,建立直角坐标系。
那么,L1和L2铰接点的坐标就是(L1*cos(t*alhpa),L1*sin(t*alhpa)),表示为(X1,Y1)
剩下的问题,就是计算滑块上的铰接点的坐标了。
设这点的坐标是(x,e)
那么有方程:
[x-L1*cos(t*alhpa)]*[x-L1*cos(t*alhpa)]+[L1*sin(t*alhpa)-e]*[L1*sin(t*alhpa)-e]=L2*L2
这个方程里面只有x是未知数,是一个典型的一元二次方程,可以用公式法求解。舍弃小于L1与L2交接点横坐标的一个解,其余一个就是我们的目标。
至此,任意时刻的位置,我们都可以确定了。
下面就是怎么用vb来画图了。
这里运动的有三件:L1、L2和滑块。
不运动的有圆、圆轴、基准线、滑块的移动平面。
不运动的,我们用窗体的方法line、Circle来实现(注意:滑块的移动平面不要画那么高,画到滑块下面)。
移动的用两个line控件和一个shape控件来表示。
另外就是辅助的控件了,例如设置、开始、数据输出等等这些就不说了,核心的辅助控件就是计时器。
设置好参数之后,在开始的地方
Me.Scale (-L1 - L1, L1 + L1 + e)-(L1 + L1 + L2, -L1 - L1)
line1.x2=0
line1.y2=0
shape.top=e+shape1.height/2
画上不运动的部分。
在计时器的事件里
1、计算当前角度
2、计算(x1,y1)
3、计算x
上面三个计算代码你自己写。
line1.x1=x1
line1.y1=y1
line2.x1=x1
line2.y1=y1
line2.x2=x
line2.y2=e
shape1.left=x-shape1.width/2
如果还有问题,我们以后再讨论。