解决方案主要分为4个模块,分别是零件模型服务端、插件客户端、网页门户端以及后台管理端。

后台管理端是系统管理员登录的网页客户端,用户可以对当前系统中的零件模型进行维护、设置用户和访问权限,查看数据统计分析。
网页门户端支持对模型的浏览器查询检索,查看零部件详情,编辑和零件参数,下载和使用零件模型。
插件客户端,支持设计工程师方便快速的查询和检索到需要的零件,支持下载零件调用到自己的设计中,支持将设计好的零件上传的零件库。
服务端分为数据库部分和模型处理部分。零部件库是系统的核心数据库,用于存储模型文件及分类,参数定义等相关信息。参数数据库用于存储零部件的参数数据信息。图文详情库用户存储网页端的图文展示。用户数据库用于储存用户信息及权限信息。轻量化处理用于将三维模型轻量化处理,便于在网页端浏览查看。轻量化预览,即是在网页端和插件客户端浏览查看。三维模型参数修改,修改后可以通过SolidworksAPI进行即时驱动,然后进行轻量化处理,将结果反馈给前端进行显示。
1.2 后台管理
用户管理可以对系统使用用户进行管理操作。
对用户进行分组,分角色,按角色和组进行授权,便于用户访问不同的零件库。
零件分类管理的主要目的是对已有的设计信息进行归类,并赋予一定属性和方法,使用户能够在共享环境中高效地查询文档、数据、零件、标准件等对象,最大限度地发挥已有设计成果,为开发新产品及设计重用提供技术支持。通过零件分类管理,可以实现:
分类结构定义:对企业现有的产品及组成产品的零部件,可按照分组、分类的方式进行管理。
分类库建立:可以针对具体的分类,定义适合企业实际情况的产品及零部件的物理属性、几何属性和材料属性等技术参数(如物码、物料名称、物料分类、物料状态、物料来源、计量单位、材料、重量、重量单位等),且属性都可由企业用户根据需要自定义维护。
分类库查询使用:依据具体类的属性定义和属性值,提供了基于属性信息的查询的方式,既支持具体属性值的精确查询,也支持某一范围的模糊查询。
为了保证零件从设计环节到工艺环节到生产环节的流通,需要定义零件的管理参数,如编码、名称、特性(自制、外购、外协..)、净重、描述等信息,也即图纸明细栏相关信息。
其次,零件特征分类管理,是指在成组技术和零件族管理的基础上,借助类的管理模式,对零件、产品等对象进行有效管理的一种方式。打破了过去仅以隶属关系管理产品及零部件的纵向管理方式,引入以功能、用途、结构等特征因素进行分类的横向管理方式,优化企业对零部件、产品等信息的管理。
特征分类属性,即对零件进行特征分类,定义每一类的特征属性,关键参数,如用途、几何尺寸、工艺等重要信息。在产品设计以及分类统计等实际应用中,可以通过这些特征属性,实现快速的分类和查询。提供重用,避免重复设计
零件特征属性,作为分类管理中的重要查询依据,由设计人员或者标准化人员根据各个类的实际应用、查询需求而定义的。属性的定义与企业的实际应用、零部件的查询效果密切相关,因此需要专业人员事先定义好,实施人员仅提供属性定义原则以供参考。在后期的使用中,也需要做好分类管理的维护,实现分类管理的有效使用,属性定义的优劣直接关系着分类管理的成败。
零件界面管理,是为新添加的零件分类和参数指定界面对象,用来生成修改界面列表。
在添加了新的零件后,可以为其每个参数配置显示在界面上的标签信息,说明文字。可以设置参数是否可以修改,是否显示。根据参数的类型不同,界面显示和修改的方法也不同。对于字符串、整数或者小数,允许用户输入数据。对于枚举类型,根据用户指定,可以是复选框或单选按钮。
数据统计记录了用户对零件库的使用情况,可以根据统计信息,了解零件的使用情况,分析零件的使用次数。
系统管理包括对系统常用的设置。

门户端通过分类列表,可以检索需要的零部件。
门户端通过参数及详情页,展示零部件的具体信息。
预览显示采用ThreeJs,显示轻量化模型。
用户可以在网页门户端下载某一模型。下载后的格式为solidwork的文件格式。
个人中心包括查看或修改个人信息,查看或修改密码,查看个人使用系统的日志记录。
插件客户端为在Solidwork上做的二次开发。前端界面发生了变换,后端不用变换。
通过插件端的在Solidworks上二次开发,可以访问零部件库。零部件库中的零件按树结构组织,以分类管理稳准。
在插件中,可以树结构和搜索功能,查找到需要的零部件。
在零件分类列表中选中某个模型后,可以双击进入模型的详细展示页面。模型详细展示页面包括模型的参数列表,汇总信息,模型预览等几个部分。
参数列表中显示了系统中存在的该零件的系列参数值。
在零件详细展示页面,选择某行参数后,可以切换到按记录显示模式。此时可以对该条参数进行修改,修改后会调用Solidworks重新对模型进行驱动,生成新的预览模型、图纸、明细表。插件版会直接对模型进行驱动,集成版会将请求发送到服务器端,服务器后台负责根据请求参数对模型进行驱动,生成新的轻量化的预览模型,图纸和明细表。
模型的预览采用3D显示模块(OSG或OpenInventor),将Solidworks生成的轻量化预览模型显示在预览窗口中。预览窗口中可以对模型进行浏览(缩放、平移、旋转)、隐藏/显示,按视图查看(上下左右前后及轴测试图),修改颜色,查看剖切等。
在插件端可以将模型上传到服务端,或者下载到本地端后进行修改处理。
数据库分为零部件数据库,参数数据库,图文详情数据库以及用户数据库。
其中零部件数据库是数据库+文件服务器,模型以文件的方式保存在服务器中,零部件信息保存在数据库中。参数数据库是保存参数定义信息。图文详情数据库是网页门户端的主数据,保存前端用到的信息。用户数据库,用来保存管理后台涉及到的信息。
插件客户端在安装时,为提高允许速度,可以选中将部分的零部件数据库中的模型保存在客户机本地文件夹中。
网页客户端的零件模型库保存在mysql服务器中,访问时缓存到Redis服务器中。
插件客户端时,零件模型在修改参数后,直接调用Solidworks,传入参数进行参数化驱动,得到修改后的模型。
网页门户端时,零件模型在前端界面修改参数后,将请求发送到后端。后端通过消息总线,调度Solidworks集群,处理参数修改。将修改参数读取后,加载模型,并进行驱动,获得最后的模型。然后将模型保存到Redis缓存服务器,并落mysql数据库。

插件客户端时,调用Solidworks的另存功能,将模型保存为轻量化格式vrml或stl。到处后的轻量化格式保存到mysql服务器中,访问时缓存到redis服务器中。
网页门户端时,零件模型在前端界面修改参数后,将请求发送到后端。后端通过消息总线,调度Solidworks集群,处理参数修改。将修改参数读取后,加载模型,并进行驱动,获得最后的模型。然后将模型导出为轻量化格式,保存Redis缓存服务器,并落mysql数据库。
插件客户端时,调用Open Inventer (Coin3d)或OSG将轻量化模型显示到自定义控件中。自定义控件支持旋转、缩放、平移等操作。
网页门户端,调用ThreeJS将轻量化模型显示到窗口中,ThreeJS显示窗口支持旋转缩放平移等操作。
