基于SolidWorks的尺寸公差标注系统设计 广州SolidWorks产品设计 培训

1引言
    Solidworks是一套基于windows平台的全参数化特征造型软件,它可以十分方便地实现复杂的三维零件实体造型、复杂装配和生成工程图。图形界面友好,用户易学易用。同时该软件集成了设计、分析、加工和数据管理的整个过程。具有较好的开发性接口和功能扩展性,是优秀的中档三维CAD软件。
    尽管Solidworks具有很多的优点,但在某些方面仍存在不足。例如,在公差标注方面,SoIidworks有标注功能,但系统本身不带有公差数据库,这就需要工程技术人员翻阅手册查找准确的上、下偏差值,给设计带来不便。鉴于此,笔者以Solidworks为平台,利用其提供的二次开发编程接口,采用面向对象技术,开发了尺寸公差自动标注系统,提高了设计人员的工作效率。
2设计思想
    公差标注系统的开发涉及多种软件技术,包括vb开发数据库技术、二次开发solidworks技术以及创建ActiveX DLL技术。因此,系统采用自顶向下的模块化设计方法,整个设计过程如图1所示。
    首先建立尺寸公差数据库,数据库中存储标准公差、孔的极限偏差和轴的极限偏差等数值表。建立数据库后,采用ADO数据访问技术,实现动态查询尺寸公差。然后创建ActiveX DLL,目的是将动态查询和尺寸标注功能封装为一个插件,供SolidWorks调用。将生成的.DLL文件通过注册等方式加载到SolidWorks环境供用户使用。最后测试嵌人后的播件,看是否存在问题。
3关键技术
    开发系统需要多种软件技术,其中有以下3个关键的技术问题。
    数据库设计是底层基础。数据库的设计质量决定能否快速和准确地实现上下偏差查询。数据库设计又分两个步骤,一个是数据库的逻辑设计,即数据表和字段的设计。一个是在数据表的基础上进行程序设计。本文采用VB进行应用程序设计,这是因为VB是一种面向对象的可视化设计工具,支持多种数据库系统的访问,并且支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌人(OLE)技术。
    二次开发SolidWorks是一个难点。因为二次开发需要用到大量接口函数,而这些接口函数采用英文书写,需要仔细阅读SolidWorks API帮助文件。开发过程中,有一个诀窍。在用SolidWorks标注时,打开宏"录制",将整个标注过程录制下来,对宏进行编辑。将具体数据修改为程序中的变量。然后通过程序对变量进行赋值,这样运行程序时,即可通过输人具体数值,实现相应的标注操作。
    创建ActiveX DLL是实现集成的手段。为将动态查询和尺寸标注功能封装为一个插件,以菜单的形式集成到SolidWorks界面.需要创建动态连接库(DLL) 。
3.1数据库设计
    本系统采用Access数据库建库,存储的主要数据有孔的极限偏差和轴的极限偏差数值表。辅助数据有标准公差、基本偏差、孔轴公差带信息。
    轴的极限偏差数据来源于国家标准GB/T1800.4-1999。确定一个尺寸的上下偏差需要基本尺寸、偏差代号、公差等级3个必要条件,因此国家标准中轴的极限偏差表是三维的。根据数据库规范化的理论,数据库无法建立三维表。如果要实现三维形式存储,需要建立多个表,各表之间要依据条件关系用主键建立联系,编程时用复杂的SQL语句联合查询,这样会降低数据库访问的速度,浪费存储空间,而且维护性差。为解决以上间题,笔者重新设计数据表的字段,将国家标准中的三维表离散为符合数据库格式的二维表。
    表中的第一行为数据表的字段名,这些字段是国标中的基本尺寸。第1列为偏差代号,从第2列开始,分别是相应的上下偏差信息。上下偏差值用"\"间隔开,"\"前面为上偏差的符号信息和数值信息,"\"后面是下偏差的符号信息和数值信息。
    程序采用ADO数据访问接口技术与标准件尺寸参数库进行连接。ADO (Active Data Object)是一种高性能的数据访问接口,它的对象模型是所有数据访问接口对象模型中最简单的一种。通过应用程序可实现轴上下偏差查询、孔上下偏差查询、基孔制配合公差查询、基轴制配合公差查询。在底层数据库的基础上,利用VB开发的尺寸公差动态查询模块,为公差标注奠定了基础。
    限于篇幅,以实现上下偏差查询功能为例,代码如下:
3.2二次开发SolidWorks
    为将尺寸公差动态查询模块作为插件嵌人到SolidWorks环境中使用,需要运用SolidWorks二次开发技术。SolidWorks提供的应用编程接口API (Application Programming Interface)是基于OLE(object linking and embedding)的编程接口,它包含了大量的功能函数,可以被VB\VC等任何支持OLE技术的编程语言调用,提供直接访问SolidWorks功能的能力。
    以在SolidWorks界面上添加菜单用到的两个关键函数为例,说明API的使用。
    SwAddin.ConnectToSW函数是用户编写的程序连接SolidWorks的人口函数,可实现尺寸查询程序集成在SolidWorks环境下。说明如下:
    在SwAddin.ConnectToSW函数中加人以下代码,为SolidWorks界面添加菜单。Ret=iSIdWorks.AddMenuItem2(awDocDRAWING, iCookie,&_
"尺寸公差标注@公差标注",-1, "Size-dimension","",""}
    通过AddMenuItem2函数,为SolidWorks添加了"尺寸公差查询"菜单。当用户单击该菜单后,将调用"Size- dimension"功能即尺寸公差标注功能。这样应用程序与SolidWork。形成统一的界面。
3.3创建ActiveX DLL
    创建ActiveX DLL的目的是将动态查询和尺寸标注功能封装为一个插件,而插件又以菜单的形式显示在SolidWork,界面上。
    简要说明一下创建动态链接库(DLL)文件的步骤。首先,启动VB建立"ActiveX DLL"文件,在VB"引用"中加入SolidWorks的对象库。然后,在类模块中加人变盆声明和SwAddin.ConnectToSW等关键函数。这需要运用上述二次开发的知识。最后,必须选择【文件】/【生成DLL】菜单。
    上面产生的DLL文件还不能转换为SolidWorks插件,必须做相应的处理才能生效。有两种方法:在Solidworks环境中打开和写注册表。前者需要在SolidWorks环境下以Add-Ins(*.DLL)文件类型打开用户编写的动态链接库文件。后一种方法为在Windows系统的【运行】莱单中,输人:Regavr32 *.dll。"*"。
4应用实例
    在工程图中为某尺寸添加公差标注时,首先选定该尺寸,然后按选择【公差标注】和【尺寸公差标注】莱单,出现如图3所示的动态查询尺寸公差的窗体。输人基本尺寸值、偏差代号及公差等级,单击【确定】按钮,界面会显示上下偏差及公差尺寸。单击【标注】,选中的尺寸上就被标注了上下偏差。
5结论
    基于SolidWorks环境的尺寸公差标注系统,实现了尺寸公差的动态查询和标注,提高了设计效率。文中提出的设计思想为在SolidWorks环境下进行形位公差、粗糙度动态查询和标注等二次开发提供了一个思路,也可供在其它三维CAD系统环境下编写尺寸标注程序时作为参考。
    本文作者创新点:提出了公差标注系统的设计方案,详细介绍了软件设计中的3个关键技术问题,弥补了CAD软件在公差标注方面的不足。

 

返回Solidworks技术文章专题列表>>>