您的位置:网站首页 > Solidworks

基于SolidWorks 采用VisualC++开发模具标准件库

时间:2010-06-02 08:00:00 来源:

    (2) 若使用程序驱动法 , 如果开发者本身对于 SolidWorks API函数不是很了解 ,可以用宏录制标准件生成的过程并保存为*.swp 文件 ,再用菜单里工具/ 宏操作/ 编辑打开 VB 界面 ,只需把这里的代码改为 Visual C++的代码就可以了。而且 VB 与Visual C++ 的函数名基本相同 ,只是参数有所不同。
   
    (3) 调试的时候可以设置断点跟踪 ,也可以在有可能出错的地方放置如 AfxMessageBox(- T("提取参数 ") ,MB-OK,0) 的语句 ,以便在程序调试运行时确定问题所在。
   
    4 系统组成
   
    4. 1 界面的设计

   
    系统界面的设计应遵循用户界面友好的原则。一个用户界面的友好属性应包括:使用方便、界面熟悉、有灵活的提示帮助信息、良好的交互方式、良好的出错处理等。按照模具国家标准 ,系统中设计的系统菜单如图 1 所示。

    
    4. 2 系统的使用
   
    单击上述菜单将会出现如图 2 所示的标准件导入对话框。对话框界面由几个属性页组成 ,选择尺寸规格后按查询按钮 ,系统会根据数据输入控件里的数据(如 4.00 ×20 的圆柱头卸料螺钉) 去查询标准件的数据库文件 ,查询所得的数据将出现在标准件属性表里 ,点击确定 ,零件将被导入。如果用户需要调整尺寸 r 和 r1 可以点击相应的按钮进行微调。

    
    4. 3 系统数据库的使用
   
    如果需要浏览当前零件所有的数据 ,只需要点击图 2 中的浏览按钮。例如用户当前界面是"带柄圆形上模座",点击浏览 ,则出现如图 3 所示的数据库管理对话框 ,在此可以浏览带柄圆形上模座的所有数据 ,并为有权限的用户提供可以添加、删除或修改数据的功能选项。

    
    5 一个实现程序驱动法的例子
   
    (1) 用 SolidWorks Add - In AppWizard 向导创建 Example1 例子
    (2) 添加对话框资源 ,属性设置如下 :IDD-DIALO G1 CAPTION 为"立方体例子",添加控件调整如图 4。


    (3) 添加对话框类 CL IFAN GTI 和数据成员变量
   
    IDC- EDIT1 double m-x
    IDC- EDIT2 double m-y
    IDC- EDIT3 double m-l
   
    (4) 在工作区 CLASSV IEW 中 ,添加 CExample1 的公有成员函数void lifangti (double ca , double cb ,double cl)
   
    (5) 在 EXAMPL EAPP. APP 中添加 # include "Resource. h"头文件 ,并完成程序驱动法绘图代码如下:
   
    void CExample1App : : lifangti (double ca , double cb , double cl)
    { L PMODELDOC pModDoc = NULL ;
    LPPARTDOC ret ;
    TheApplication - > m-pSldWorks - >INewPart ( &ret) ;
    HRESUL T res = TheApplication - >GetSWApp () - > get- IActiveDoc( &pModDoc) ;
    if (pModDoc = = NULL)
    return FALSE;
    LPPARTDOC pPartDoc = NULL ;
    res = pModDoc - > QueryInterface (IID-IPartDoc ,(L PVOID 3 ) &pPartDoc) ;
    ASSERT(res = = S-OK) ;
    VARIANT-BOOL retval ;pModDoc - > SelectByID(auT ("前视") ,auT ("PLANE") ,0 ,0 ,0 , &retval) ;
    pModDoc - > ShowNamedView2 (auT ("3 Normal To") ,0) ;
    pModDoc - > GridOptions(0 ,0. 001 ,0 ,0 ,10 ,1 ,0 ,0 ,0. 1 ,1) ;
    pModDoc - > InsertSketch() ;
    pModDoc - > CreateLineVB ( - ca , cb , 0 , - ca+ cl , cb , 0) ;
    pModDoc - > CreateLineVB ( - ca + cl , cb , 0 ,- ca + cl , cb - cl , 0) ;
    pModDoc - > CreateLineVB ( - ca + cl , cb - cl ,0 , - ca , cb - cl , 0) ;
    pModDoc - > CreateLineVB ( - ca , cb - cl , 0 ,- ca , cb , 0) ;
    pModDoc - > ClearSelection() ;
    pPartDoc - > FeatureExtrusion (1 , 0 , 0 , 0 , 0 ,cl , 0. 01 , 0 , 0 , 0 , 0 , 0. 01745329251994 ,0. 01745329251994 , 0 , 0) ;
    pModDoc - > ShowNamedView2 (auT ("3 Iso2metric") ,7) ;
    pModDoc - > ViewZoomtofit () ;
    pModDoc - > Release() ;
    pPartDoc - > Release() ;
    return TRU E ;
    }
   
   
    在 Example1. cpp 中添加 # include "LIFAN GTI. h"头文件 ,并在菜单响应函数 MenuItemCB (void) 里添加如下程序段
   
    void MenuItemCB(void)
    { CL IFAN GTI dlg ;int n = dlg. DoModal () ; TheApplication - > lifangti (dlg. m-x ,dlg. m-y ,dlg. m-l) ;
    return ;
    }
   
    (7)  编译后用 SolidWorks 打开文件 ,选择加载 Example1. dll 文件。在左下角 X 和右下角 Y中输入位置坐标 ,边长 L 中输入 20 ,点击确定 ,运行情况如图 5 所示。