solidworks二次开发的文章_第1页
solidworks二次开发的文章_第2页
solidworks二次开发的文章_第3页
solidworks二次开发的文章_第4页
solidworks二次开发的文章_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、我从事二次开发工作已经有一段时间 ,最近想把有关二次开发的经验与同道中人相互交流一下说起程序 ,我也接触不是很长时间 ,但自从接触以后 ,发现在如今国内的机械制造行业,有自主知识产权的软件 确实不多 , 国内最大的 CAD 软件公司 CAXA 公司 ,前些年推出的 CAXA 图版就是完全自主产权的 ,做的很出色 ,非常适合中国国情,很多功能都严格遵照国标.后来,CAXA公司又推出了 ,实体设计软件,但其核心是购买国外Dassault 公司 ,所以在自主三维软件在国内可以说还是一个空白 ,国外的软件做的确实不错 ,功能也非常强大 , 但是价格却是让国人难以接受的 ,只有少数大型企业能够买的起 ,

2、但是买的安装点数也不是很多.比如:中国运载火箭第一,第二,第三,第五设计研究院,汽车行业的一汽,二汽,还有华为,海尔应用的都是 Pro/E软件,Pro/E 功能非常强大 ,尤其在模具方面 ,当然,在其他方面 ,比如曲面造型都有它本身的特色,因为 PTC 公司是最先提出参数全关联的概念 ,所以该软件在八十年代一经推出,便引起了业界的轰动 ,而且,它的核心也是自成一派的所以,PTC公司发展到现在已经二十年,它的PE软件已经非常成熟了 .说起CAD软件,法国Dassault公司的 Catia(Computer Aided Tri-Dimensional Interface Application )

3、应当是首屈一指了 ,该软件在曲面方面的造诣是非常深的.法国Dassault Aviation 是世界著名的航空航天企业,该公司,在70年代Qassault只是想解 决飞机曲面的相关设计问题 ,就成为了 Catia 的第一个用户 ,随后 Catia 才应运而生 ,如今 ,经过几十年的发 展,Catia已经是功能强大的CAD/CAE/CAM 软件.后来,PTC公司提出参数化的概念 Qassault公司才将参数化引入了 Catia软件,并于94年推出CatiaV5产品,可以说PE比Catia晚20 年,但却比Catia先进20 年,其参数化这种理念 ,在如今看来 ,是很实用很成功的 .公司的现任总裁

4、原来任职于 PTCCAD 巨头沉溺于以往的成功, solidworks 公司在全球有 500 家200 多家分销商,在全球超过 60现在,世界最流行的中档 CAD 软件莫过于 Solidworks 了,其实 solidworks 公司,后来,自己独立组建了 solidworks 公司,上个世纪九十年代,一些 忽视了中端三维 CAD 的市场,这就使得 solidworks 获得了快速的增长。解决方案合作伙伴,包括 50 家完全数据集成和数据全相关的合作伙伴, 万用户。 2003 年, soliworks 的收入是 1.6 亿美元, solidworks 软件带来的收入是 4 亿美元包括合作伙伴

5、的增值服务和解决方案。 2007 年,继 solidworks2007 之后又推出了 soliworks2008( 第16 个版本),这使 得 soliworks 软件的功能更加强大。由于 solidworks 是完全在 windows 下开发出来的, 所以与 windows 是无缝结合的, windows 下的许多函 数在 solidworks 中都能使用。我们对 soliworks 进行二次开发采用的是 VC6.0 和 VS2005 ,通常用 VC 开 发 Solidworks 是生成动态链接库 (DLL )文件,这样,便会以插件的形式, 被 soliworks 调用,并且在 soliwo

6、rks 中生成菜单。 我们就像使用 soliworks 自己的模块一样使用该插件了。但是, 不是仅有这一种方法, 许多开 发者应用 VB, Delphi 开发时,生成 .exe 文件来调用 soliworks 。但是,应用 VC 来生成 .exe 文件来调用solidworks 却不是很多,因为 VC 支持 OLE ,支持 COM ,而 Solidworks API 就提供了 OLE 和 COM 两种 函数,这为我们开发 soliworks提供了很大帮助。当然, VC入门很难,更何况,如果应用MFC,微软封,还要努力啊 !装的更复杂,我们用起来就更摸不着头脑了,对于,学工科机械的人来说,刚从事

7、制造业信息化的,学开 发软件没有一年的苦读是不会入门的。所以C+编译器,操作起来也很简单,虽然推出的早,但是国内仍而 VS2005 是微软推出没几年的产品了,功能那不用说了,自VC6.0 是微软 98 年推出的,很实用的一个 然有很多人在用,尽管其中的 bug 有很多 然很强大了,其人性化的界面,操作的便利性都非常棒。如果想用 VC6.0 生成插件来开发 solidworks 的话, solidworks 公司提供了一个 SWizard.awx 的向导程序, 它能够生成 DLL 框架,我们只需在该框架下开发即可,你只需把SWizard.awx 拷贝到 X:ProgramFiles'Mi

8、crosoft Visual StudioCommonMSDev98Template下就可以了。这样,打开 VC 程序,新建 project的时候, 在 project 选项卡目录中就能出现 Solidworks-Add-in AppWizard 选项, 只需选择它, 新建工程名, 选择保存目录,然后一直下一步便可。以上仅仅是 vc6.0 中创建 DLL 的步骤。 如果你想应用 VC6.0 创建 .exe 文件来调用 solidworks ,那就不这么 简单了,这需要 OLE 技术,比如,我们要在 VC6.0 下创建了单文档的 EXE 应用程序:选择MEC AppWizard (exe),然后

9、输入文件名(Project name): solidworks, 选择目录:D:,单击 OK;选择 选)。点击single document ;点击 next, 默认选择。然后再点击 next ,在最下面,将Automation 选上(一定要next ;一直到最后,点击 Finish 。到此,我们生成了一个具有自动化功能的单文档应用程序。接下来,我们要加载 soliworks 类型库:选择 VIEW-ClassWizard-Automation 钮,选项卡 -点击 Add Class 按选择 From a type Library, 然后我们寻找 solidworks 安装目录 ,找到 sol

10、idworks sldworks.tlb 文件,选则打开。 这时出现 Confirm Class (确定类) 对话框, 选择第一个: 点击 ok ,文件夹,在该文件夹里找到ISldWorks ,然后,再点击 ok ;这时,你会发现, 在 SourceFiles 里多了 sldworks.cpp 文件, 在 文件,这便是我们加载的类型库。打开 sldworks.h ,会看到里面封装了很多 不说。加载完成之后, 我们便开始编程了。 我们要使生成的应用程序中的文件所以选择 View-ClassWizard 选择 MEssage Maps 选项卡,在 Class Name 中选择 CSolidwork

11、sView 类, 在Object IDs选择ID_.在message中选择 Command,然后单击 Add Function按钮,单击 ok,在单击HeaderFiles里多了 sldworks.hslidworks 的应用函数,我们先-新建命令来打开 solidworks ,Edit Code ;在 CSolidworksView:On() 中键入以下程序:ISldWorks m_pSldWorks;m_pSldWorks.CreateDispatch("SldWorks.Application");ASSERT(m_pSldWorks.m_lpDispatch);m_

12、pSldWorks.SetVisible(TRUE);当然,我们还要包含 sldwoks.h ,即 #include "sldworks.h"然后编译程序。单文档程序运行,选择文件 - 新建,接着, solidworks 程序便启动起来了。m_pSIdWorks.SetVisible(TRUE);这句的用途是使 solidworks 显式启动,m_p SldWorks.SetVisible(FALSE);便是隐藏调用了。以上仅仅是COM技术的一个小小的应用而已,以后还会经常接触的。接下来,我想说说,在VS2005种如何应用智能指针来调用 Solidworks ;启动Visu

13、al Studio 2005;创建项目,选择 MFC-MFC 应用程序,下一步-选择单文档,一直下一步,直到高 级功能界面,选择自动化。下一步-完成。这样生成了单文档框架。我们还是加载solidworks类型库。选择项目”添加类” “TypeLib中的MFC类”双击进入.厨期交” mjMwwIu* lilUalC* AB'IHirrW15*魅acfcL f B 音可禺的带型不匚J:V K臥心下亍丽破.二進册秦答/文忡FmssBaassB畫交件心:址口下*fl劭加製Mffi«sanea)'邃骨直叫:3 zr件©GLB町用BO删犀Cp: 冷】N 打応 ZAOer

14、iHstwrfr豪錢西R啰:11Scl fiTarLcs±)-丄X 一亠工具LV曰目5id3iaii.eidwu,di国畑.贞 渥1 iJiJugdI#S輕沁af5E却iftp夏面却 skaiM* bcimpud国沁妇,出国ff*血cm也班划 sJOS(n>bn£HrilL'.rdV曹血” daftadS却104鲨皿steerTM.aii为神蚊ft,Elsk«Mju.dl百sb* r咸id;s0us<x*dl豪娜B3)sk 仃 d含 skSyebimd3 5tC5 lepj.illyUftfdzDrrwu.dl.宝 HMflUkdril-CM-

15、;na空j沁血:勺 slSwnstwbetj.di囹 spsbaseHi色)st加丸,曲®SlJVOftiS,ewe回竝Vll.出Jdt>iMQrk5-tbtjsrwaTTjL.a)勻 SMKi.<a?wcaj.(isldtmUseu. J(T SkKL-u.dlO HBTE匕.itmi Stet Ad.d jJstfTTflra.dl岂齢Hotudl 国验 todkilu.djjsvh-iew.'ll srtcrlroJ.dl克件StB;丨訂1 MMCOJ如妻盘也:脅至布丈附*.(1; flbj *血; «a>F取蒲1,叫関下来财 K-O劃It更

16、即目如即霾&:C JkoETbJw-crkd. tlbIO團;I£k*t cht «L tii 4nJI'I5k*t chS 44111ISk-t冃卜託1 kmIS.1 tBo- ij-T eit-iLf 4化ISsJli iHLiJicTctlUj cJola ISj r J n£g:选择"文件"点击"位置"编辑框后面的按钮.再找到solidworks 安装目录: solidworks;同样加载sIdworks.tIb 文件,在接口列表框中选择"ISIdWorks "单击"添加

17、"生成类CSIdWorks。同样在在HeaderFiles 里多了 CSldWorks.h 包含的函数似乎也少了, 这其实是 就可以完全调用API函数。文件,而在Source Files并没有都添加任何文件,而且在 CSldworks中VS2005将所有的函数进行封装隐藏起来,我们只需引用CSldWorks.h,我们同样还是选择新建的时候调用在类型表中选择CSolidworksViewsolidworks。选择菜单资源中的新建”点击右键-添加事件处理程序”类,消息类型选择 Command,点击添加编辑”按钮。输入以下代码:/Initialize COMColnitialize(NUL

18、L);/Use ATL smart po intersCCom PtrvlSldWorks> swApp; /Create an instance of SolidWorksHRESULT hres = s(_uuidof(SldWorks), NULL, CLSCTX_LOCAL_SERVER);VARIANT_BOOL visibility;swA pp->get_Visible(&visibility);swApp->pu t_Visible( TRUE);别忘了加入头文件,#include "CSldWorks.h"编译运行,在程序中选择文

19、件”新建”这样就启动了 solidworks。r 卡 E T - *ast-I V,felt-<R-|-, t-卫w n-1 r?“II IHlEri W- !lI:叫.r*1-1 小占 Q *J : J , t "I r ,以上,是应用 VC6.0和VS2005,运用OLE和COM技术生成单文档程序,并实现了soliworks的启动,这是开发的第一步,因为我们只要有了 solidworks的这个对象,才能进一步的控制它的模型,草图,工程 图等等。但是,单文档程序与soliworks之间的通讯会有一定的瓶颈,传输速度会有些延迟,所以开发者通常应用VC开发时会选用插件的形式,这样

20、会提高程序的运行速度。百度知道二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功,一般来说都不会改变原有系统的内核。一般的来说,一些大公司如IBM开发了一个大型的软件系统平台,根据不同的客户的需要,一些其它的 中小公司为客户根据需求在该平台上进行第二次有针对性的开发。是否提供相应的接口,有的软件公司只提供软件,但也有小公司连代码一起出售,如是后者, 就更方便进行二次开发。比如售票系统,车站里面弄好了,提供几个储存过程给 银行,银行就可以代理售票了,这也是一种,还有一种如我们利用delphi,C#等操作word等。Solidworks二次开发通常有两种形式:一是独立应用程序(standaloneapplication),用户程序作为一个独立的应用程序(*exe),通过API接口调用 SolidWorks提供的服务,完成对SolidWorks的控制和操作;二是插件形式(AddIn application),用户程序作为一个插件(*.dll)集成到Solidworks中去。插件形式 下,用户程序跟Solidworks程序运

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论