SolidWorks公差与符号标注的二次开发

   2017-02-08 互联网5470
核心提示:当前计算机辅助设计在机械制造领域得到越来越广泛的应用。SolidWorks 是基于 PARASOLID几何造型核心,采用 VC++编程和面向对象的数据库来开发的。SolidWorks 具有基于特征的参数化实体造型、NURBS 复杂曲面造型、

当前计算机辅助设计在机械制造领域得到越来越广泛的应用。SolidWorks 是基于 PARASOLID几何造型核心,采用 VC++编程和面向对象的数据库来开发的。SolidWorks 具有基于特征的参数化实体造型、NURBS 复杂曲面造型、实体与曲面融合、基于约束的装配造型等一系列先进的三维设计功能及工具。尽管 SolidWorks 具有很多的优点,但是 SolidWorks 在公差标注和粗糙度符号标注方面仍存在较多的不足之处,在公差标注方面,SolidWorks 本身的上下偏差标注,需要工程技术人员自己查相关手册输入上下偏差,因此,在使用 SolidWorks 的同时,笔者考虑了用连接相关数据库的方法,用户只需输入有关"偏差代号"及"公差等级"就可实现标注。这样就使标注工作简化。同时,笔者采用相似的方法实现了粗糙度的标注,所设计的窗体比 SolidWorks 所带的窗体简洁,但其实现的功能与之相同。且许多输入是用选取下拉菜单内容的方法,简化了用户输入。

  1 设计思想和开发原则

  本软件的研制开发方法采用完全面向对象的设计思想和开发方法,软件开发过程中,要设计许多用户界面,在设计中就要遵循一些原则,一个友好的用户界面应满足以下几个方面的要求:

  (1)减少记忆量

  本系统用户界面设计中主要采用以下方法:采用提示选择,而不是输入命令串,这种方法为不了解系统的终端用户带来了极大的方便,(在此处,笔者考虑采用了下拉式组合框(ComboBox),用户可直接选择"偏差代号"、"公差等级");另外本设计中,有多个消息框,提示用户出错的地方,并准确纠正输入。

  (2)灵活的提示信息

  应用软件运行时,应能给出简单易懂的提示信息,使用户的工作能顺利地进行。在用户对提示信息做出回答后,若回答有效,则引导用户进行下一步工作;否则,应能指出错误原因及改正方法。

  (3)良好的出错处理

  一个好的系统在操作错误发生后可以复原到错误操作前的状态,不会因此"死机"。一些更高级的系统具有"容错"能力。为便于了解已操作的命令或重复运行已执行的操作,系统可以记录用户送入的操作命令,以便执行重复命令。二次开发过程也有其开发原则和要求:平台稳定性,可移植性和兼容性,可伸缩性,系统融合性和相对独立性,执行高效性,技术先进性,还有平台易用性。本系统的开发过程就是遵循这样的原则进行的。

  2 关键技术

  2.1 SolidWorks 的二次开发准备

  对 SolidWorks 进行的二次开发,主要是利用SolidWorks 为用户提供了强大的 API 应用编程接口。其中包含的功能函数,可被 VB,或 SolidWorks的宏文件调用,这些函数提供程序员直接访问SolidWorks 功能的能力。用户可在 VB 中创建动态链接库工程,加入相关代码,编译生成*.dll 文件,然后再加载此文件,用户自己开发的动态链接库中可实现与 SolidWorks 相同的功能。从而可以扩展 SolidWorks 的功能。

  首先,启动 VB 建立"ActiveX DLL"文件,只有采用这种格式才会编译生成*.dll 文件。其次,必须在 VB中引入 SolidWorks 的对象库。具体做法是:必须选择【工程】/【引用】菜单项,在可用的引用列表框中选择"Sldworks 2001plus Type Library"条目,按 "确定"就可以了。

  下面就可以进行二次开发,添加菜单及用户界面,扩展其功能。

  2.2 SolidWorks 的宏操作及应用

  宏在 SolidWorks 的二次开发中起着重要的衔接作用,在本设计中使用同样也用到了宏。比如在本设计中,使用方法为:在用 SolidWorks 本身的标注操作之前,就打开宏"录制",将整个标注过程录制下来,录制完成并保存后,就可对其进行编辑;由于录制的是具体的标注过程,里面的数据都为具体数值,可以将其中的关键语句拷到VB 工程中,修改具体数值为变量;然后通过程序对变量进行赋值,这样运行 VB 工程时就可通过输入具体数值,进行每次的标注操作,实现所需的功能。

  2.3 SolidWorks 中添加菜单的关键技术

  在此软件系统开发中,用到了许多软件知识,这其中包括:Visual Basic、Access、VB的数据库开发知识、SolidWorks 的 API 应用编程接口等技术。通过这些关键技术,就可对 SolidWorks 添加菜单。

  下面结合程序,介绍其实现方法。程序如下:

  Private Function SwAddin_ConnectToSW(ByVal ThisSW As Object, &_ByVal cookie As Long) As Boolean

  Dim Ret As Boolean

  Set iSldWorks = ThisSWicookie = cookie

  Ret = iSldWorks.SetAddinCallbackInfo(App.hInstance, Me,icookie)

  增加菜单部分

  Ret = iSldWorks.AddMenuItem2(swDocDRAWING, icookie,&_"公差标注...@附加项(&A)", -1, "DocDRAWING_dimension",&_"DocDRAWING_ItemUpdate","DocDRAWING_Item hintstring")

  Ret = iSldWorks.AddMenuItem2(swDocDRAWING, icookie,&_"粗糙度...@附加项(&A)", -1, "DocDRAWING_symbol", &_"DocDRAWING_ItemUpdate", "DocDRAWING_Item hintstring")

 
举报收藏 0打赏 0评论 0
点击排行