通过在史陶比尔官网下载TX90机械臂模型,经过UG进行坐标转换,creo导成iv格式,最后导入Coin3D中,模型如图所示:
主要步骤如下:
1.通过UG移动零件本身,将世界坐标系移至运动副。以连杆arm为例
装配中,arm 的Y轴和Z轴应如上图所示,而零件中,arm的世界坐标如下图:
通过UG的坐标转换,首先要建立绝对坐标系,通过移动或旋转零件使其满足装配下的坐标系:
移动零件或旋转零件操作如下:
导成iv格式放入程序中,读取arm的程序如下
SoSeparator* TX90robot::makeRod2()
{
SoSeparator* tx90_arm = new SoSeparator;
m_rot2->axis = SoRotationXYZ::Y;
SoTransform* form2 = new SoTransform;
form2->translation.setValue(0.05, 0.160, 0.230);
SoInput inputAxis2;
inputAxis2.openFile("tx90_arm.iv");
SoSeparator* mygraph = SoDB::readAll(&inputAxis2);
mygraph->ref();
tx90_arm->addChild(form2);
tx90_arm->addChild(m_rot2);
tx90_arm->addChild(mygraph);
return tx90_arm;
}
其中 m_rot2->axis = SoRotationXYZ::Y;表示为绕Y轴旋转,也是为什么要把坐标系放到运动副的原因
form2->translation.setValue(0.05, 0.160, 0.230);为ARM的坐标系相对shouder的坐标系,这样shouder旋转,arm也会相应旋转,shouder里的坐标系数据如图:
同理依次变换测量其他连杆,最后装配如下:
//按相对坐标 Rod0->addChild(Rod1);表示在ROd0坐标系中组装
robot->addChild(Rod0);
Rod0<