基于Solidworks的零件参数化设计.doc
《基于Solidworks的零件参数化设计.doc》由会员分享,可在线阅读,更多相关《基于Solidworks的零件参数化设计.doc(8页珍藏版)》请在咨信网上搜索。
基于Solidworks的零件参数化设计 摘要:论述了利用Visual C++ 6.0对Solidworks进行二次开发的基本原理和一些关键技术,开发了可以与Solidworks无缝集成的动态链接库DLL,并且介绍了一个简单的应用实例的实现。 0 引言 Solidworks是一款非常优秀的三维机械软件,其易学易用、全中文界面等特点深受广大工程技术人员喜欢。随着学习和使用Solidwork的人员越来越多,企业为了提高效率和市场竞争力,必然有快速开发新产品、形成自身产品特色的需求,而且对于一些存在着许多重复性的劳动的产品设计需要缩短产品的开发周期。因此有必要对SolidWorks进行二次开发,使其能够在输入少量变化参数的情况下迅速生成所有产品模型并装配,最终生成工程图。 SolidWorks二次开发分两种,一种是基于OLE Automation的IDispatch技术,一般常用于Visual Basic、Delphi编程语言的接口,通过IDispatch接口暴露对象的属性和方法,以便在客户程序中使用这些属性并调用它所支持的方法,此种技术只能开发 EXE 形式的程序,所开发的软 件 不 能 直 接 加 挂 在 SolidWorks 系 统 下,无 法 实 现 与SolidWorks 的集成;另一种开发方式是基于 COM的,这种技术可以使用最多的SolidWorks API(Application Programming Interface,应用程序接口) 函数。实际上 SolidWorks 本身就是用 Visual C++编写的,所以使用 Visual C++通过 COM接口开发,可以实现对SolidWorks底层的开发并且代码的执行效率高。因为本文开发的是SolidWorks DLL(Dynamic Link Library,动态链接库) 插件,故采用基于COM的开发方式。 1 SolidWorks二次开发原理 1.1 SolidWorks API中的术语 COM(Component Object Model,组件对象模型)技术是SolidWorks API的基础,COM对象是一种包含接口、属性和事件以对象形式封装的实体,它以接口的方式提供服务,这种接口是COM对象与使用COM对象的客户程序进行通信的唯一通道。 OLE (Object Linking and Embedding,对象的链接和嵌入)可以使应用程序之间能够通过数据嵌入或链接的方式共享数据。它是SolidWorks API构造的基础,是深入理解SolidWorks API的关键。SolidWorks API是SolidWorks作为OLE自动化服务器提供的属性和方法,我们开发的插件就是使用这些接口的OLE客户。 1.2 开发工具Visual C++ 6.0 SolidWorks API是基于COM组件技术构造的,SolidWorks通过COM技术为开发人员提供了强大的二次开发接口,因此Visual C++ 6.0作为当今最流行的软件开发工具之一,是程序员的首选编程利器。它提供了强大的集成开发环境,用以方便、有效地管理、编写、编译、跟踪C++程序,大大加速了程序员的工作,提高了程序代码的效率。 使用Visual C++ 6.0进行SolidWorks二次开发的优势如下: 可以使用GDI对象和设备环境类所提供的绘图函数,可以轻易的实现绘图功能而且无需考虑具体设备情况;Visual C++ 6.0开发环境十分友好,其高度的可视化开发方式和强大的向导工具能够帮助用户轻松的开发出多种类型的应用程序;Visual C++ 6.0有着强大的调试功能,能够帮助开发人员寻找错误和提高程序效率;Visual C++ 6.0和SolidWorks有极好的连接性,能够直接调用许多资源,方便的在SolidWorks上添加命令和各种控件。 因此,可以说它是SolidWorks的最佳开发工具,适用于大型系统的开发,而在使用Visual C++ 6.0进行二次开发时的不足之处在于对开发人员的要求比较高。 1.3 SolidWorks API 对象模型 SldWorks对象是SolidWorks API对象模型中的最高层对象,它能够直接或间接地访问SolidWorks API中的所有其他对象。利用SldWorks 对象可以实现应用程序的最基本操作, 如生成、打开、关闭、结束文件、重排图标和窗口、设置当前的激活文件、生成属性定义, 也可以对 SolidWorks 的系统变量进行设置。 图1. SolidWorks API接口对象 2 SolidWorks二次开发的关键技术 SolidWorks软件的COM接口支持使用Visual C++编程语言开发DLL(Dynamic Link Library,动态链接库)程序。DLL是一种用户模块,由用户自己开发的、可以加入到最终用户(包括用户本人和其他使用该模块的人)应用程序中提供某一特定功能的函数和类的集合。如SolidWorks系统自带的插件PhotoWorks、Animator等都是SolidWorks的动态链接程序库(. dll)。通过Visual C++编写基于COM的DLL程序,能直接在SolidWorks的界面下添加菜单、工具条等,在注册表中注册成功即可成为SolidWorks的插件,实现了与SolidWorks的无缝集成。 2.1 DLL的创建 首先需要安装SolidWorks公司提供的SolidWorks API SDK, 可以从SolidWorks公司官方网站上下载与SolidWorks软件版本相对应的api_sdk.zip文件,安装好API SDK后才可以使用 SolidWorks API 接口的全部功能函数。 然后启动 Visual C++ 6.0,新建ATL COM AppWizard工程, 在类视图中新建一个ATL SolidWorks对象这样一个 SwAddIn(SolidWork插件) 对象就被插进工程中,并且取得了 SolidWorks API 的最高级对象SldWorks的控制指针。 2.2 DLL中添加资源的方法 在动态链接库中, 当用户需要添加自己的资源( 如对话框) 时, 应明确指出在什么时候使用自己的资源,否则SolidWorks分不清楚哪些是由系统控制的资源,哪些是由用户控制的资源,会发生冲突,导致程序运行错误。避免资源冲突的方法是在使用自己的资源之前调用AfxGetResourceHandle函数保存当前的资源,然后调用 AfxSetResourceHandle 函数把当前资源设置成新的资源,当使用完自己的资源后,再调用 AfxSetResourceHandle 函数恢复先前已保存的资源。创建本程序的运行界面时, 首先用对话框编辑器创建对话框模板资源, 加入所需控件, 再用Class Wizard为对话框生成 CMainDlg( 基类为 CDialog),并加入所需的成员变量。 2.3 DLL与SolidWorks的集成 用户可以通过 DLL 程序定制SolidWorks的菜单、工具栏资源等,从而实现二次开发的软件与SolidWorks的无缝集成,以下为部分代码: //在SolidWorks主窗口添加菜单 type = swDocNONE; position = 3; menu.LoadString(IDS_MYADDIN_VC_MENU); m_iSldWorks->AddMenu(type, menu, position, &retval); //添加次级菜单 position = -1; menu.LoadString(IDS_MENU_INSERTSKH_ITEM); method.LoadString(IDS_MENU_INSERTSKH_METHOD); hint.LoadString(IDS_MENU_INSERTSKH_HINT); m_iSldWorks->AddMenuItem2(type, m_swCookie, menu, position, method, update, hint, &ok); 3 二次开发实例 本实例使用SolidWorks API实现了直齿圆柱齿轮的参数化设计。 使用方法:首先将生成的DLL插件装载到SolidWorks中,然后新建一个零件文件,选择【配置】|【齿轮】命令如图2所示, 图2.选择【齿轮】命令 弹出齿轮参数对话框,在其中输入齿轮参数,如图3所示 图3.输入齿轮参数 生成的齿轮模型如图4所示。 图4 生成的齿轮 4 结束语 本文介绍了在VisualC++6.0的集成开发环境下通过动态链接库DLL对SolidWorks进行二次开发实现机械零件参数化设计的方法。通过实例说明基于SolidWorks二次开发可以很好地实现零件参数化设计,同时利用动态链接库实现与系统的无缝集成,操作简单,能满足用户开发三维CAD系统的需要。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Solidworks 零件 参数 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【pc****0】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【pc****0】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【pc****0】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【pc****0】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文