2 快速发布模块的设计
三维CAD文件快速发布模块包含4个组件:SolidWorks addin插件组件、用户操作界面组件、装配体遍历组件、数据文件发布组件。
2.1 SolidWorks addin插件组件的实现
对于SolidWorks addin插件组件的创建,基本方法是利用SolidWorks ATL Object Wizard制作DLL文件,通过编译,完成DLL文件在SolidWorks中的自动注册。同时在SolidWorks中增加一项菜单,此菜单有相应的下拉菜单,对应相应的功能,如图3所示。其基本过程如下:
1)在VC++中,通过ATL COM AppWizard新建一个支持MFC的DLL工程。
2)在新建的DLL工程名上右击,选择New ATL Object,在弹出的ATL Object Wizard对话框中选择SwAddln,生成一个SwAddln对象,同时自动生成一个名为Iswobj的接口,用于和SolidWorks通信。
3)添加自定义方法。在Class View界面中,右击Iswobj类,选择Add Method命令,输入相应命令名,VC向导自动生成相应代码,用户添加实现的相关代码。
4)在自定义的菜单项下增加相应的菜单命令。通过VC++开发环境中资源管理器的String Table,添加String资源。包括命令项显示的内容、命令项的相应函数(对应步骤3的命令名)、命令项显示的提示信息。
5)菜单命令的函数实现。在swobj.cpp文件中的void Cswobj::AddMenus()函数中添加相应代码。此函数可以实现在无文档模式、零件文档模式、装配体文档模式、工程图文档模式下分别添加各自的菜单代码。
6)编译并链接工程,VC++开发环境自动在注册表的HKEY LOCAL_MACHINESOFTWARESolidWorksAddlns下添加一键值,对应DLL工程对应的COM对象的唯一标志CLSID:在注册表的HKEY_CLASSES_ROOTCLSID下添加该工程的键值,在该键值下有5项:InprocServer32、ProgID、Programmable、TypeLib、VersionlndependentProgID。
图3 三维CAD文件快速发布模块菜单
2.2 用户操作界面组件的实现
三维CAD文件快速发布模块的用户界面是通过在SolidWorks主界面中添加设计菜单按钮,并通过菜单按钮的调用来实现的。调用程序后,显示一个快速发布的对话框,如图4所示。
在对话框中,主要功能有两个按钮,一个为“装配体遍历”,用于对当前的装配体进行遍历,显示其装配及子装配结构:一个为“快速发布”,用于对遍历的文件进行复制,将此装配体及所有下级装配体、零件、工程图复制到指定目录。在保存至文本框旁边有一“浏览”按钮,用于显示通过树状目录浏览得到用户所要复制的指定路径,也可以直接在文本框内输入指定路径。
在对话框的头文件中,要添加SolidWorks的类型库:sldworks.tlb、swpublished.tlb、swconst.tlb。在对话框类中添加一个函数,用于得到SldWorks对象:void*dlg::getSW(ISldWorks*sw)。
图4 快速发布对话框 |