APP下载

基于Web的SolidWorks网络协同设计系统的设计与实现

2013-03-16潘丹丹孙文磊赵群

机床与液压 2013年1期
关键词:二次开发驱动协同

潘丹丹,孙文磊,赵群

(新疆大学机械工程学院,新疆乌鲁木齐830047)

随着现代制造业的高速发展,企业之间的竞争也日趋激烈,面对Internet的网络化和制造业信息化的现状,CSCD (Computer Supported Cooperative Design)将分布式资源通过Internet网络实现资源共享和集成同时进行网络协同设计,通过网络协同设计系统促使对产品需求者和设计人员的实时交互[1-2],可以对同一零件进行在线动态浏览(能够对可视化插件支持的.wrl 格式3D模型进行旋转、移动、缩放等动态操作)、零件参数化驱动和属性信息的提取等。

SolidWorks是现代比较常用的集CAD/CAM/CAE于一体的三维设计软件,给用户提供了强大的二次开发接口SolidWorks API,凡支持COM技术的开发工具,如C,C++,VB,C#,.NET,Delphin 等均可对其进行开发,该系统采用C#和ASP.NET 作为二次开发工具,功能强大且操作简单。中小型企业的设计人员通过使用该系统,减少了开发周期,提高了设计效率,降低了成本[3]。

1 协同设计系统的整体结构设计

协同设计系统主要通过网络实现三维图形零件库的在线动态浏览、零件参数化驱动和属性信息的提取等。在实现时可以有3种方案:开放的exe可执行程序,dll 插件扩展SolidWorks 和基于Web 浏览器对SolidWorks API 进行二次开发。对于开放的exe可执行程序方案,要求程序在本机上执行,通过网络调用服务器上的零件库并进行开发交流,但它需要将程序安装在本地的客户端上,对平台的依赖性很大。第二种用api 开发插件来扩展SolidWorks 则需要在客户端安装SolidWorks,加大了客户端的压力。而第三种则只需要在服务器上安装Solidworks 并对其进行开发,然后客户可以在不同的平台通过浏览器直接访问服务器的资源。在比较3种方案的优缺点后,决定采用 Web 开发的模式。系统的总体框架如图1所示。

图1 系统详细构架图

该系统采用B/S模式,与传统的C/S模式相比,主要功能均在服务器上实现,用户只需通过Web 浏览器向服务器发送申请,经过服务器处理后返回给用户Web 页面。另外,Web 应用程序必须经过后台数据库储存数据实现与用户的交互功能[4]。基于Web的应用程序可以划分为3个层次:用户层、业务逻辑层和数据支持层。其中用户层只需用户安装可视化插件,通过浏览器即可访问系统的功能页面。逻辑处理层是参数表达式提取和属性信息提取的关键,以ASP.NET 作为开发工具,通过编写C# 语言程序代码,操作SolidWorks API 获得系统所需的数据信息。数据访问层用于储存零件模型文件、可视化文件、参数说明文件等,完成与用户的交互模块,实现资源共享功能。

2 基于Web零件参数化驱动及属性信息提取关键技术

零件参数化建模分为两种方法:程序驱动法就是整个建模过程全部用程序进行建模而参数化建模法是在已有的零件模型基础上调用SolidWorks API 对零件参数进行驱动建模。前者对编程人员要求比较高,适合于建立比较简单的模型,参数变量较多的零件;后者对程序开发人员要求较低,只需要对已有的模型尺寸进行相应的修改,重新生成模型即可[5]。协同设计系统采用后一种方法进行零件参数化驱动及属性信息的提取。

SolidWorks是基于Windows 平台集CAD/CAE/CAM/PDM 于一体的比较成熟的三维设计软件,SolidWorks 本身提供了上千个API函数,可以通过COM技术对其进行二次开发。SolidWorks是API函数的最高层对象,它能够直接或间接地访问其他所有函数,通过它可以直接访问SolidWorks的基本操作,如SolidWorks软件的打开、关闭、生成和结束文件,设置当前的激活文件,提取零件属性信息及参数表达式等[6]。在C#中使用SolidWorks API的方法如下:

在对零件参数化驱动及属性信息的提取过程中为了方便调用SolidWorks API函数库,该系统对Solid-Works API 主要功能函数进行封装以方便协同设计系统的调用,其SolidWorks API 封装图如图2所示。

图2 SolidWorks API 封装图

通过对SolidWorks 类库的引用,对SolidWorks 主要功能函数进行封装以方便协同设计系统的调用,SolidWorks的主要封装函数及其功能说明如下:

为了保持和UG、Proe/Engineer,SolidEdge 等三维设计产品的兼容性,在封装里包涵了转化Iges 格式的文件。

3 网络协同设计系统数据库访问技术

SQL Server 数据库存储数据结构,三维设计软件如SolidWorks、UG、Pro/Engineer、SolidEdge 等的用户通过Web 浏览器,三维可视化插件访问服务器,通过服务器操作SolidWorks API函数等,利用ASP.NET 对其进行二次开发,将零件模型转换成可视化文件,提取参数表达式及属性信息存于参数说明文件,最终从数据库中提取相关信息进行在线动态浏览,参数化驱动和属性信息显示等主要功能[7]。

首先需要提取SolidWorks 平台上三维实体模型数据信息,然后将其存入数据库中,供后续的在线动态浏览,参数化驱动和属性信息等使用。所以说,特征信息的提取离不开数据库的支持,该系统采用SQLServer 2005 对数据进行后台存储,具体存储内容如图3所示。

图3 数据库访问层次结构图

4 网络协同设计系统的实现

根据协同设计的原理,设计整个系统的框图如图4所示。

图4 系统实现的整体框图

图5 协同设计系统Web 页面图

在进入首页后,可以看到对系统所有的项目模型的预览以及简单介绍。然后,点击相应的项目就可以进入相应的项目目录,在目录中,允许用户对项目做简单的预览。但是,如果用户需要对项目进行个人更改时如收藏、参数化驱动等就需要先申请用户进行登录,然后根据相应的权限对项目的零件目录进行相应的更改。另外,系统管理方面分为用户的管理以及整个项目的管理。对于用户的管理,可以简单地建立用户名汇总表,对用户进行添加、删除以及权限更改等操作。而对于项目或零件的管理又有管理员的总体管理以及用户对个人零件库的管理。系统采用c#asp.net 开发,对系统的实现过程如图5所示。

系统从首页到各个功能页在Windows 平台下能够运行正常,而且对于IE与Firefox 浏览器的支持都能够达到要求。

5 结束语

研究了基于Web的SolidWorks 协同设计系统,首先要解决的问题是SolidWorks API的熟练应用。其次针对系统的结构,对系统总体框架、零件参数化驱动及属性信息提取关键技术和网络协同设计系统数据库访问技术进行了深入的分析。最后基于以上理论知识实际应用到ASP.NET的协同设计系统。基于Web的SolidWorks 协同设计系统是一种面向服务的分布式应用,随着现代制造业逐渐向网络化和信息化方向发展,利用Internet 对SolidWorks 进行二次开发使得中小型企业能够直接通过网络进行三维图形零件库的在线动态浏览、零件参数化驱动及属性信息的提取等,加强了企业之间的交流和合作,节约了企业的成本和提高了产品设计效率。

该系统的实际应用目前还在测试阶段,而且内部很多功能上问题以及安全上的问题还有待于进一步解决。但是,通过该系统,已经能够完成一个协同设计系统所需要的大多数功能。

【1】JAMES Anne,OLIVIERA Jonice.Computer Supported Cooperative Work in Design[J].Future Generation Computer Systems,2011,27(1):56-57.

【2】SHEN Weiming,HAO Qi,LI Weidong.Computer Supported Collaborative Design:Retrospective and Perspective[J].Computers in Industry,2008,59(9):855-862.

【3】PRATT Wanda,REDDY Madhu C,MCDONALD David,et al.Incorporating Ideas from Computer-supported Cooperative Work[J].Journal of Biomedical Informatics,2004,37:128-137.

【4】EVJEN Bill,HANSELMAN Scott,RADER Devin,等.ASP.NET2.0 高级编程[M].杨亚,译.北京:清华大学出版社,2007.

【5】吕晓燕,贾海英,张晓钟.基于VB 对SolidWorks 二次开发方法的研究[J].机械设计与制造,2005(3):114-116.

【6】江征风,陈雷,丁毓峰.基于SolidWorks的零件特征几何信息提取方法研究[J].组合机床与自动化加工技术,2006(5):1-7.

【7】SolidWorks2010 API 使用指南[M].SolidWorks 公司出版.

猜你喜欢

二次开发驱动协同
基于模糊PI控制的驱动防滑仿真系统分析
蜀道难:车与路的协同进化
屈宏斌:未来五年,双轮驱动,砥砺前行
浅谈基于Revit平台的二次开发
轨旁ATC系统门控柜接收/驱动板改造
浅谈Mastercam后处理器的二次开发
“四化”协同才有出路
西门子Easy Screen对倒棱机床界面二次开发
三医联动 协同创新
基于S3C6410的Wi-Fi驱动移植实现