基于UG二次开发的协同装配平台设计与实现_张帅
- 格式:pdf
- 大小:436.70 KB
- 文档页数:3
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!高度,结果因为相互影响导致示值误差太大而不能使用。
5结论对比测量在量产中的应用是与我们生产线的设备能力和工艺水平相辅相成的,只要我们坚持持续品质改进的质量方针,对比测量也将会在我们的生产线上得到广泛的应用。
[参考文献][1]刘巽尔,于春泾.机械制造检测技术手册[M ].北京:冶金工业出版社,2000.[2]罗太景.用公差原则对光滑极限量规的分析研究[J ].计量与测试技术,2006(8):22-23.(编辑立明)作者简介:朱振峰(1974-),男,高级工程师,工程硕士,主要从事工艺装备设计及生产线改进研究。
收稿日期:2011-11-23图8综合对比测具基于UG 二次开发的协同装配平台设计与实现张帅,陈虎,左平基(海军工程大学船舶与动力学院,武汉430033)1引言在现代产品设计与开发中,由于其自身的复杂性,需要多个专业部门的工作人员共同协作完成。
在这种协同工作中,如果各部门的信息不能及时分享,肯定会给总体的设计带来困难,从而降低了产品设计效率,延长了开发周期[1]。
而多专业人员的协同装配为解决此问题提供了便利。
协同装配就是设计人员在不同的地点通过网络用计算机对产品进行交互式的装配,或进行异地的装配指导,极大地增强各部门设计人员的信息交流,以达到提高装配效率和设计质量的目的,这是传统的仅限于人机交互单人装配模式难以比拟的。
目前,已有很多协同装配平台的研究,但大都是跨平台工作,也就是需要将设计的产品模型由一个单人装配平台导入到另外一个协同装配平台进行协同工作。
在这个过程中会不可避免地产生模型文件类型的转换,由于每个平台对模型的拓扑信息和几何信息[2]的读取方式方法不同,必然会引起模型信息的损失。
而大部分设计人员在产品开发时使用的虚拟装配工具都是CAD 软件,为了避免模型信息的损失以及充分发挥CAD 软件的各项优势,本文选择了基于UG 二次开发进行设计,充分应用UG 这个通用的CAD/CAE/CAM 集成系统,集各种建模功能于一身,能够进行各种仿真,涵盖了整个产品的开发过程,同时自身具有的强大的二次开发接口为各用户提供了强有力的支持,以便进一步研究探索协同装配平台的设计实现方法。
2总体设计2.1体系结构设计现在最常见的协同体系结构有很多种,其中一种是集中式结构,它采用C/S 模式[3],将大部分的装配信息和数据处理都在服务器执行,客户端的功能主要是模型的显示以及在线修改服务器中的装配信息,这种结构减轻了客户端数据量的负担,有利于协同控制,但服务器对数据处理的负担就加重了,实时性较差;另外一种是分布式[4]结构,它与第一种结构恰恰相反,每个客户端都保存一份模型数据,装配的一系列工作都由客户端完成,服务器摘要:文中应用UG_OPEN API 和Wins ock 等功能模块,在VC++编程环境下,通过UG_OPEN API 中MFC 界面制作功能与网络套接字结合,初步设计并制作了基于UG 二次开发的协同装配平台。
用一个简单的装配实例,说明远程协同装配过程,验证了基于UG 二次开发的协同装配的可行性。
关键词:协同装配;UG 二次开发;UG/Ope n API ;Wins ock中图分类号:T P391.7文献标识码:A文章编号:1002-2333(2012)03-0023-03The Design and Implementation of Collaborative Assembly Platform Based on UG Secondary DevelopmentZHANG Shuai,CHEN Hu,ZUO Ping-ji(College of Naval Architecture and Power,Navy University of Engineering,Wuhan 430033,China )Abstract :In this paper,with the function blocks of UG_OPEN API and Winsock applied,collaborative assembly platform of secondary development based on UG was initially designed and made in VC,through the combination of MFC interface creation in UG_OPEN API and network sockets.It verified the feasibility of collaborative assembly platform of secondary development based on UG with a simple example of a remote collaborative assembly process.Key words :collaborative assembly;secondary development based on UG;UG/Open API;Winsock23机械工程师2012年第3期学术交流理论/研发/设计/制造ACADEMIC COMMUNICATION信息信息信息信息信息信息信息信息信息服务端客户端客户端……信息登录信息管理装配信息转发CAD 模型信息管理装配仿真管理等功能图1平台体系结构主要负责消息转发等简单功能,这种结构将大部分的任务都分配给各客户端,响应速度快,但是存在一定的并发控制困难。
由于本平台设计研究是基于UG 二次开发,是在继承UG 单人装配所有功能的基础上,实现信息交互并完成协同功能,各客户端必须具备独自管理数据的能力,所以选择采用分布式体系结构。
体系结构中总服务器和若干个客户端是对等的,总服务器主要负责装配信息的转发和多用户的登录管理等功能,各个用户具有CAD 模型信息管理、装配仿真管理等功能。
根据产品模型的复杂程度用户端可以是单机,也可以是由高速局域网支撑的多台计算机[5],计算机数量的规模可以根据装配的复杂程度进行扩展。
对于并发控制问题,通过设计专用控制功能模块加以解决[6]。
体系结构如图1所示。
2.2功能模块设计2.2.1服务端模块设计服务端主要有两个作用:一是负责各用户的登录,将各用户通过网络联系起来;二是接收用户发送过来的装配信息,并把发送过来的装配信息转发给其他用户[7]。
也就是说服务端其实就是一个信息中转站,所以对它的设计就类似于一个聊天室的服务器,各用户就相当于聊天室的客户,发送的装配信息就相当于客户聊天的内容。
因此,它只需要具备简单的绑定IP 和PORT 端口的功能即可。
2.2.2客户端模块设计相对于服务端而言,客户端的设计就要复杂一点。
协同功能的实现无非就是解决用户间装配信息的交互问题[8]。
所以,对客户端的设计总结起来有两点问题:第一点是对用户的装配界面里的装配体进行信息的提取;第二点是将提取的信息转换成可以被发送的信息,并将其发送出去,这类似于网络传输层协议。
然而装配体包含的信息无论是数量和类型都非常多,但如果从信息转换的角度来看,大体上就可以分成四种:字符型参数的信息,整型参数的信息,浮点型参数信息和UG/Open API 特有的参数类型的信息。
对于装配体信息的提取可以通过UG/Open API 中的函数来实现[9]。
其中UF_ASSEM_ask_component_data 就可以得到给定部件的相关信息,包括该部件对应的文件全路径名、instance 名称、引用集名称和部件在装配体中的定位信息等。
而对于装配约束的信息提取可以用UF_ASSM_solve_mc 等函数来实现。
信息提取后的工作就是将其发送出去。
但是由于基于套接字传递的网络数据类型是字符型的类型,所以一些信息就不能直接发送出去,而是先要进行数据类型的转换[10]。
对于文件路径名称这种字符型的数据可以直接放到缓冲区中。
但是像变换矩阵和这种浮点型的数据就要先转换成字符型数据才能放到缓冲区中,然后才能发送出去。
对于分布式体系结构会出现的并发控制困难,主要反映在:当一个客户在UG 装配界面中导入零件时,其他客户可能会将信息发送过来,而正在操作的客户是接受不到信息的。
为有效解决这个问题,采取的解决方案是:将发送信息和接受信息的功能分别置于两个UG 的装配界面中。
一个界面是客户自己用来装配,而另外一个界面用来接受发送过来的装配信息(包括用户自己的装配信息)。
通过专门接受装配信息的功能模块和界面,从而使用户在进行虚拟装配的同时,及时了解其他用户的装配情况。
由于此协同装配平台是基于单人装配的模式下建立起来的,而在协同装配的过程中,客户间传递的只是装配信息,整个最终装配完的文件是各自保存在自己的机器里。
所以信息都是在每个用户自己的管理之下。
如果想对整个装配体进行修改,可以再一次发起协同装配的对话,进行新一轮的协同装配。
3系统实现3.1服务端控制界面服务端是在VC++环境中,基于MFC 的基本对话框功能运用Winsock 以C++语言编程而成的。
具体实现程序方法为:(1)先定义一个套接字sock 用bind 函数绑定一个IP 地址;(2)启用listen 函数进行监听用户端;(3)建立一个用于接受客房端的套接字数组client [i ],通过accept 函数用于接受若干个客户端连接;(4)通过recv 函数和send 函数分别来接受和发送信息。
生成界面如图2所示。
3.2客户端控制界面由于客户端的功能实现是在UG 内部环境中实现,所以需要用UG/Open API 作为UG 与VC++的交互的接口。
这样就可以用基于MFC 的对话框来创建一个客户端的界面。
同时利用UG/Open API 中的MenuScript 菜单定制功能将客户端的界面加入到UG 运行程序的菜单项中。
这样,就可以通过UG 的内部环境来打开客户端的界面。
登录服务器的功能也是由Winsock 封装的函数来实现。
具体实现程序方法为:(1)先定义一个套接字;(2)将对话框上的编辑框中的服务器的IP 和端口号的值传给定义的套接字;(3)由connect 函数与服务器建立连接。
生成界面如图3所示。
机械工程师2012年第3期24图2服务端控制界面图3客户端控制界面ACADEMIC COMMUNICATION学术交流理论/研发/设计/制造!!!!!!!!!!3.3信息获取和转换的实现对于信息获取的具体实现步骤是:先调用UF_ASSEM_ask_part_occ_children 获取当前节点的下一级各节点的标志号和节点数量,然后采用for 函数来依次提取这些节点处零件的信息。