下面以一个简单发动机为例,实现其从加速、保持匀速、到减速的一个过程。模型见“Inventor动画模型\变速控制”文件夹。
实现过程:
1) 打开文件“发动机.iam”,添加一个新零件“主驱动.ipt”作为隐藏零件
2) 在“油缸”和“主驱动”之间添加角度驱动约束作为“主驱动”
3) 在VBA中加入如下代码:
Public Function Speed(x As Double) As Double
‘将弧度值转换成角度值
x = x * 180 / (4 * Atn(1))
‘加速阶段(0~180)
If x <= 180 * 1 Then
Speed = x * x / 6
‘匀速阶段(180~360)
ElseIf 180 * 1 < x And x <= 180 * 2 Then
Speed = x * 60
‘减速阶段(360~540)
ElseIf 180 * 2 <= x And x < 180 * 3 Then
Speed = -(x - 180 * 3) * (x - 180 * 3) / 6
End If
End Function
其中,第三行代码,x = x * 180 / (4 * Atn(1)) 是把“主驱动”弧度值转换成角度值,以方便我们设置变速运动的范围。因为Inventor在参数传递中,传递的是角度的弧度值。
4) 在加速阶段(0~180)中,通过与变量约束“主驱动”的值建立平方递增关系Speed = x * x / 6表示加速运动。在表达式中,调整系数‘6’改变零件加速运动的加速度
5) 在匀速阶段(180~360)中,通过与变量约束建立简单的线性关系Speed = x * 60表示匀速运动。调整系数‘60’使零件从加速运动到匀速运动的过渡更平缓
6) 在减速阶段(360~540)中,通过与变量约束建立平方递减关系Speed = -(x - 180 * 3) * (x - 180 * 3) / 6表示减速运动。系数与加速运动的系数保持一致
7) 在参数对话框中将“曲轴转动”约束与变量约束“主驱动”建立等式“VBA:xx1 (x)*1deg”,参见图1-5

8) 最后驱动“主驱动”约束,发动机将变速转动。结果参见“发动机_变速.iam”
案例三:约束驱动与接触识别器
接触集合也是一种装配约束,许多机械装置的运动方式是由一个零件移动并接触到另一个零件,于是第二个零件(即欠约束的这个零件)随之运动,或者移动零件接触到另一个固定的零件时将停止移动。使用接触识别器便可以实现这个功能。通过驱动具有这类约束的部件,Inventor动画能模拟更为复杂的机械运动。
为了模拟机械“接触随动”的现象,Inventor提供了相应的“接触识别器”工具。如果激活了这个工具,则在移动零部件或驱动约束时,Inventor会隔离接触集合中的选定零部件,使零部件按照预期的方式进行机械运动。下面以电影放映机中的外槽轮机构为例进行讲解具体的实现方式。
实现过程:
1) 打开装配文件(槽轮机构.IAM)。从模型浏览器中察看该装配存在的所有约束,可以看出槽轮和拨盘两个零件之间并没有添加任何装配约束
2) 下拉菜单中的“工具(T)”→“激活接触识别器” 设置成有效,使“接触识别器”激活

图1-6激活接触识别器