摘要:以SolidWorks2001为开发平台,结合VisualC++6.0和VisualBasic6.0这2种高级程序开发语言,提出了一种三维CAD二次开发方法.该方法避开了开发中的难点,减少了工作量,具有一定的参考价值 关键词:SolidWorks;CAD;二次开发 CAD的应用目的是提高设计质量,传播和保存设计经验,提高设计效率,降低设计成本,提高设计管理水平等,目前国际和国内知名的CAD商品软件主要有Pro/Engineer,UGⅡ,I-Deas,SolidWorks,Au toCAD以及华正CAXA、高华CAD系统等.这些商品化的通用设计平台基本上覆盖了整个制造行业,但专业针对性差,不能满足各种各样具体领域的设计需求,在工程设计中难以达到CAD真正的应用目的.因此CAD的二次开发成为CAD技术推广应用过程中面临的主要问题之一. CAD的二次开发是使商品化、通用化的CAD系统用户化、本土化的过程[1].商品化CAD系统一般都提供二次开发工具、开发语言等.但怎样才能达到使用方便、记忆量少、灵活的提示信息、良好的交互方式、良好的出错处理,对选择合理的二次开发方法是至关重要的. 1 二次开发的软硬件环境 1.1 硬件环境 微型计算机(微机)和工作站是应用最广泛的2种硬件平台,虽然工作站具有速度快、工作效率高、支持分布式计算和多任务进程等优点,但其操作复杂、价格昂贵.随着CPU速度的不断提高,图形处理能力的不断增强,微机平台已经能够满足CAD系统对硬件的要求[2].且由于其价格相对较低,及出现的一批基于微机的三维CAD软件,如Pro/Engineer,I-Deas,SolidWorks等,使微机得到了迅速的普及.故选择普通微机作为二次开发的硬件平台. 1.2 软件环境 1.Windows98,Windows2000或WindowsXP操作系统. 2.SolidWorks2001或更高版本的CAD软件系统.SolidWorks是基于Windows的CAD/CAE/CAM/PDM桌面集成系统,其核心技术是在Windows环境下开发而成,具有强大的实体建模功能和用户熟悉的Windows图形界面,开放性好,提供的应用编程接口API是基于OLEAutomation的编程接口,包含了大量的功能函数,可以被VisualBasic,VBA(Excel,Access,etc.),C,VisualC++,SolidWorksmacro或任何支持MicrosoftOLE(ObjectLinkingandEmbedding)技术的编程语言调用[1]. 3.VisualC++6.0和VisualBasic6.0高级编程语言平台. 4.SolidWorks-API-SDK. SolidWorks-API-SDK包含SolidWorksAPI例子、一个用于在VisualC++编程平台上建立Solid Works插件(Add-In-DLL)的动态链接库模板和ATL工程模板.
2 思路与实现方法 2.1 思路 SolidWorks提供了多种二次开发方法,每种方法都各有所长,如果能将他们的优点集中起来,必将达到良好的效果.故考虑用VisualC++开发SolidWorks插件和菜单,用VisualBasic开发建模、装配等驱动程序和人机交互界面,之间的逻辑关系如图1所示. 2.2 实现方法 2.2.1 插件
利用SolidWorks-API-SDK的DLL工程模板,开发SolidWorks的插件.具体方法如下:
1.启动MicrosoftVisualC++6.0,在文件下拉菜单选择“新建工程”,选取SolidWorksAdd-InApp Wizard,输入工程名(如MyPro)及位置(如e:\mypro),点击“下一步”;
2.确定SolidWorks的安装路径,选取其他相应选项,点击“下一步”;
3.输入插件名称以及描述,选取其他相应选项,点击“完成”;
4.在工作区选择MyProresources\Toolbar,修改工具条大小图标;在文件MyPro.h和MyPro.cpp的Toolbarcallbacks部分添加或删除工具条执行函数;
5.在文件ExampleApp.cpp的函数voidCMyproApp::docCreateMenu(longDocumentType)中修改相应的菜单和子菜单命令,例如把 //addmenu hres=pFrame->AddMenu(auT(“MyPro&App”),swMenuPosition,&bres); //addmenuitem 修改为 //addmenu hres=pFrame->AddMenu(auT(“齿轮设计(&G)”),swMenuPosition,&bres); //addmenuitem hres=pFrame->AddMenuItem(auT(“齿轮设计(&G)”),auT(“开始运行程序(&B)...”),swLastPo sition,auT(“mypro@MenuItemCBGuanli,齿轮设计程序运行”),&bres).
上面程序中,addmenu项为主菜单,即“齿轮设计(&G)”;addmenuitem项为子菜单,即“开始运行程序(&B)...”;“齿轮设计程序运行”是提示信息. |