1 引言
大规模定制生产是针对客户需求的多样化、个性化的发展而提出来的,它所要解决的是定制生产低效率高成本和产品需求的低成本多样化之间的矛盾。对它的研究就是要针对不同的企业,提供能满足大规模定制的全面方案。通过对产品开发、生产制造、销售服务、以及企业组织、经营方式等多方面进行改造,来达到这一先进生产方式的要求[1]。
产品配置是在对产品信息管理基础上,产生新产品和改变旧产品,实现产品多样化的一种重要设计方法[2]。它可以提高对已有产品资源的利用率,增强企业的新产品开发能力,满足多样化的客户需求。针对目前商品化软件中,实现产品配置的方法多种,主要集中于基于本体服务的产品配置[3]、参数驱动配置[4],基于产品配置元类型识别[5]等。不论使用何种方法,其软件最终服务于客户,从客户角度存在两个问题,①客户对于需求产品的专业知识是有限的,②客户不能深层次地理解产品配置理论知识,因而客户不能准确有效的进行产品描述,导致产品配置设计失败。在大规模定制生产中,客户需要的是直观的、快速配置设计出满足功能需求的、可视性的模拟产品,且快速回应客户需求。面对市场上软件中产品配置设计模块的不足和缺陷,需建立一个能满足功能需求且实现方便的客户配置模型,来实现更强功能的配置管理[6]。加快产品开发速度,产品的配置设计是提高企业生产效率的一种重要技术[7]。
本文通过研究产品配置在大规模定制生产中实现的方法,多色图配置模型及配置算法的基础上,开发原型软件,快速实现在大规模定制生产中的产品配置和变型设计,提高企业产品开发能力,与三维设计软件接口,快速配置满足客户需求的可视化产品,改进现有生产方式以适应定制生产的需要,以满足多样化的市场需求,提高企业的市场竞争力。
2 大规模定制生产中产品配置系统软件实现
2.1 软件开发平台的选择
配置软件基于微软公司的Visual C++ 6.0和SQL server 2000 平台进行开发,前台界面采用VC编写,SQL server作为后台应用程序运行。二者的连接采用ODBC(Open Data Base Connection)连接,实现对数据库的各项操作。VC++ 6.0是一个面向对象的集成开发环境,提供了大量的类对象和控件,可以很方便地实现界面设计和对后台数据的管理和存储。SQL server 2000是一个大型的商用数据库管理系统,提供了数据库的创建、存储、授权管理、并发控制、备份等多种功能。ODBC是一个数据库连接的中间件,它通过开放的数据库驱动程序对数据库实现操作和管理,它的进一步发展会是OLE DB 和ADO(Active Data Object)技术。
2.2 软件对象分析及数据库的设计
采用面向对象技术,分析配置软件中的主要对象有:零部件、产品、规则、以及客户等[8]。用UML语言快速地建立系统的各种对象模型,区分它们之间的联系和相互作用情况,最后生成软件的代码框架。
采用的是单层BOM的存储技术,在配置软件的开发中,通过SQL server 2000创建主要的数据库表:零部件表、零件相互关系表、文件关系表、产品结构表、产品目录表。
2.3 配置软件的主要实现功能
通过建立基于多色图配置模型及研究该模型的产品配置算法[9,10],完成在配置过程中产品结构的管理、配置规则的制定和管理、配置结果的管理和有效性确认、存储等。
配置软件的主界面如图1所示,主要分为树型结构显示和零部件的列表显示区,以及一个属性窗口。树型窗口是对产品结构的可视化显示,并对不同类型的节点对象采用不同的图标显示。在树型窗口可以实现对产品树中节点对象的添加、删除以及属性修改等,以及它们之间相互关系的管理。
树型窗口采用MFC的CtreeView为基类开发的,它的部分定义如下:
class CxjpdmTreeView : public CTreeView
{ protected : CXjpdmTreeView(); //构造器
DECLARE_DYNCREATE(CXjpdmTreeView)
public: //属性变量
Cpartrecordset * m_partrecordsetree;
Cproductset * m_productsetree;
…
public: //操作函数
CxjpdmDoc * GetDocument( );
…
public:
virtual ~CXjpdmTreeView(); //析构器
protected: //消息映射
//{{AFX_MSG(CXjpdmTreeView)
afx_msg void OnTreeSelchanged(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
…
afx_msg void OnContextMenu(CWnd *pWnd, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP( ) }
列表窗口可以详细显示左边树型窗口中所选择的对象及其组成子对象的属性,并能对象选择的变化而实时更新。它采用MFC的ClistView为基类开发,其主要定义如下:
class CXjpdmListView : public CListView
{protected:
CXjpdmListView();
//DECLARE_DYNCREATE(CXjpdmListView)
Public: //属性变量
CxjpdmDoc * GetDocument();
Cproductset * m_productsetlist;
…
public:
void SetListItem(Cpartrecordset* m_partlist,CListCtrl & clc,int row);
void Displayproductinfo(const HTREEITEM node);
…
protected: //消息映射
//{{AFX_MSG(CXjpdmListView)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
…
//}}AFX_MSG
DECLARE_MESSAGE_MAP( ) }
属性窗口用来显示树型窗口中选择对象的全部属性,及时响应树型窗口中对象选择变化,更新属性信息。属性窗口采CFormView为基类开发,其主要定义如下:
class CxjpdmformView : public CFormView
{protected:
CxjpdmformView( );
public: // 显示数据定义
//{{AFX_DATA(CxjpdmformView)
enum { IDD = IDD_FORM_DLG };
CString m_form_ID;
…
//}}AFX_DATA
public: //数据源定义
Cproductset * m_formproductset;
Cpartrecordset* m_formpartrecordset;
public:
virtual void OnInitialUpdate( );
protected: //数据交换更新
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV
virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
protected:
virtual ~CxjpdmformView( ); }
配置规则和条件的制定、管理是配置软件的另一个主要功能,如图2所示。通过选用不同的选项和数值,就可以制定出符合要求的配置规则和条件。
配置结果的管理、筛选和存储也是一项主要功能。图3显示的是经过配置后,从配置结果中增加产品种类的情况。所添加的新产品同时也会显示在树型结构里面。
3 与CATIA软件接口的设计
3.1 CATIA接口设计
CATIA(Computer Aided Three-dimensional Interactive Application)是法国达索系统(Dassault System)公司开发的CAD/CAM/CAE一体化软件平台。该平台不仅提供了各类复杂零件的几何建模功能,而且提供了丰富的功能支持数字产品样机的开发,可以完成对产品从零部件到装配体的各种力学分析、运动模拟、加工和装配仿真等多种工程应用。它的主要模块包括:零件设计模块、曲面设计模块、工程图模块、知识专家模块、装配设计模块、应力分析模块、机构运动分析模块、数字化样机模块、以及基础通用模块等。
CATIA是一个开放型的软件平台,它支持基于微软COM(Component Object Model)接口的AUTOMATION自动化技术。将其丰富的功能通过可操作对象的形式提供给用户,因而通过一些脚本描述语言如VB 、VBA等可以灵活地使用这些功能。如用户可以通过Macros宏、WORD/EXCEL、VB等来开发基于CATIA的应用程序。
CATIA中的对象是对脚本描述语言开放的最基本的可操作单元,这些对象代表CATIA中基本的实体如文档、窗体、柱体、孔、圆等。对每个对象提供相应的方法和属性来实现对它们的操作和调用。对象的属性和方法可以进行派生和继承,同一类对象可以组成一个对象集合。
同产品样机关系最紧密的是产品的装配体对象模型。CATIA中的ProductDocument对象结构。它包含了一个从根产品开始的产品树,根产品目录下包含一个产品集合,产品集合中的每个产品有可能包含下一层的产品集合。约束(Constraints)定义零件对象装配定位关系:共轴、轴插入孔、面接触等。定位(Position)和移动(Move)分别是对零件对象进行准确定位操作,用来实现正确的装配。如图4所示。
3.2 基于VB的接口实现
基于VB开发的CATIA接口程序操作界面如图5所示。左边的树型结构是从数据库中读出来的产品结构示意图,右边的几个功能按钮分别表示对数据的读出和写入功能。同时,可以直接由CATIA输出产品的BOM明细表。根据产品数据信息,可以在CATIA三维环境中自动地加载全部零件,进行装配检查和样机浏览确定出有效配置结果。
4 产品配置客户定制实现的实例
对于不同类型的产品,可以确定出不同的配置规则,从而得到相应的产品结构。下面以某冰箱厂的冰箱产品为例进行说明。
作为日常家用电器产品的冰箱,其主要功能是制冷和贮藏不宜在较高温度下存放的物品,因而,它首要的一个主要功能指标是制冷和保温性能;其次是它内部储物容量以及各部分空间分配的合理性;第三个功能指标则是冰箱的外形、颜色、材料等其他特性。制冷和保温性能涉及到压缩机的工作情况、效率,以及温度感应器的灵敏度和控制系统的工作原理、性能等,不属于本文的讨论范围,为方便将它们用一个压缩制冷系统代替,并对一些产品结构上的特性进行了简化。这里重点要讨论的是通过对冰箱的结构、内部容积和外形、颜色等特性的选用,来进行新产品的配置和变型设计。
对于压缩制冷系统,假设有三种产品参数指标的分类型号可以供选用:220V/50Hz/800W、220V/50Hz/1000W和220V/50Hz/1500W。每种制冷系统和冰箱的容积有一定的配合关系,大容积产品配有大功率制冷系统,小容积必须选用小型压缩系统。相应的分别对柜体、前面门和托盘等采用模块化设计,建立产品族信息库。通过选用压缩系统和零部件,可以制定出不同的配置规则,得到不同的结构配置结果。对于得到的产品配置结果,通过开发的接口程序,配置结果的BOM表自动在CATIA软件中加载产品全部零件,经过装配后可以直接显示新产品的样机信息,如图6所示。
图6中a)显示的是选用“220V/50Hz/800W”时最新发布零件版本所得的有效配置结果;b)和c)分别是选用“220V/50Hz/1000W”时所得到的两种有效装配;d)是选用全部零部件和“220V/50Hz/1500W”的一种有效配置。通过对样机的装配验证和确认,可以及时了解配置结果的整体装配情况,也可以对结果进行变型设计。
图7是对图6中的 c)变型设计所得的一个实例,其它各项性能保持不变。
个性化的产品定制采用个性化的设计来满足,配置和变型设计是进行个性化定制设计的一种主要方法。通过配置和变型设计,可以快速地设计出个性化的产品实例。在定制生产中,可以按照需求提供出相应的产品样机,缩短开发设计周期,提高效率。
5 结 论
本文采用面向对象方法分析了产品配置模型,并用UML语言建立了模型中对象关系,构造了产品信息数据库表的结构。基于VC开发的原型软件实现了快速满足客户需求的可视化产品,完成了产品结构信息管理、BOM管理、配置规则管理和配置结果管理等功能。根据CATIA软件平台的接口原理,使用VB设计了对它的外部操作接口,在CATIA三维环境下,可以实现对配置产品零部件的自动加载和装配电子样机可视化预览。
要建立在完全信息化管理制造企业中的大规模客户定制生产方式,要求有更多平台的集成和协作,提供对产品整个生命周期的信息管理。本文所开发的配置软件,对于复杂产品结构的配置和定制管理,还需进一步优化和改进的工作。
参考文献
[1] 万雪峰, 但斌, 经有国. 在线大规模定制下基于客户需求模板的产品配置研究[J]. 工业工程, 2010, 13(4): 69-73.
. International Journal o
f Production Economics, 2012, 138(1): 14-25.
[3] 苏立悦, 董 明, 杨 东. 大规模定制下基于本体的服务产品配置研究[J]. 计算机应用研究,2010,27(2):483-487..
[4] 艾辉, 万立, 熊体凡,等. 大规模定制环境下的参数驱动产品配置设计方法研究[J]. 中国机械工程,2010, 21(15):1820-1824.
[5] 伊辉勇, 李开国, 刘伟. 面向在线大规模定制的产品配置元类型识别方法[J].工业工程与管理,2011,16( 1) :47-52.
[6] 郑雁翎, 王亚云. 产品配置设计规则的建立及需求转换算法[J]. 宝鸡文理学院学报:自然科学版,2010,9(30):61-65.
[7] 李维新. 大规模定制生产中产品配置实现方法的研究[J]. 宝鸡文理学院学报:自然科学版,2011,1(31):62-66.
[8] 郑雁翎. 产品配置管理系统中数据库关键技术的研究[J].机械设计与制造, 2012, 5 (5): 264-266.
[9] 王小章,杨培林,陈晓南,等. 基于多色图理论的产品结构配置模型[J]. 机械科学与技术, 2004, 23 (11): 1293-1296.