基于OpenGL零件设计平台的开发
2018-11-02李琳杰赵伟博
李琳杰,赵伟博,李 权
(1.陕西工业职业技术学院 数控工程学院,咸阳 712000;2.比亚迪汽车工业有限公司,深圳 518124)
0 引言
计算机辅助系统根据任务的不同分别发展出CAD、CAPP、CAM、CAE等,经过多年的发展与改进,这些系统在各自的领域已经很难有突破性的进展。由于它们是各自发展的,导致的结果是相互之间不兼容,从而形成信息孤岛[1,2]。本文研究基于OpenGL的零件设计平台,通过开发自有的三维设计界面,实现云制造服务模式下的制造资源服务,将产品模型的图形表达与工程信息、非工程信息紧密结合,协调设计和工艺的关系,补足云制造环境下设计平台以表格形式进行服务申请的单一模式。
1 零件设计平台软件总体框架
本软件拟采用经典的三层软件构架,分别是用户操作层、逻辑操作层和数据管理层[3,4]。用户通过点击按钮等操作调用模型信息处理集、模型图形信息处理集,驱动单个制造要素模型的建立,然后通过发送按钮调用数据发送处理集,服务器返回的服务信息自动调用数据接收处理集,显示在服务信息列表上,经过用户确认之后,单个制造要素和整体模型连接。软件整体构架如图1所示。
图1 软件整体构架
2 制造要素的模型显示算法
2.1 面元识别算法
识别码的第一段编码是该制造要素所属的加工行为类的编码[5~7],如车削为Turning,铣削为Milling(对应于编码01、02)等;第二段编码是该制造要素的种类,如车外圆为Cylinder,车倒角为Chamfer(同样对应于编码01、02)等;第三段编码是该制造要素在同种制造要素组员中的加入时间排列序号,如某个制造要素是车削类车外圆中第五个加入的制造要素,则排序编码为05;第四段编码是当前面元素是所属制造要素的面元素,如外圆底面的编码为01,外圆侧面的编码为02等;第四段编码是该面元素的法线方向,由于面元素是在某一轴的垂直面上绘制,所以法线方向即该轴的正负方向,正方向指定为1,负方向指定为2。这样就构成了一个完整的识别码,如图2所示。
图2 识别码的组成
2.2 识别码的解析
利用上述识别码命名规则,在获取正确的识别码之后,需要对识别码进行解析,解析规则如下:首先,截取解析识别码第一段编码,由第一段编码得到相应的加工行为类;其次,截取解析第二段编码,识别相应的制造要素的种类,去获取所对应的动态结构体数组;然后,截取解析第三段编码,得到相应制造要素的结构体;接下来截取第四段编码,确定是制造要素的定位面;最后,得到该选定位面的法线方向。
通过前三段编码可以得到相应制造要素的整体信息,然后获得该结构体的坐标、矢量方向等,但它不是选定面元素的坐标和矢量方向。通过第四段和第五段可以得到选定面的坐标和矢量方向。
3 制造要素模型数据的管理
3.1 零件信息拓扑树
本文采用三层节点的拓扑树结构设计,分别是零件层根节点、制造要素集根节点、制造要素根节点。其中,制造要素集根节点是零件层下的子节点,而制造要素根节点是制造要素集下的子节点,三者逐级传递。零件层根节点下分零件名称、零件总价、零件版本、零件要素集等子节点信息。零件要素集根节点则是对构成零件制造要素的集合,当零件设计采用不同的制造要素则在制造要素集下出现对应的制造要素。
3.2 制造要素信息拓扑树
本文采取获取点击制造要素的位置以及制造要素集下所有要素的个数,然后统计制造要素容器下的总个数,首先确认是获取制造要素的归属,然后确认点击的制造要素在该制造要素下的位置,如图3所示。
图3 制造要素信息拓扑树更新模式
4 零件设计平台的实现及实例
4.1 软件主界面
软件主界面如图4所示,第一行为菜单栏,其中“文件”菜单包含新建工程按钮、打开工程按钮、保存工程按钮。第二行为常见制造要素栏、视图定向栏、模型变换栏,常见制造要素工具栏设定的普通大众化的制造要素,视图定向栏按视角分为正视图、后视图、俯视图、仰视图、左视图、右视图。模型变换栏包含原点复位、平移、旋转、放大、缩小等功能。两个主窗口分别是制造要素模型显示窗口和产品资源窗口,产品资源窗口分为设计树子窗口与制造要素树子窗口,两者之间可互相切换。
图4 软件主界面
4.2 实例描述
通过在“制造要素”按钮下选择“车削类”中的“外圆”制造要素,并选择“聚合”组合关系,通过点选关系之后将弹出如图5所示的参数化界面。用户在这个界面输入建模所需的参数,选择“下一步”按钮进入其余信息界面对补充信息进行完善。最后出现图6所示的车外圆制造要素模型。
同样在“车削类”中选择“倒角”制造要素,但是选择“依附”组合关系,确认倒角和车外圆之间的组合关系,通过鼠标右键点击外圆模型中的一个端面,跳出确认按钮菜单后,系统将会自动识别出面的参数为倒角行为做准备,然后进入倒角参数化界面,可以发现坐标、矢量栏变为灰色且有相应的数值。用户只需输入剩余的参数即可。
图5 参数化界面
如上述一致,分别建立“车圆角”、“车倒角”、“钻孔”、“铣键槽”等制造要素,并将其发送至服务平台。
5 结论
本文以OpenGL为图层接口结合MFC框架,搭建软件图形开发环境,研究了制造要素具有唯一性的数字识别命名规则方法,在OpenGL的选择模式下,开发出制造要素面元识别算法,并给出与产品、制造要素相关拓扑树结构显示图及算法,实现了制造要素信息的显示与处理。完成了零件设计平台的主要界面和功能开发,通过实例运行对平台进行验证,结合功能要求下的制造要素模型显示及服务请求显示,验证了软件建模的可行性和适用性。
图6 显示模型