基于OpenGL与组件技术的虚拟数控车床加工仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2 调用 gluNurbsProperty ( ) 函 数创建 NURBS 对 象指针 , 在创建 NURBS 曲面时要用到。 3 用户可 根据需要 设置 NURBS 对象属性 , 相 应函数为 gluNurbsProperty( ) 。 4 调 用 gluNurbsCurve( ) 或 gluNurbsSurface ( ) 函 数生成和绘制 NURBS 曲线。 5 调用 gluEndCurve( ) 或 glEndsurface( ) , 结束绘 制曲面。
第3期 2002 年 5 月
PRACT ICAL MEASUREMENT TECHNOLOGY 实用 测试技术
No 3 May , 2002
基于 OpenGL 与组件技术的虚拟数控车床加工仿真
张怀宇 刘胜青 罗 阳
( 四川大学制造科学与工程学院 , 成都 610065)
摘要 阐述了虚拟数控车 床加工 模拟仿 真的原 理及二 维图
3
结束语
本系统简单实用, 根据需要可以扩展功能, 虚拟
仪器的应用使 得仪器自动控制的实现 极为简便灵 活 , 对提高效率和减少人为事故 , 提高系统对产品性 能分析和产品合格率判断的能力有着十分现实的意 义。
参 1 赵智宏 , 曹冬雨 2 孙维纳等 3 刘亚 2001 动测量与控制 , 1996 测控技术 国 防技术出版社 , 2001 计 算机 自动 测量与 控制 , 虚拟仪器的 构建 技术 考 文 献 计 算机 自
通过接口结构进行通信, 除了需要很少的几个 COM 通用函数来启动通信进程之外, 接口不再需要其他 任何静态或动态连接入口 , 也不需要将地址进行固 定编码。 COM 的主要 目标之一就是要把类的接口 同实现方法分离开来。在我们的实现图形拼合算法 的程序为 DLL 或 EXE 文件独立存在 ( 这就是组件) ,
4
结束语
本文探讨了如何利用二维图形拼合算法来实现
车削加工模拟 ; 利用基于组件对象技术 ( COM) 实现 28
3 图形拼合算法程序 COM CDOM 接 口的具体实现
COM( 即 组件对象模型 Componet Object Model) 是 Microsoft 的最新 ActiveX 技术 的重要基础。它是 一种将两种软件模块连接起来, 而不再参与其他事 务的协议。当连接建立起来之后, 两个模块就可以
图4 a 与图 b 进 行布尔运算 , a b
编译并登录之后, 就可以将它当成 Visual C++ 的组 件使 用 , CgraphCombination 对 象 的 GraphDistinct 和 GraphMutual 方法可以轻易地调用。 1 通过 AppWizard 生成一个普通程序。 2 将 StdAfx. h 加 入下面一 行: # include < afx ole. h> 。 3 在程序类 InitInstance 成员函数的开始处加入 下面的一行内容 : AfxOleInit ( ) ; 然后, 就 可 以 添 加 代 码 调 用 CoGetClassObject 了。
2 肖田元 , 韩向利 , 张 林 金 宣 虚拟 制造内涵 及其 应用 研究 清华大学国家 CIMS 工程技术研究中心 3 曹岩 , 王宏 , 袁清珂 , 赵 汝嘉 其关键技术 资助 4 张铁军 , 袁哲俊 , 姚 英学 , 刘华 明 组件化设计 结构的研究 5 梁宏宝 , 钟诗胜 , 王知行 虚 拟机 床加工 系统 的 哈尔滨工业大学机械工程系 虚拟加工环境中 三维图形数 据 哈尔滨工业大学 先进制 造技 术虚拟 制造 及 西安交通大学研究生院博士 学位论文基 金
本系统软件采用模块化, 结构化设计思想。主 页控制包括所有的菜单和参数控制按钮; 实时 分析 控制 : 通过采样 分析按 钮选择实时采 集或数据分 析 , 软件工作过程如下 : 1 发送 GPIB 清除 指令给示波器 , 这个命令清 除示波器内部寄存器 , 初始化示波器 ; 2 查询示波器所获取的数据 ; 3 从示波器中读取数据 ; 4 显示测量数据及波形 ; 5 将测量所得数据发送至 EXCEL , 生成表格。
拼合( 布尔操作) 算法是实体造型软件的核心模 块 , 在构造 复杂几何图形时 , 可用简单 的图形通过 交、 并、 差运算生成。采用这种方法的优点在于算法 简单 , 实现容易 , 易于判断工件与刀具的干涉情况, 且很容易实现动态的加工模拟仿真。
图 3 工件刀具相交示意图
是得到的工件的投 影平面顶点坐 标点。然后 利用 OpenGL 绘图工具 , 即可 得到加工 工件的 模拟实 体仪器。通过 PC 机自带的 GPIB 接口能与示 波器等其它智能仪器建立通讯联系 , 获得它们的测 试结果并控制这些仪器。仪器通过 GPIB 电缆与 PC 机连接有线形和星形两种方式 , 本系统采用星形连 接。如图 2 所示。 2 3 系统硬件设计 自行设计的基于 ISA 总线的程控开关组件主要 的功能是实现由计算机直接控制一系列继电器 , 完 成对产品加电以及提供触发信号, 这样 , 配合适当的 软件就可以实现整个联试流程的自动化。在程序里 使用写端口的 I O 指令, 使相应的触发器置 1 或 0, 然后通过驱动电路和光电耦合阵列使继电器闭合或 复位, 实现对相应的组件加电、 断电或触发的动作。 同时, 由 PC 机查询状态锁存器, 从驱动电路读出各 个触发器的状态值 , 达到了监视程控开关组件工作 的目的。 2 4 系统软件设计 测试系统的软件框图 , 如图 3 所示。
通用 示波器 自动 测试系 统
( 上接第 41 页 )
调用对象界面。将 Cgraph combination
快速二维图形拼 合; 并利 用 OpenGL 图 形开发平台 和面向对象技术初步建立起虚拟数控车床环境。该 系统可用于企业实际生产、 模拟数控加工和教学培 训。
参 1 刘晓彬 性研究 考 资 料 虚拟数控车床的研究与开发及数 控系统的开 放 四川大学硕士论文
( 下 转第 28 页 )
图 6 回转体为 加工零件实体图
本系统采用 32 位的 Windows98 NT 4 0 Windows 2000 操作系统为开发平台 ; 采用支持可视化编程的 集成环境 Visual C++ 6 0 作为算法语言和界面设计 工具 , 利用封装性、 继承性和可重用性作为特征的面 向对象的编程技术 ; 采用了既具有强大的三维图形 处理功能 , 又能方便地进行参数化设计 , 同时操作系 统与 Visual C++ 对其有全面支持的软件 OpenGL 作 为图形开发工具。 通过二维图形拼合, 得到的仅仅是工件的平面 投影点, 要建立三维工件立体图形 , 就必须通过三维 图形造型。OpenGL 的辅助库函数提供了 NURBS 接 口, 它是 建立 在求 值器 基础上 的高 层函 数。使 用 NURBS 的编程思路如下 : 1 若对 NURBS 曲 面做光照 处理, 先要生成 曲 面的法向量, 可调用 glEnable( GL AUTO NORMAL) 自动生成 , 也可自行计算。
2 利用 OpenGL 实现从二维图形到三 维图形造型
传统的仿真软件主要提供仿真运行的机制和通
用的数据结构和函数, 实际系统中对象之间的相互 作用关系须通过建模转换成在数据结构内部对数据 的操作, 缺乏通用性 , 而面向对象的设计把系统所要 求解的问题分解为一些对象, 以消息的形式在各对 象间建立联系, 用户以应用领域熟悉的直观的对象 概念来建立仿真模型, 建模观点与人们认识的思维 方式一致 , 具有广泛的适应性。
形拼合算法 , 重点介 绍了利用 OpenGL 实现 从二维 图形 到三 维图形造型 和利用 COM DCOM 组件技 术实现 图形拼合 算法 程序的思路并对其具体方法进行了详细说明。 关键词 虚拟数控 图形拼合 OpenGL 组件
数控加工培训、 虚拟数控加工过程模拟培训的 应用对于充分利用现有的数控设备、 提高生产效率 和保证安全生产都具有极其重要的意义。我们在通 过对国内外相关技术的研究, 利用开放式三维图形 软件 OpenGL, 运用面向对象的方法学, 提出了在微 机环境下设计虚拟数控系统, 特别是虚拟数控车床 加工过程模拟的设计思想和设计步骤, 其中包括二 维图形拼合 算法的实 现、 曲 面造型、 COM DCOM 实 现快速二维图形拼合、 场景模拟等等内容, 并给出了 具体的实现方法。
图 2 工件沿中心 轴的示意图 图 1 工件和刀具 投影示意图
1 车削加工模拟原理及二维图形拼合 算法模型
数控加工过程模拟仿真主要有两种方法: 一是 对刀位文件进行的模拟仿真, 另一种是对数控代码 进行的模拟仿真。模拟仿真内容包括几何仿真和物 理仿真两部分。本系统采用基于数控程序的几何模 拟仿真方法。我们采用一种新颖的方法 图形拼 合法来实现车削的模拟加工, 其主体思想如下 : 在图 1 中, 图 ( a) 为工件的平面投影图, 图( b) 为 刀具的平面投影图。当图 1( a) 、 图 1( b) 相交时 , 如 图 3 所示; 将图 1( a) 沿中线平分得如图 2( a ) 所示。 图 2( a ) 与图 1( b) 进行布尔运算, 如图 4 所示, 最后 得到图 5a b。 3 轴旋转得图 6 所示。图 6 实际 将图 5 绕 4
图5 a
b
它们是 COM 模块。在 COM 中 , 模拟管理员( 即客户 程序) 不 能直接调用 CgraphCombinat ion 的 GraphDis t inct 和 GraphMutual 函数。 COM 只提供一个标准的 全局函数来访问图形拼合类的对象。然后 , 客户和 对象之间就通过接口来对话了。 我们利用组件对象技术 COM 来实现一个图形 拼合算法程序 ( CGraphCombination) , 它提供二维图形 的并、 交、 差运算功能。 CgraphCombination 对象使用 VisualC++ 编写 , 它的 IDL 定义如下: [ object , uuid( 6C606690- 6D1A- 11D2- 9F6B0080C8E058E0 ) , dual, helpstring ( ICGraphCombina t ionInterface ) , pointer- default( unique) ] interfaceICGraphCombination: Idispat ch { [ id ( 1 ) , helpstring ( methodQLeft ) ] HRESULTQLeft ( char ID, float GraphDistinct ) ; [ id ( 2 ) , helpstring ( methodUseCombination ) ] HRESULTUse( char ID, float GraphMutual) ; } ; 在 CPP 文件中将该对象的两个方法具体实现, 编译后 可得到 CGraphCombination 对 象的 二进 制文 件。此外, 我们注意到在上面使用了 Idispatch 界面, 该界面主要应用于对象的 OLE 自动化, 它提供 In voke 方法, 可以虚拟地调用其它界面中的方法, 使得 在 Visual C+ + 中可以通过它间接
该系统可用于企业实际生产模拟数控加工和教学培虚拟数控车床的研究与开发及数控系统的开放性研究1四川大学硕士论文虚拟制造内涵及其应用研究1清华大学国家cims工程技术研究中心先进制造技术虚拟制造及其关键技术1西安交通大学研究生院博士学位论文基金资助虚拟机床加工系统的组件化设计1哈尔滨工业大学机械工程系虚拟加工环境中三维图形数据结构的研究1哈尔滨工业大学19952005tsinghuatongfangopticaldiscco
相关文档
最新文档