资源描述:
《solidworks接口开发技术的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第15卷 第4期甘肃科学学报Vol.15No.42003年12月JournalofGansuSciencesDec.2003文章编号:100420366(2003)0420116206SolidWorks接口开发技术的实现112赵付青,余冬梅,杨亚红(11兰州理工大学CADöCAM中心,甘肃兰州 730050;21兰州理工大学建筑工程学院,甘肃兰州 730050)摘 要:实现了运用SolidWorks的二次开发功能进行程序自动生成模型技术,并给出了具体的实现方法和程序示例1关键词:三维实体造型;二次开发;动态链接库;MFC中图分类号:TP391.72文献标识码:ASolidWorks是基于
2、Windows平台的优秀三维机械设计软件,其参数化和特征造型技术,[1]为设计人员提供了良好的设计环境1SolidWorks尽管功能非常强大,但要使其在我国企业中非常有效地发挥作用,就必须对其进行本体化和专业的二次开发工作1SolidWorks通过对象链接嵌入技术(OLE)为用户提供了强大的二次开发接口,凡支持OLE编程的开发工具,如VisualC++、VisualBasic、Delphi等均可用于SolidWorks的二次开发,创建出用户定值的、专用的SolidWorks功能模块11 系统的关键技术1.1SolidWorks的软件接口开发SolidWorks通过COM技术为用户提供了强大
3、的二次开发接口,以Vc++为例来说明1(1)SolidWorksAPIObjectsCOM技术是由Microsoft提出的组件标准,不仅定义了组件程序之间进行交互的标准,而且也提供了组件程序运行所需的环境1OLE(对象链接嵌入)技术是COM的一个应用1利用OLE技术,用户可以通过使用来自两个或多个Windows应用程序的资源来解决复杂的应用课题1OLE提供了方便的技术,用来将文档和来自不同程序的各种类型的数据结合起来1SolidWorks支持COM技术标准,同时也支持OLE标准,并且已完全实现了OLE自动化1(2)SolidWorksAPI对象简介 SolidWorksAPI接口采用面向对
4、象的方法,所有的函数[2]都是有关对象的方法或属性1SolidWorks主要的API对象(如图1所示)涵盖了全部的SolidWorks数据模型1通过对这些对象属性的设置和方法的调用,就可以在用户自己开发的DLL中实现与SolidWorks相同的功能1(3)APIöCOM对象及属性的使用 COM对象与C++程序语言对象一样具有封装性和可重用性1COM对象的封装性表现在客户不能直接访问COM对象的属性,只能通过COM对象提供的方法来访问;COM对象的可重用性表现在COM对象的包容和聚合,一个对象可收稿日期:2003-01-20基金项目:甘肃省科技攻关项目“机械CAD智能工程数据库系统”(GS9
5、922A522028)©1995-2004TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved.第15卷 赵付清等:SolidWorks接口开发技术的实现 117以完全使用另一个对象的所有功能,例如DrawingDoc对象派生于ModelDoc对象,因此DrawingDoc对象可以通过接口指针使用ModelDoc对象里的所有方法与属性1112API接口查询技术SolidWorks作为基于Windows的原创软件,为方便用户开发的程序与SolidWorks通信,提供了采用COM技术开发
6、应用程序的方法1用户开发的代码可以作为独立的EXE文件或DLL文件存在,它们就是COM模块1采用COM技术在SolidWorks平台上作二次开发时,通过直接访问SolidWorks底层对象可以方便地扩充SolidWorks的功能1采用COM技术开发SolidWorks时,COM调用的每个API函数都将有一个HRESULT©1995-2004TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved.1 甘肃科学学报182003年 第4期类型的接口指针,可以按照你的意图使用该指针,但在使用完后必须释放指针11
7、.3 资源的管理为避免用户化的SolidWorks应用程序的资源与平台本身和其它第三方开发的SolidWorks应用程序的资源发生冲突,必须对应用程序的资源进行管理1解决资源冲突的方法是调用AfxGetResourceHandle和AfxSetResourceHandle这两个函数1在使用新的资源前调用AfxGetResourceHandle函数保存当前的资源,然后调用AfxSetResourceHandle函数把当前资