ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:912.69KB ,
资源ID:28615203      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28615203.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(solidworks二次开发论文.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

solidworks二次开发论文.docx

1、solidworks二次开发论文前 言功能强大、易学易用和技术创新是SolidWorks 的三大特点,使得SolidWorks成为领先的、主流的三维CAD解决方案。SolidWorks 能够提供不同的设计方案、减少设计过程中的错误以及提高产品质量。SolidWorks 不仅提供如此强大的功能,同时对每个工程师和设计者来说,操作简单方便、易学易用。同时SolidWorks还提供了功能强大的API接口程序模块,使得用户可以根据自身的条件和需求编写加挂与该软件环境下的应用程序。本次设计设计的题目是SolidWorks的API toolbox 二次开发。主要任务为在SolidWorks软件下加挂菜单,

2、添加用户的应用软件。零件的管理一直是比较耗时又容易出错的问题。特别是一套复杂零部件以及装配体的管理更是需要有一个专门的管理软件。本次设计的结果使得管理更加方便和实用,极大的提高了工作效率。在设计的过程中,王彪老师给了我们许多的指导性建议,并为我们创造了优越的学习工作环境。同时还有刘中柱老师在设计和学习过程中也给了我极大的帮助。仅此,对帮助和支持我得老师和同学表示深深的感谢。由于本人水平有限,经验不多,论文中肯定会有不少的缺点或错误,请老师和同学批评指正。1 引 言1.1 设计目的和意义设计的目的是实现拉车闸门系统的零部件以及装配体的统一界面管理。利用SolidWorks强大的应用程序接口,以V

3、isual C6.0作为开发工具。软件的实现极大的提高了零件的管理。意义,对SolidWorks的工作流程以及基本原理有了更深的了解。对利用VC的FMC类库的运用有了基本的认识。面向对象的编程更能方便程序编制者,特别是程序的修改上。在结构上更能体现程序的流程。1.2 国内国际状况及进展SolidWorks公司于2002年9月18日宣布推出三维机械CAD软件的最新版本SolidWorks2003,进一步帮助机械设计工程师实现协同设计,将新产品快速推向市场。SolidWorks2003新版本中有几百项新功能的提高:在新版本中增加了结构分析功能,协同设计功能,网上下载三维产品目录功能,以及其他新的建

4、模功能。这些新的功能使得SolidWorks设计工程师进一步提高设计效率,SolidWorks的用户在市场上将更具有竞争力。SolidWorks2003版新增加的结构分析功能能够帮助设计工程师设计的正确性,减少了生产过程中产生的错误带来的损失。SolidWorks2003新版本能够读入的格式更加灵活,包括AutoCAD和CADKEY的各种格式,这种功能能够在三维设计时包容第三方软件的设计信息,用户能够快速完成设计。SolidWorks2003是世界上第一个能实现实时运动仿真的三维CAD软件,例如检查装配环境中的齿轮啮合等,设计师可以在制造之前发现设计中的缺陷和错误。“SolidWorks200

5、3能支持多种文件格式,对我们设计师来讲是很方便的,可以很容易地将不同的文件转化为SolidWorks的数据模型,完成设计任务。”一位刚用过SolidWorks2003的用户讲到。“我们可以很方便地将逆向工程产生的数据文件直接拖拉到SolidWorks的环境中,而不必象以前一样手工地进行文件的转换。这种功能不仅给我们设计师节省了大量的时间和工作量,同时还可以继承原来老设计中优秀的东西。总之,SolidWorks2003不仅从功能本身或从数据转化来将都是最优秀的。”1.3 论文各部分主要内容 SolidWorks作为机械类的三维CAD软件,对于具体的用户可能有不同的应用。客户自己建立相关的软件使得

6、SolidWorks能更好的成为开发管理的优秀应用软件。论文的第二章介绍了本次设计的相关知识。并对SolidWorks的使用作了简明的介绍。第三章阐述了设计的流程及结构,对系统设计作了具体的分析。第四章说明了如何建立数据库的过程以及相关的知识。并对数据库进行了相应说明。第五章对本次设计的具体实现以及程序的编制作了详细的说明。第六章是对本次设计的软件的打包,制作安装程序。第七章对软件的演示进行了示例。第八章是对这次设计的总结。最后是谢词参考文献,以及附录。 2 设计开发相关知识2.1 SolidWorks曲面设计 通过带控制线的扫描、放样、填充以及拖动可控制的相切操作产生复杂的曲面。可以直观地对

7、曲面进行修剪、延伸、倒角和缝合等曲面的操作。钣金设计 SolidWorks 提供了顶尖的、全相关的钣金设计能力。可以直接使用各种类型的法兰、薄片等特征,正交切除、角处理以及边线切口等钣金操作变得非常容易。 用户化 SolidWorks 的API为用户提供了自由的、开放的、功能完整的开发工具。 开发工具包括Microsoft Visual Basic for Applications (VBA)、Visual C+,以及其他支持OLE的开发程序。 帮助文件 SolidWorks 2001配有一套强大的、基于HTML的帮助文件系统。包括超级文本链接、动画示教、在线教程、以及设计向导和术语。 数据转

8、换 SolidWorks 提供了当今市场上几乎所有CAD软件的输入/输出格式转换器。 IGES IPT ( AutoDesk Inventor) STEP DWG SAT(ACIS) DXF VRML CGR(Catia graphic) STL HCG(Highly compressed) Parasolid graphics Pro/ENGINEER Viewpoint Unigraphics RealityWave PAR (Solid Edge) TIFF VDA-FS JPG Mechanical Desktop 2.2 SolidWorks 2001 plus APISolid W

9、orks提供API作为二次开发工具,其中列举了用户可以调用的C语言函数名及其技术指标格式。SolidWorks API是SolidWorks的OLE应用程序开发接口,用户可以利用它和支持OLE编程的开发工具,如VB、VBA(Excel, Access)、C、VC+等对SolidWorks进行二次开发,建立适合用户需要的、专用的SolidWorks 功能模块。本次设计采用VC作为开发工具。SolidWorks提供三种开发方式:可执行文件*.exe、正规的.DLLs有两种实现方式:dynamically linked或者 statically linked,一般都使用dynamically lin

10、ked。因为静态连接到MFC代码库,你的.DLL包括它自己的所有的所需的MFC代码,那么它将非常庞大。另一种是MFC扩展.DLL,一个扩展.DLL是动态连接到MFC的代码库的.DLL的.客户程序也必须动态的连接到MFC的代码库。MFC扩展.DLLs非常小.你可以建立一个导出一些函数或者类的大约10-15KB的。为了充分利用VC的资源,设计采用了最后一种即MFC扩展.DLL。2.3 Visual C6.0理解VC工程Visual C+作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。扩展名为dsw的文件类型,这种类型的文件在VC中是级别最高的,称为W

11、orkspace文件。在VC中,应用程序是以Project的形式存在的,Project文件以.dsp扩展名,在Workspace文件中可以包含多个Project,由Workspace文件对它们进行统一的协调和管理。与dsw类型的Workspace文件相配合的一个重要的文件类型是以opt为扩展名的文件,这个文件中包含的是在Workspace文件中要用到的本地计算机的有关配置信息,所以这个文件不能在不同的计算机上共享,当我们打开一个Workspace文件时,如果系统找不到需要的opt类型文件,就会自动地创建一个与之配合的包含本地计算机信息的opt文件。以clw为扩展名的文件是用来存放应用程序中用到

12、的类和资源的信息的,这些信息是VC中的ClassWizard工具管理和使用类的信息来源在应用程序中经常要使用一些位图、菜单之类的资源,VC中以rc为扩展名的文件称为资源文件,其中包含了应用程序中用到的所有的windows资源。对于以ico,bmp等为扩展名的文件是具体的资源,产生这种资源的途径很多。使用rc资源文件的目的就是为了对程序中用到的大量的资源进行统一的管理。近几年来,面向对象技术无论是在理论还是实践上都在飞速地发展。面向对象技术中最重要的就是“对象”的概念,把现实世界中的气球、自行车等客观实体抽象成程序中的“对象”。这种“对象”具有一定的属性和方法,这里的属性指对象本身的各种特性参数

13、。一个具体的对象可以有许多的属性和方法,面向对象技术的重要特点就是对象的封装性,对于外界而言,并不需要知道对象有哪些属性,也不需要知道对象本身的方法是如何实现的,而只需要调用对象所提供的方法来完成特定的功能。程序员大部分的时间是放在对对象的方法的调用上,组织这些对象进行协同工作。MFC编程特点MFC的英文全称是Microsoft Foundation Classes,即微软的基本类库,MFC的本质就是一个包含了许多微软公司已经定义好的对象的类库,在进行程序设计的时候,如果类库中的某个对象能完成所需要的功能,这时我们只要简单地调用已有对象的方法就可以了。我们还可以利用面向对象技术中很重要的“继承

14、”方法,从类库中的已有对象派生出我们自己的对象,这时派生出来的对象除了具有类库中的对象的特性和功能之外,还可以由我们自己根据需要加上所需的特性和方法,产生一个更专门的,功能更为强大的对象。正是由于MFC编程方法充分利用了面向对象技术的优点,它使得我们编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大功能足以完成我们程序中的绝大部分所需功能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调试性。下面介绍在WINDOWS程序设计中最常用的一些消息:窗口消息:WM_CREATE,WM_DESTROY,WM_CLOSE键盘消息:WM_CHAR,WM_KEYDO

15、WN,WM_KEYUP鼠标消息:WM_MOUSEMOVE,WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBCLICK,WM_RBUTTONDOWN, WM_RBUTTONUP,WM_RBUTTONDBCLICK3 设计流程及结构3.1 设计流程其中与数据库的连接部分程序流程如下:3.2 设计结构本设计的结构主要由以下部分组成:读取数据库,零件的选择,零件的预览,零件的打开。 读取数据库部分是运用VC的MFC中的DAO进行编程的。利用其指针,读取数据库里面的数据,运用SQL语句进行查询等操作。零件的预览是先读取数据库里的有关零件的位置。然后将零件在预览框中显示

16、。以利于选择的直观性,且不易出错。零件的打开是为了实现对所选零件的一些修改,零件的尺寸都是相关联的,修改简便。4 建立数据库4.1 建立表建立表格采用了微软的Access 2000为开发工具。对本次设计的具体要求的分析。建立了三个相关联的表。分别为sys_type,parts_1,part三个表。由于在VC中利用DAO读取Access数据库的格式必须是Access97文件。所以在建完表之后必须转换数据格式。设计的表如下:sys_type系统型号ID型号11型号22型号33此表为第一级表,下面的表将和此表实现相关联。(sys_type)parts_1装配体NO_1ID气压控制系统一1.11小车道

17、轨一1.21拉车汽缸装置一1.31闸门系统一1.41活塞杆托架一1.51载模小车一1.61垫板一1.71气压控制系统二2.12小车道轨二2.22拉车汽缸装置二2.32闸门系统二2.42活塞杆托架二2.52载模小车二2.62垫板二2.72气压控制系统三3.13小车道轨三3.23拉车汽缸装置三3.33闸门系统三3.43活塞杆托架三3.53载模小车三3.63垫板三3.73此表是对系统的进一步细分。(parts_1)part零件名称零件编号NO_1零件位置T形槽螺栓M301.3拉车汽缸装置T形槽螺栓M30.sldprt弹簧垫圈M121.3拉车汽缸装置弹簧垫圈M12.sldprt弹簧垫圈M161.3拉车

18、汽缸装置弹簧垫圈M16.sldprt垫圈1.3拉车汽缸装置垫圈.sldprt调整垫板1.3拉车汽缸装置调整垫板.sldprt感应开关支座1.3拉车汽缸装置感应开关支座.sldprt感应开关撞块1.3拉车汽缸装置感应开关撞块.sldprt护板1.3拉车汽缸装置护板.sldprt连接杆1.3拉车汽缸装置连接杆.sldprt六角螺母1.3拉车汽缸装置六角螺母.sldprt六角螺母M121.3拉车汽缸装置六角螺母M12.sldprt六角螺母M11.3拉车汽缸装置六角螺母M16.sldprt六角螺母M301.3拉车汽缸装置六角螺母M30.sldprt六角螺栓M101.3拉车汽缸装置六角螺栓M10.sld

19、prt六角螺栓M121.3拉车汽缸装置六角螺栓M12.sldprt六角螺栓M161.3拉车汽缸装置六角螺栓M16.sldprt平垫圈M101.3拉车汽缸装置平垫圈M10.sldprt平垫圈M121.3拉车汽缸装置平垫圈M12.sldprt平垫圈M161.3拉车汽缸装置平垫圈M16.sldprt平垫圈M301.3拉车汽缸装置平垫圈M30.sldprt上支架1.3拉车汽缸装置上支架.sldprt下支架1.3拉车汽缸装置下支架.sldprt圆螺母M271.3拉车汽缸装置圆螺母M27.sldprt圆螺母M301.3拉车汽缸装置圆螺母M30.sldprt支撑板1.3拉车汽缸装置支撑板.sldprt拉车汽

20、缸1.3拉车汽缸装置拉车汽缸.sldasm此表是保存零件的具体信息。软件最后根据此表中的零件位置打开相应的零件。注:(part)本表的记录较多,在此只列出部分作为示例。4.2 表之间的关联在设计表的过程中,在各个表中都添加一个相同的字段,将此字段作为表之间相联系的桥梁。例如在表sys_type中选择系统型号为型号1,就可得到其ID字段的值为1。其后根据ID1,在表parts_1中得到符合ID1的多个记录,选择其中的一个记录,假设为ID1,NO_1=1.3,装配体字段值为拉车汽缸装置一,则可以根据NO_1=1.3,在part表中得到一组记录。实现了从第一个表开始各个表之间的关联。5 设计的具体实

21、现5.1 设计的背景条件在设计中采用直接使用SolidWorks自带的接口程序。在安装路径下的Samplescomuserdlli386,可以直接使用其基本的工程文件。在其中添加自己的应用代码。编译链接后就可以得到一个comuserdll.dll的动态链接文件。在SolidWorks中运用Add-in功能将编译的文件打开就可以和SolidWorks实现完美的结合。5.2 在SolidWorks软件下添加菜单及子菜单在SolidWorks的模板程序中,类userApplications中定义了添加菜单的函数再在其中的函数_addMenus(LPFRAME pFrame)中添加代码实现添加用户自定

22、义的菜单以及相应子菜单。实现的代码如下:VARIANT_BOOL bres;HRESULT hres = pFrame-AddMenu(auT(闸门及拉车系统(&J), 6, &bres);hres = pFrame-AddMenuItem(auT(闸门及拉车系统(&J), auT(零件管理&1), -1, auT(USERDLLpart_manage, 这是零件管理。), &bres);hres = pFrame-AddMenuItem(auT(闸门及拉车系统(&J), auT(帮助&3), -1, auT(USERDLLmyhelp帮助), &bres);闸门及拉车系统是加挂与SolidW

23、orks顶部的菜单。零件管理、数据管理、帮助是其下面的子菜单。因为编译的最后文件是userdll.dll,所以在定义菜单函数时是在userdll.cpp下实现的。考虑到资源的问题,还必须在userdll.def中说明菜单函数的序号。实现的方法如下: myhelp 11 part_manage 12这样程序的运行才不会和SolidWorks的内部资源相冲突。5.3 添加菜单函数在userdll.cpp中添加菜单响应函数。注意在VC中如果函数不返回任何值,则函数必须定义成void类型。零件管理菜单的响应函数部分如下:void part_manage() HINSTANCE MyResourceHa

24、ndle = NULL; MyResourceHandle = LoadLibrary(_T(userdll.dll ); / Save the current resource handle HINSTANCE SolidWorksResource = AfxGetResourceHandle(); / Switch to the Application resources AfxSetResourceHandle(MyResourceHandle); CNewDlg dlg;(略) AfxSetResourceHandle(SolidWorksResource); 菜单函数实现的是打开一个

25、对话框资源。其中关系到SolidWorks资源管理问题,必须将自己定义的对话框的句柄设为当前的SolidWorks的资源句柄。具体的有关问题可以查看SolidWorks API帮助里的Programmers Guide下Getting Started 下CC中的Managing your Application Resources - C/C+,里面有详细的使用方法。帮助菜单的响应函数如下:void About() HINSTANCE MyResourceHandle = NULL; MyResourceHandle = LoadLibrary(_T(userdll.dll ); HINSTA

26、NCE SolidWorksResource = AfxGetResourceHandle(); AfxSetResourceHandle(MyResourceHandle); CAbout Aboutdlg; Aboutdlg.DoModal(); /restore the solidworkss resource handle AfxSetResourceHandle(SolidWorksResource);注意在对话框头文件中添加#include “resource.h”。否则编译时会产生找不到对话框的ID号的错误。关于的界面在SolidWorks中实现如下:5.1 关于界面图中显示的图

27、片必须是位图。在制作时要把图的格式转化为*.bmp格式。5.4 添加应用程序对话框对话框可以在VC资源里直接创建,再利用对话框的工具创建需要的各种控件,根据实际情况,对话框以及控件的安排如下图所示:5.2 对话框样式对话框的创建后,在运用时要新建一个类来控制对话框的各种操作。在本设计中定义为CNewDlg类,在对话框中的各个控件的定义都在该类的函数中实现。5.5 实现数据库连接 设计的实现采用了MFC类库的基类CDaoDatabase。运用DAO实现与数据库的链接。设计的具体步骤如下:首先在stdafx.h中添加头文件#include ,其次在对话框类中定义一个数据库指针变量CDaoDatab

28、ase m_db;将此变量放在protected型中。然后在对话框的.cpp文件中利用m_db将数据库打开,此变量是一个指针类型。要读取数据库中的数据必须再定义一个记录集变量CDaoRecordset rs(&m_db);根据对本次系统的具体分析。其实现的源程序如下: m_db.Open(_T(D:SolidWorkssamplescomuserdllpart.mdb); CDaoRecordset rs(&m_db); CString strSql=_T(SELECT * FROM sys_type ); rs.Open(dbOpenDynaset,strSql); COleVariant

29、var; while(!rs.IsEOF() CString str; rs.GetFieldValue(_T(系统型号),var); str=CCrack:strVARIANT(var); if(str=_T()|str=_T(NULL) continue; m_SYSTYPE.AddString(str); rs.MoveNext(); return TRUE;此段代码实现了将表sys_type中的系统型号字段的内容读入系统型号的组合框控件中,作为对话框程序的初始化。数据库的连接在三个组合框控件都使用到。每一个的原理都基本相似,下面介绍一下第一个组合框的具体实现。说明:第一个组合框的关联变量是m_SYSTYPE。void CNewDlg:OnSelchangeSystype() UpdateData();int nSel=m_SYSTYPE.GetCurSel(); /得到第一个组合框的焦点CString str;if(nSelLB_ERR)return;m_SYSTYPE.GetLBText(nSel,str); /得到第一个组合框的内容/AfxMessageBox(str);if(str.CompareNoCase(_T(型号1)0) /=0 is str is equal with 型号1m_FSTPARTS.ResetContent(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1