参数化图形驱动及 Web零件库的研究开发

来源:互联网 发布:乌云网 知乎 编辑:程序博客网 时间:2024/06/05 07:38

参数化图形驱动及 Web零件库的研究开发

        对于设计人员, Web零件库可以加快产品设计;对零件供应商,可为其提供宣传平台。在广大中小企业,CAD的运用已十分广泛,往往也拥有自己的零件库。但其数据管理和资源共享上,却存在以下问题: 

        1)企业根据自身需求选用了不同的 CAD系统,这些系统拥有不同的零件格式,系统间格式无法通用。

         2)零件库数据结构冗余,零件缺乏统一的编码和分类管理,管理和维护的成本较高。 

        3)零件库数据架构上缺乏 拓展性,扩充苦难 。

        为 解决以上问题,本文研究了参数化零件库的建设和SolidWorks下的尺寸驱动方法,并开发了相应的图形驱动程序。最终建立了基于Web 的开放式零件库系统。

        1. 零件库的建库方法与系统架构

        1.1 系统的建库方法

          国际标准话组织根据德国所建立的DIN系列零件库标准建立了零件库的PLIB标准(即ISO13584),提出了一些列指导性原则和规范,包括:零件库的概念和逻辑模型、零件信息模型和构造零件族的方法学、零件库系统与CAD系统的接口规范和视图交换协议等。

          虽然PLIB标准有诸多优点,国内外很多学者对基于PLIB建库也进行了研究,但PLIB标准的许多规范值得借鉴而不能完全照搬。这是因为我国缺乏其应用的相应基础。我国从1988才开始依据国际标准建立国家标准,如完全根据PLIB标准来建立零部件,建立零件事物特性表,确立零件族架构,开发CAD系统接口等工作都需耗费大量的人力和时间。

       为了 提高建库效率,面向中小企业的零件库在结构上应该具有开放性,实现自助式建库模式。同时在建库技术上,采用更简单的技术实现方式,力求实现零件库的基本功能,再追求更复杂的性能。

       1.2 系统架构

       本文采用B/S结构建立基于Web的零件库系统。B/S结构无需用户安装和配置新的软件,用户只需通过浏览器链接到服务器端即可得到服务功能。系统所有功能在服务器端实现,利于系统的整体维护和升级。

       其中服务器端包括Web服务器和数据库服务器。用户界面上采用ASP.NET和C#语言。主要功能模块包括:零件的浏览、查找,三维模型显示、下载,库管理和扩充。数据库服务器上有零件库及CAD平台。图形驱动程序用来连接CAD平台和零件库。系统整体结构图:

        2  参数化的零件库建立

        2.1 零件的参数化信息

        根据PLIB标准中对参数、参数化形状等概念的定义,本系统将零件信息分为尺寸参数和几何模板。对于零件族中的最小分类概念相似零件族而言,族内零件可共用一个几何模板,但因尺寸不同而分为不同规格。这样可减少零件重复存储。

      本文依据GB/T10091.1 标准中的“事物特性表”的部分规则对单个零件建立零件参数存储表,包括零件的集合特性-主动参数和部分其它特性。而对于零件的几何图形模板,PLIB标准要求采用基于STEP标准的中性文件,而本位从实际的角度出发,采用SolidWorks系统的sldprt格式作为零件模板的描述。 

      2.2零件数据系统的建立

      本文采用SQL Server 管理参数化零件库,Access管理零件相似族参数信息。包括:1 建立零件族树状结构表,管理零件分类;2建立零件信息管理表,记录所有零件的名称,描述、零件模板和参数表路径;3建立Request表,记录零件调用请求。单个零件的参数存储表则存放在单独的Access数据库中,实现开放式数据库架构 。

       采用这种方式,则实现了自助建库功能。按照一般零件数据管理方法,其参数信息存储在单一的数据库中进行管理。而新增零件的参数信息表需要由系统管理员来建立。本文系统中,当需要发布产品时,只需在零件信息管理表中注册新的零件信息,再将相应的零件参数存储Access表和零件几何图形模版上传到数据库服务器中即可。

       2.3图形驱动程序的开发

       零件模板信息无法被用户直接使用,需调用CAD平台通过参数化建模生成新零件模型,提交给用户。本文通过对SolidWorks进行二次开发的方式编写了图形驱动程序作为零件参数模板库和CAD平台间的接口。整个程序工作流程如下:

      1)侦听Request数据表。数据库中建立了请求信息表(Request表)。它包括请求ID、零件ID、规格ID、请求状态,是零件库与用户界面的接口。使用过程中产生的多个请求,将按时间顺序处理。用户请求通过Web页面写入该表,图形驱动程序一直循环侦听请求。

      2)读取零件信息。图形驱动程序按序真听到的请求,在SQL数据库中找到相应的零件信息,从中读取模板和Access数据库信息。再进入Access数据库找到相应规格的具体几何参数。

     3)重建模型。先打开SolidWorks软件,调入模板。再将几何参数重新赋值给模板,重建模型。最后保存所得到的模型。 

       由 流程图可看出,图形驱动程序工作可归纳为两部分:数据库的读取与存储,SolidWorks平台的调用。

       对数据库的访问采用了ADO方法。ADO的对象提供了简单有效的访问数据源的方法。OLEDB是微软开发的一个战略性系统级编程接口,用于管理整个组织内的数据。ADO通过连接OLEDB,形成ADO-OLEDB的数据访问接口。在建立连接之后,可由ADO的recordset对象来记录所有数据库的内容,还可以由ADO中的命令对象执行SQL语句来完成相应操作。

      SolidWorks通过COM技术为用户提供强大的二次开发接口(SolidWorksAPI)图形驱动程序通过调用SolidWorksAPI提供的对象模型来访问和修改零件模板。

      图形驱动程序采用VB语言编写,虽然任何支持COM和OLE的编程语言都可以作为SolidWorks的二次开发工具。但VB语言作为SolidWorks的内置的宏语言,将能最大限度地发挥SolidWorksAPI的功能。 

      具体程序编写时,先应用SolidWorks的相应库文件,既可以使用SolidWorks提供的API开发接口。基本方法如下: 

      Dim iSwApp as SldWorks.SldWorks   //定义iswapp 为SolidWorks应用程序对象

      Set iSwApp=Application.SldWorks 

      Dim model as ModelDoc2   //定义model为 SolidWorks文档对象 

      Set model=iSwApp.ActiveDoc   //设置成当前活动文档

      Set model=iSwApp.OpenDoc6 (FilePath+FileName,swDocPART,0,"",long,_longwangings)// 利用文档对象的openDoc6方法,可以打开SolidWorks零件模板

      model.Parameter(ParaName).SystemValue=settingValue //改变某参数的值

      model.SaveAs2 outpath+newfilename+".sldprt",0,False,False   //另存为需要输出的零件格式,默认为sldprt格式

      到此,挖成了对零件的参数驱动。

     3.系统功能与应用

      零件浏览界面,左侧是采用treeview控件展示零件库树形结构,正中是采用SolidWorks的edrawing插件展示零件三维动态造型。

      零件入库与管理,在经过首次使用生成零件族模板之后,系统中再有此零件族中零件的请求时,图形代理程序会驱动图形软件打开零件族模板,注入请求参数,重新生成新零件,保存在模型库。这样,在零件库的使用过程中,模型库会逐渐补充,直至完善。最后成熟的零件库中会存储所有规格的零件,用户请求后,服务器会将零件直接传送给用户。该模板允许供应商在系统中建立自己的专有零件库,并自由添加和修改库内容等管理功能。 

       4结束语 

         基于Web的零件库系统对实现网络化制造以及建立基于Web的供应链管理系统都具有十分重要的意义。