二维排样问题是将多个零件在二维平面内进行排布,要求零件不重叠,并满足一定的工艺要求和材料特性。排样问题存在许多行业中,与实践应用密切相关。随着经济的发展和对资源需求的增长,提高原材料的利用率可有效节约资源和降低生产成本,对企业的经济效益有着较大的影响。受到日常生活中的“摇瓶子”和振捣、夯实等现象启发,本文考虑将排样问题与力学(运动学和动力学)相结合,采用物体群运动模拟排样过程。将二维零件抽象为物体,通过重点研究物体群在限制区域中的频繁碰撞问题,设计合适的算法并开发相应的排样软件以实现二维零件的排样。基于上述思想,本文主要做了以下几方面的工作:(1)图形表达。定义零件图形,通过读取零件的Dxf文件,将零件几何信息保存在点边列表中,计算零件相关要素。讨论了AABB包围盒的计算、更新及相交测试方法。(2)碰撞检测。先采用AABB包围盒对物体进行初步碰撞检测,再采用分离轴方法进行精确检测。基于分离轴原理探讨了如何确定分离轴,设计了投影点集和接触点集用于记录碰撞接触信息,提出了碰撞穿透处理方法,并且针对不同的接触类型,将其对应的接触点集进行了详细的讨论。(3)运动模拟。讨论了刚体运动模拟的受力模型、运动方程以及相应的微分方程求解器。(4)碰撞响应。采用基于冲量的方法处理两个物体之间的碰撞,依据切向碰冲系数将摩擦力的计算转换为切向冲量的计算。推导了不考虑摩擦力和考虑摩擦力两种情况下的碰撞响应计算公式,并针对不同碰撞接触类型的求解进行了探讨。(5)算法实现。在Visual Studio 2010开发环境中采用C#语言实现了物体群之间的碰撞模拟,采用SharpGL将运动结果可视化显示。使用不同算例对所提算法进行了验证,介绍了软件排样过程,通过对规则零件和不规则零件进行排样取得了较好结果,最后分析了入排序列对排样结果的影响。
暂无评论