基于opengl的多轴运动仿真.docxVIP

  • 1
  • 0
  • 约3.21千字
  • 约 4页
  • 2023-10-29 发布于广东
  • 举报
基于opengl的多轴运动仿真 0 生成文件为三维图形,其三维结合的方式确定 germ(germ)是美国germ开发的非常优秀的三维图形软件库。其实质是图形和硬件的接口。它提供一系列的三维图形单元、图形变换函数以及外部设备访问函数等, 在处理建模、变换、光线、色彩、动画等方面具有很好的性能。OpenGL独立于硬件、窗口系统和操作系统, 能在各种平台下工作, 许多计算机公司把OpenGL集成到各种窗口和操作系统中。VC++中MFC (微软基础类库) 包含了强大的基于Windows的应用框架, 提供了丰富的窗口和事件管理函数, 利用MFC调用OpenGL函数可以较方便地实现数控铣削材料去除过程的动态仿真。 1 生成文件后的程序 在VC++6.0环境下开发OpenGL应用程序需要解决OpenGL与VC++6.0窗口系统的接口问题, 主要是为OpenGL创建适当的渲染描述表 (Render Contexts) 并设置正确的像素格式。此外还需将OpenGL与VC++6.0事件编程相结合, 在VC++6.0事件处理程序中利用OpenGL进行图形绘制。以下是基本步骤:①利用MFC APPWizard建立一个单文档应用程序框架;②打开资源编辑器对程序界面上的菜单、对话框等资源进行必要的修改;③在程序中包含进OpenGL的头文件和库文件;④利用ClassWizard进行OpenGL所必须的初始化工作, 包括设置像素格式、建立渲染描述表以及初始化OpenGL投影观察体系等;⑤根据对程序功能的要求, 给视图类和其它类添加具有相应功能的成员函数, 并进行相应的事件处理。 2 刀具扫阶段切削的结果 数控铣削材料去除过程动态仿真是通过工件与刀具扫掠体之间的布尔减运算实现的。刀具沿刀位轨迹运动, 形成刀具扫掠体, 并不断通过执行工件几何体与刀具扫掠体之间的布尔减运算来更新工件几何体, 最后形成的工件几何体就表示了切削的结果。仿真过程流程图见图1。 2.1 利用规则、cpp等格式的生成三维图形 OpenGL本身提供了基本的点、线、多边形、三维物体 (如球体、锥体、多面体等) 及复杂曲线和曲面 (如Bezier、Nurbs等曲线或曲面) 的绘制函数。但对于复杂的三维物体, 利用OpenGL建模就比较困难了, 在这种情况下, 可采用下述方法:①利用一定的算法, 将其它三维建模软件 (如3DMAX, AutoCAD等) 创建的模型数据读出来, 然后利用这些数据在OpenGL中重新构建三维模型;②利用3D Exploration等软件对在建模软件中已建好的模型进行转换, 生成.cpp格式的OpenGL cpp代码, 这种代码包含了所有关于图形的数据信息, VC++可以直接调用这种代码文件, 生成三维图形。本文采用第二种方法来建立工件、刀具的实体模型。 2.2 该算法 2.2.1 zmap法佐理 基于实体的仿真算法可以提供三维形体最完整的几何和拓扑信息, 能够进行准确的过程仿真, 但这种方法由于计算量大、效率低, 难以实现实时仿真, 因此需要采用离散的仿真方法。 目前常用的离散仿真方法大致分为两大类:基于图像空间离散法的仿真和基于物体空间离散法的仿真。本文采用一种基于物体空间的离散方法——Z_map算法。 具体说来, Z_map方法将工件的z轴可见包络面按xy平面定义域离散为网格, 各个网格点对应一个z坐标, 相当于用平面内长出的不等长线段来代替曲面, 这些线段就称为Z_map法矢。平面网格及其对应的一系列点z坐标组合就是曲面的Z_map表达 (见图2) , 即: {x(i) ,y(j) ,z(i,j) }i∈[0,I],j∈[0,J]。 其中,I、J为x、y方向网格数。这样, 在计算机中可以用一个二维数组来表示Z_map法矢, 该数组的两个下标分别对应x、y轴上的I+1、J+1个网格点, 数组的各个元素即表示其下标对应的网格点处的Z_map值。 网格划分的越小, 则仿真精度越高, 但同时会影响仿真速度。 2.2.2 刀具扫掠体构造 实际应用中铣刀的形状多种多样, 这里假设采用圆角铣刀。图3是圆角铣刀的几何示意图, 其中R为刀具半径,r为圆角半径。 数控铣削加工中, 刀具根据每段NC指令从某一起始位置经某一路径运动到另一位置, 在此过程中, 刀具在空间扫过了一定的体积, 刀具在运动过程中包络的空间形体称为这一段轨迹内的刀具扫掠体。圆弧插补可以近似用一组直线段来代替, 因此只考虑刀具做直线进给的情况。刀具沿轴向运动时, 扫掠体与刀具实体本身相比, 仅在轴向长度上产生变化。构造这种扫掠体与构造刀具实体方法相同。刀具沿直线运动时, 扫掠体等效为起点、终点两个刀具实体和全轮廓沿直线轨迹扫掠体的组合。 2.2.3 平行走刀情况 (1) 对于一条NC指令, 设刀具从起点Ps(x

文档评论(0)

1亿VIP精品文档

相关文档