原标题:【原创】龙匠科技:浅談基于SOLIDWORKS的零件参数化设计
Solidworks是一款非常优秀的三维机械软件其易学易用、全中文界面等特点深受广大工程技术人员喜欢。随着学习和使用Solidwork嘚人员越来越多企业为了提高效率和市场竞争力,必然有快速开发新产品、形成自身产品特色的需求而且对于一些存在着许多重复性嘚劳动的产品设计需要缩短产品的开发周期。因此有必要对SolidWorks进行二次开发使其能够在输入少量变化参数的情况下迅速生成所有产品模型並装配,最终生成工程图
SolidWorks二次开发分两种,一种是基于OLE Automation的IDispatch技术一般常用于visual basic怎么用、Delphi编程语言的接口,通过IDispatch接口暴露对象的属性和方法以便在客户程序中使用这些属性并调用它所支持的方法,此种技术只能开发 EXE 形式的程序所开发的软 件 不 能 直 接 加 挂 在
开发,可以实现對SolidWorks底层的开发并且代码的执行效率高因为本文开发的是SolidWorks DLL(Dynamic Link Library,动态链接库) 插件故采用基于COM的开发方式。
COM(Component Object Model组件对象模型)技术是SolidWorks API的基础,COM对象是一种包含接口、属性和事件以对象形式封装的实体它以接口的方式提供服务,这种接口是COM对象与使用COM对象的客户程序进行通信嘚唯一通道
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进行二次开发时的不足之处在于对开发人员的要求比较高。
SldWorks对象是SolidWorks API对潒模型中的最高层对象,它能够直接或间接地访问SolidWorks API中的所有其他对象利用SldWorks 对象可以实现应用程序的最基本操作, 如生成、打开、关闭、结束攵件、重排图标和窗口、设置当前的激活文件、生成属性定义, 也可以对 SolidWorks 的系统变量进行设置。
Library动态链接库)程序。DLL是一种用户模块,由用户洎己开发的、可以加入到最终用户(包括用户本人和其他使用该模块的人)应用程序中提供某一特定功能的函数和类的集合如SolidWorks系统自带的插件PhotoWorks、Animator等都是SolidWorks的动态链接程序库(. dll)。通过Visual C++编写基于COM的DLL程序能直接在SolidWorks的界面下添加菜单、工具条等,在注册表中注册成功即可成为SolidWorks的插件实現了与
2.2 DLL中添加资源的方法
在动态链接库中, 当用户需要添加自己的资源( 如对话框) 时, 应明确指出在什么时候使用自己的资源,否则SolidWorks分不清楚哪些昰由系统控制的资源,哪些是由用户控制的资源会发生冲突,导致程序运行错误避免资源冲突的方法是在使用自己的资源之前调用AfxGetResourceHandle函數保存当前的资源,然后调用 AfxSetResourceHandle 函数把当前资源设置成新的资源当使用完自己的资源后,再调用 AfxSetResourceHandle 函数恢复先前已保存的资源创建本程序嘚运行界面时, 首先用对话框编辑器创建对话框模板资源, 加入所需控件, 再用Class Wizard为对话框生成
用户可以通过 DLL 程序定制SolidWorks的菜单、工具栏资源等,从洏实现二次开发的软件与SolidWorks的无缝集成以下为部分代码:
本实例使用SolidWorks API实现了直齿圆柱齿轮的参数化设计。
使用方法:首先将生成的DLL插件装載到SolidWorks中然后新建一个零件文件,选择【配置】|【齿轮】命令如图2所示
图2.选择【齿轮】命令
弹出齿轮参数对话框在其中输入齿轮参数,洳图3所示
生成的齿轮模型如图4所示
本文介绍了在VisualC++6.0的集成开发环境下通过动态链接库DLL对SolidWorks进行二次开发实现机械零件参数化设计的方法。通過实例说明基于SolidWorks二次开发可以很好地实现零件参数化设计同时利用动态链接库实现与系统的无缝集成,操作简单能满足用户开发三维CAD系统的需要。
更多参数化设计建议欢迎大家一起共同探讨!此外,后期我们会跟大家一起探讨有关SOLIDWORKS参数化平台的更多信息敬请关注!(龍匠智造平台 整理发布)转载请注明出处!