2009-12-22 08:44:36 来源:万方数据
PDM(产品数据管理)是一种管理与产品相关信息(包括电子文档,数据库记录等)和所有与产品有关的过程(包括审签、变更等)的技术。它能有效地集成CAD、CAE、CAM、CAPP等异构系统,并可在企业范围内为产品设计和制造建立一个并行化的写作环境。SolidWorks是一款基于windows平台的功能强大的三维机械绘图软件,在企业中得到了广泛的应用。为使PDM能有效管理SolidWorks的设计信息,要根据不同企业需求实现PDM和SolidWorks的集成。本文讨论了通过接口来实现这种集成的关键技术及其应用。
1 接口式集成的特点
这种集成方式要求程序员编写接口程序,利用SolidWorks提供的API函数直接获取产品内部零部件之间的装配层次关系及零部件的基本设计信息,通过处理后再传到PDM端,自动加入到PDM中的BoM表,并存储到PDM数据库中。这种方式的集成度和自动化程度较高,数据读写速度也较快。
2 接口开发工具
凡支持OLE(0bject Linking and Embedding,对象连接与嵌入)和COM(Component 0bjectModel,组建对象模型)的编程语言都可以作为SolidWorks接口的开发工具。比较流行的开发工具有:Delphi、C、C++、VC++、VB、VC++.net及VB.net等,开发者根据自身条件及工具特点来选择一种或几种开发工具对SolidWorks进行接口开发。VC++6.0是Microsoft推出的应用非常广泛的可视化编程语言,提供了功能强大的集成开发环境,本文就是采用VC++6.0进行接口的开发。
3 接口开发相关技术和方法
3.1 COM(组建对象模型)
C0M是一种组件开发技术,它建立了一个组件模块同另一个组件模块的连接,当这种连接建立后,两个模块之间就可以通过接口来进行通讯。C0M组件是遵循C0M规范编写、以win32动态链接库(DLL)或可执行文件(EXE)的形式发布的可执行二进制代码。由于SolidWorks本身是VC所编写的,所以使用VC语言通过COM接口开发,可以实现对SolidWorks底层的开发,并且代码执行的效率高。通过VC编写基于C0M的动态连接库DLL,能直接在SolidWorks的界面下添加菜单、工具条等。这种DLL经注册即可成为SolidWorks的插件,实现与SolidWorks的无缝集成。本文所论述的接口正是通过基于C0M的DLL来实现接口与SolidWorks的无缝集成。
3.2 DLL(动态连接库)
DLL(Dynamic Linkable Library)文件,由全局数据、服务函数和资源组成,在需要时才被加载到运行的进程(EXE程序)中去,这样不仅减少了EXE文件大小、还减少了EXE程序对内存空间的需求。MFC中共有三类DLL。①Non—MFC DLL:指的是不用MFC的类结构,直接用于C语言写的DLL,其输出函数一般用的是标准C接口,并能用被非MFC或MFC编写的应用程序所调用。②RegularDLL:使用MFC类库编写的,明显特点是在资源文件里有一个继承cwinApp的类。该类DLL又分为静态连接到MFC和动态连接到MFC,静态连接到MFC的规则DLL只被vc的专业版和企业版所支持,动态连接到MFC的规则DLL里的输出函数可以被任意win32程序使用。③Extension DLL:用来实现从MFC所继承下来的类的重新利用,也就是说,用这种类型的动态连接库,可以用来输出一个从MFC所继承下来的类。它输出的函数仅可以被使用MFC且动态链接到MFC的应用程序使用。本文所论述接口使用的辅助DLL就是一种动态连接到MFC的规则DLL,通过这个DLL实现了接口与PDM的集成。
3.3 数据库访问技术
在集成接口开发中一个重要的技术环节就是采用数据库技术,完成诸如查询、排序、增删记录等对数据的操作功能。在PDM与SolidWorks集成过程中必然要将SolidWorks的零部件设计信息导入到PDM中去,所以在接口开发过程中必然要涉及对数据库的操作。Vc++使用MFC类库ODBC、DAO、OLE DB和AD0支持数据库的访问。ODBC使用应用程序可以通过统一的接口实现对数据库管理系统的访问;DAO通过数据库引擎(Microsoft Jet)实现对数据库的访问,最适用于Microsoft Jet(.mdb)数据库,因此利用DAO开发Access数据库应用程序具有独特优势;OLE DB是vc++开发数据库应用中提供的新技术,它是基于C0M的应用程序接口(API);AD0是建立在0LE DB底层技术之上的高级编程接口,兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等)和极其简单易用的编程接口,目前得到了广泛应用。本文就是利用AD0来对数据库进行访问的。
3.4 文件传输技术
集成接口开发中的另一重要技术就是文件传输技术,完成诸如图纸文档的上传和下载操作。为使PDM能方便地管理SolidWorks各图纸文档,对于已经设计好的SolidWorks模型文件要上传到PDM指定的服务器上去,而对于那些需要修改的模型文件也要能方便地下载下来进行修改,所以接口开发过程中必然涉及文档传输技术的利用。VC++中的MFC类库很好地封装了Win Socket和Winlnet.CSocket、CAsync Socket则很好地封装了Win Socket所带函数,如果用这两个类来实现文件传输,则对那些大文件必须分段传输。如果利用CFtpConnection(对Winlnet中有关FTP协议相关函数进行了封装)则可以传输任意大小的文件而不需分段。本文所论述的接口正是利用CFtp Connetion类来实现文件上传的。
4 接口应用实例
本文所论述的接口有效地实现了重庆迈特科技有限公司开发的PDM与SolidWorks 2007集成,该接口由两个DLL文件组成:一个基于COM的DLL来充当SolidWorks插件的功能,该DLL中通过调用SolidWorks API来获取零部件信息;一个辅助的DLL来充当与PDM通讯功能,该DLL通过ADO来实现对PDM数据库的操作。
4.1 接口使用环境初始化
主要设置数据库基本参数和FTP基本参数,以便后续对数据的操作和文档的上传和下载(图1)。

图1 接口使用环境设置
4.2 装配层次关系和零部件设计信息获取和上传
主要获取零部件设计信息和装配层次关系,并对相关设计信息完善后进行PDM上传(图2和图3),上传到PDM后呈现BoM如图4所示。

图2 配置字段对应关系

图3 获取到的零部件设计信息和层次关系

图4 上传零部件在PDM中BOM结构
关键代码如下(//获取层次关系):



5 结束语
接口式集成方式融合了数据库操作技术、文档上传技术及SolidWorks二次开发技术,是一种实现PDM与SolidWorks集成的有效方式。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。
