wnsr888手机版

海天精工机床有限公司 海天精工博客

分析虚拟加工和其关键技术、系统结构(二)

2.1 几何建模技术虚拟加工要在计算机上实现加工过程, 那么必然需要对相关的机械设备进行几何建模, 包括零件的几何建模和加工设备的几何建模。在单个零件的几何建模方面, 一般以 CSG 和 B-Rep, 或两者的混合表示为基础。建模方法中有简洁易行的平扫法、回转法, 还有特征造型和参数化造型方法, 在这方面, 现在已有许多的商用 CAD/CAM软件, 如UG, Pro/Engineer 等, 还有不少开源的 CAD内核代码,如 Open Cascade 等。它们往往都有一套成熟的零件几何建模方法, 可供参考。在机械设备建模方面, 由于机械设备往往是较为复杂的装配体, 故需要采用合适的模型来表示其装配关系。一般采用两种方法来表示装配体中组成元件之间的相互关系。一种是直接存储元件之间的相互位置信息, 一般采用关联矩阵(Relationship Matrix), 另一种方法是只存储组件之间的配合、连接等装配信息。相比之下, 第 1 种方法所需存储的信息较多, 而且会产生浮点数累计误差, 但通用性较好, 可以表示任何的装配关系; 第 2 种方法要存储的信息较少, 而且较为精确, 但是只能表示已知的装配关系, 限制较大。从目前的研究和应用情况来看, 两种方法之中, 第 1 种方法更为普及, 例如在研究方面, Yu 等人采用关联矩阵的方法来表示装配关系[2], 在实际应用方面, Pro/Engineer 等著名商用软件业也采用这种方法。对精工机床的几何表示目前还没有一个公认的标准模型, 精工机床有它自己的结构特点, 它的几何模型既要适应加工过程中的快速显示, 又要便于描述它的运动, 建立其运动模型, 而且还应包含对几何误差建立的模型。在这一方面, 国内外学者也有相关的研究成果, 如 Lin 等[3]在如何将误差模型集成到加工仿真过程方面进行了研究, 上海交通大学的刘国良等[4]提出了一种针对三轴加工中心的精工机床几何误差的综合模型, 等等。2.2 精工代码翻译精工代码是指在精工加工程序中用来描述工艺过程的各种操作和运动特征的各种准备功能的 G指令和辅助功能的 M指令及其他一些指令。为了能在计算机中实现虚拟精工机床的加工过程, 需要对 NC代码进行正确的翻译, 因此 NC代码翻译器成为虚拟加工系统中必不可少的核心模块。NC代码翻译器用于指挥虚拟机床的动作和状态, 机床的一切动作和状态都要受 NC代码翻译器的控制。20 世纪 70 年代以来, 随着精工图形编程和实体显示技术的迅速发展, 对 NC代码翻译器的需求也日益强烈。 因此 NC代码翻译成为了虚拟加工系统实现时首要考虑的关键技术。一个完整的 NC代码翻译器需要完成两个基本功能: NC代码的检错和翻译[5]。检错, 即按照该精工系统的编程规定和有关精工加工的常识, 对 NC代码进行词法分析、 语法分析、 语意分析, 从而检查出该 NC 代码的词法错误、 语法错误、 逻辑错误(其中包括数据不合理、加工状态不合理等)。经过检错阶段, 若 NC代码未被查出错误, 则进入翻译阶段。翻译指的是从 NC代码中提取控制机床部件运动的有关命令动作和状态信息, 将运动的数据按照位移和速度的变化划分成一系列时间片段, 计算出各时间段机床坐标的位移, 从而驱动机床模型的运动, 实现 NC代码驱动的加工过程仿真。NC代码翻译包括 5 个方面的基本功能, 即机床初始化和预处理、 词法分析、 语法分析、 语意分析、 翻译执行。其功能结构如图 1 所示[5]。1) 机床初始化和预处理: 机床初始化包括读入 NC代码、 打开机床输出文件以及设置机床的必要参数, 预处理则是要删除 NC代码中不必要的字符如空格、 注释语句、 空语句等, 同时, 也进行一些错误检查, 如注释符号匹配等。2) 词法分析: 识别出各程序段中各基本词法的单位—— —字, 同时进行数据的合法检查。3) 语法分析: 按 NC代码的语法规则进行语法检查; 语法规则是在规则库中的, 当某程序段需要进行语法分析时, 翻译子系统会查询规则库中与该段中的 G代码、 M代码相联系的语法规则, 判断该段中的各代码、 各地址是否符合该语法规则, 从而完成语法分析。4) 语义分析: 按 NC 代码的语义规则进行语义检查, 同时, 翻译器要进行必要的数据处理, 以便能使语义数据规则的检查得以进行。5) 翻译执行: 在前 4 步检查无错的情况下, 执行所翻译的 NC代码, 将机床动作与状态信息输出给动画仿真部分, 用来驱动机床模型进行动画仿真。结合上述 5 个基本功能和合适的错误信息管理,就能构建一个良好的针对特定精工系统的专用 NC 代码翻译器, 我国已有几家院校如华中理工大学、 上海交通大学、 哈尔滨工业大学等实现了某些精工系统的 NC代码翻译器, 应用情况良好。但是由于目前精工系统种类很多, 各种精工代码之间差别很大, 因此专用的翻译器适用面太窄。要解决这一问题, 可以考虑基于模版的翻译方法, 即由于各精工系统所完成的各个功能基本相同, 可以按功能实现翻译器, 并对各功能建立对应的函数库, 里面存放不同精工系统中该功能的实现函数,这样实现的翻译器就可以动态地适用于多个精工系统, 是一种通用 NC代码翻译器。
留言列表
发表留言
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。