




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
我从事二次开发工作已经有一段时间,最近想把有关二次开发的经验与同道中人相互交流一下!说起程序,我也接触不是很长时间,但自从接触以后,发现在如今国内的机械制造行业,有自主知识产权的软件确实不多,国内最大的CAD软件公司CAXA公司,前些年推出的CAXA图版就是完全自主产权的,做的很出色,非常适合中国国情,很多功能都严格遵照国标.后来,CAXA公司又推出了,实体设计软件,但其核心是购买国外Dassault公司,所以在自主三维软件在国内可以说还是一个空白,国外的软件做的确实不错,功能也非常强大,但是价格却是让国人难以接受的,只有少数大型企业能够买的起,但是买的安装点数也不是很多.比如:中国运载火箭第一,第二,第三,第五设计研究院,汽车行业的一汽,二汽,还有华为,海尔应用的都是Pro/E软件,Pro/E功能非常强大,尤其在模具方面,当然,在其他方面,比如曲面造型都有它本身的特色,因为PTC公司是最先提出参数全关联的概念,所以该软件在八十年代一经推出,便引起了业界的轰动,而且,它的核心也是自成一派的.所以,PTC公司发展到现在已经二十年,它的Pro/E软件已经非常成熟了.说起CAD软件,法国Dassault公司的Catia(Computer Aided Tri-Dimensional Interface Application )应当是首屈一指了,该软件在曲面方面的造诣是非常深的.法国 Dassault Aviation 是世界著名的航空航天企业,该公司,在70年代,Dassault只是想解决飞机曲面的相关设计问题,就成为了Catia的第一个用户,随后Catia才应运而生,如今,经过几十年的发展,Catia已经是功能强大的CAD/CAE/CAM 软件.后来,PTC公司提出参数化的概念,Dassault公司才将参数化引入了Catia软件,并于94年推出CatiaV5产品,可以说Pro/E比Catia晚20年,但却比Catia先进20年,其参数化这种理念,在如今看来,是很实用很成功的.现在,世界最流行的中档CAD软件莫过于Solidworks了,其实solidworks公司的现任总裁原来任职于PTC公司,后来,自己独立组建了solidworks公司,上个世纪九十年代,一些CAD巨头沉溺于以往的成功,忽视了中端三维CAD的市场,这就使得solidworks获得了快速的增长。solidworks公司在全球有500家解决方案合作伙伴,包括50家完全数据集成和数据全相关的合作伙伴,200多家分销商,在全球超过60万用户。2003年,soliworks的收入是1.6亿美元,solidworks软件带来的收入是4亿美元包括合作伙伴的增值服务和解决方案。2007年,继solidworks2007之后又推出了 soliworks2008(第16个版本),这使得soliworks软件的功能更加强大。由于solidworks是完全在windows下开发出来的,所以与windows是无缝结合的,windows下的许多函数在solidworks中都能使用。我们对soliworks进行二次开发采用的是VC6.0和VS2005,通常用VC开发Solidworks是生成动态链接库(DLL)文件,这样,便会以插件的形式,被soliworks调用,并且在soliworks中生成菜单。我们就像使用soliworks自己的模块一样使用该插件了。但是,不是仅有这一种方法,许多开发者应用VB,Delphi开发时,生成.exe文件来调用soliworks。但是,应用VC来生成.exe文件来调用solidworks却不是很多,因为VC支持OLE,支持COM,而Solidworks API就提供了OLE和COM两种函数,这为我们开发soliworks提供了很大帮助。当然,VC入门很难,更何况,如果应用MFC,微软封装的更复杂,我们用起来就更摸不着头脑了,对于,学工科机械的人来说,刚从事制造业信息化的,学开发软件没有一年的苦读是不会入门的。所以,还要努力啊!VC6.0是微软98年推出的,很实用的一个C+编译器,操作起来也很简单,虽然推出的早,但是国内仍然有很多人在用,尽管其中的bug有很多。而VS2005是微软推出没几年的产品了,功能那不用说了,自然很强大了,其人性化的界面,操作的便利性都非常棒。如果想用VC6.0生成插件来开发solidworks的话,solidworks公司提供了一个SWizard.awx的向导程序,它能够生成 DLL框架,我们只需在该框架下开发即可,你只需把SWizard.awx拷贝到X:Program FilesMicrosoft Visual StudioCommonMSDev98Template下就可以了。这样,打开VC程序,新建project的时候,在project选项卡目录中就能出现Solidworks-Add-in AppWizard选项,只需选择它,新建工程名,选择保存目录,然后一直下一步便可。以上仅仅是vc6.0中创建DLL的步骤。如果你想应用VC6.0创建.exe文件来调用solidworks,那就不这么简单了,这需要OLE技术,比如,我们要在VC6.0下创建了单文档的EXE应用程序:选择MEC AppWizard(exe),然后输入文件名(Project name): solidworks,选择目录:D:,单击OK;选择single document;点击next,默认选择。然后再点击next,在最下面,将Automation选上(一定要选)。点击next;一直到最后,点击Finish。到此,我们生成了一个具有自动化功能的单文档应用程序。接下来,我们要加载soliworks类型库:选择VIEW-ClassWizard-Automation选项卡-点击Add Class按钮,选择From a type Library,然后我们寻找solidworks安装目录,找到solidworks文件夹,在该文件夹里找到sldworks.tlb文件,选则打开。这时出现Confirm Class(确定类)对话框,选择第一个:ISldWorks,然后,点击ok,再点击ok;这时,你会发现,在SourceFiles里多了sldworks.cpp文件,在HeaderFiles里多了sldworks.h文件,这便是我们加载的类型库。打开sldworks.h,会看到里面封装了很多slidworks的应用函数,我们先不说。加载完成之后,我们便开始编程了。我们要使生成的应用程序中的文件-新建命令来打开solidworks,所以选择View-ClassWizard选择MEssage Maps选项卡,在Class Name中选择CSolidworksView类,在Object IDs选择ID_FILE_NEW.在message中选择Command,然后单击Add Function按钮,单击ok,在单击Edit Code;在CSolidworksView:OnFileNew()中键入以下程序:ISldWorks m_pSldWorks;m_pSldWorks.CreateDispatch(SldWorks.Application);ASSERT(m_pSldWorks.m_lpDispatch);m_pSldWorks.SetVisible(TRUE);当然,我们还要包含sldwoks.h,即#include sldworks.h;然后编译程序。单文档程序运行,选择文件-新建,接着,solidworks程序便启动起来了。m_pSldWorks.SetVisible(TRUE);这句的用途是使solidworks显式启动,当然m_pSldWorks.SetVisible(FALSE);便是隐藏调用了。以上仅仅是COM技术的一个小小的应用而已,以后还会经常接触的。接下来,我想说说,在VS2005种如何应用智能指针来调用Solidworks;启动Visual Studio 2005;创建项目,选择MFC-MFC应用程序,下一步-选择单文档,一直下一步,直到高级功能界面,选择自动化。下一步-完成。这样生成了单文档框架。我们还是加载solidworks类型库。选择“项目”-“添加类”-“TypeLib中的MFC类”双击进入选择文件点击位置编辑框后面的按钮再找到solidworks安装目录:solidworks;同样加载sldworks.tlb文件,在接口列表框中选择ISldWorks单击添加生成类CSldWorks。同样在在HeaderFiles里多了CSldWorks.h文件,而在Source Files并没有都添加任何文件,而且在CSldworks中包含的函数似乎也少了,这其实是VS2005将所有的函数进行封装隐藏起来,我们只需引用CSldWorks.h,就可以完全调用API函数。我们同样还是选择新建的时候调用solidworks。选择菜单资源中的“新建”,点击右键-“添加事件处理程序”在类型表中选择CSolidworksView类,消息类型选择Command,点击“添加编辑”按钮。输入以下代码:/Initialize COMCoInitialize(NULL);/Use ATL smart pointersCComPtrISldWorks swApp;/Create an instance of SolidWorksHRESULT hres = swApp.CoCreateInstance(_uuidof(SldWorks), NULL, CLSCTX_LOCAL_SERVER);VARIANT_BOOL visibility;swApp-get_Visible(visibility);swApp-put_Visible( TRUE);别忘了加入头文件,#include CSldWorks.h编译运行,在程序中选择“文件”-“新建”,这样就启动了solidworks。以上,是应用VC6.0和VS2005,运用OLE和COM技术生成单文档程序,并实现了soliworks的启动,这是开发的第一步,因为我们只要有了solidworks的这个对象,才能进一步的控制它的模型,草图,工程图等等。但是,单文档程序与soliworks之间的通讯会有一定的瓶颈,传输速度会有些延迟,所以开发者通常应用VC开发时会选用插件的形式,这样会提高程序的运行速度。百度知道二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功,一般来说都不会改变原有系统的内核。一般的来说,一些大公司如IBM开发了一个大型的软件系统平台,根据不同的客户的需要,一些其它的中小公司为客户根据需求在该平台上进行第二次有针对性的开发。是否提供相应的接口,有的软件公司只提供软件,但也有小公司连代码一起出售,如是后者,就更方便进行二次开发。比如售票系统,车站里面弄好了,提供几个储存过程给银行,银行就可以代理售票了,这也是一种,还有一种如我们利用delphi,C#等操作word等。 Solidworks二次开发通常有两种形式:一是独立应用程序(standalone application),用户程序作为一个独立的应用程序(*.exe),通过 API接口调用SolidWorks提供的服务,完成对SolidWorks的控制和操作;二是插件形式(AddIn application),用户程序作为一个插件(*.dll)集成到Solidworks中去。插件形式下,用户程序跟Solidworks程序运行在同一进程空间,运行效率高,而且用户可以在SolidWorks中添加自己的菜单、工具栏、属性页等,使用户程序跟Solidworks程序浑然容为一体。由于插件程序跟SolidWorks运行在同一进程空间,插件程序的异常会导致solidworks程序的不稳定,因此在做开发时也要更加小心。相对应的独立应用程序跟solidworks程序运行在不同的进程空间,客户程序的异常不会影响solidworks,但由于涉及到跨进程调用,它的效率会相对比较低,而且这种方式下用户不可以在solidworks中添加自己的菜单、工具栏和属性页等。 任何支持COM和OLE的编程语言都可以成为S0lidWorks的开发工具,如VB、VBA、C、VC+等。开发者可以根据自身的条件、工具的特点,选择一种适合的开发工具。Visual Baic(VB)是运行在Windows环境下的一种可视化编程语言,使用面向对象的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆垫江县2025年上半年事业单位公开遴选试题含答案分析
- 河北省武安市2025年上半年事业单位公开遴选试题含答案分析
- 河北省灵寿县2025年上半年事业单位公开遴选试题含答案分析
- 2025版体育健身器材租赁服务外包合同
- 2025版葡萄园品牌推广承包合作协议
- 2025年度农民工工资支付及权益保障合同
- 2025版人才职业生涯规划服务协议:助力员工实现人生价值
- 2025年度生态草场承包经营权转让合同范本
- 2025版砂石材料行业产业链整合与优化服务合同
- 2025补充采购合同范本:能源行业设备采购协议
- 欧盟委员会人工智能白皮书
- 电气车间送电试车方案
- 神经外科常见疾病护理常规
- 急性脑梗塞护理课件
- EPP发泡聚丙烯项目可行性研究报告参考范文
- 2025年湖南省中考英语试卷真题(含答案解析)
- 绵阳市医学会招聘笔试真题2024
- 赛事承办、体育比赛组织策划投标方案
- 食源性疾病培训课件完整版
- 2025年智能仓储物流机器人的多机器人协作与任务分配优化策略的实践探索可行性研究报告
- 2025中国心肌病综合管理指南要点解读课件
评论
0/150
提交评论