3基于XML的模板定制技术
3.1模板子元素的创建
通过对模板组成对象分析可知,模板定制实际上就是将一种类型的工艺卡片格式分解成静态格、动态格、对象格及循环格等模板子元素,并借助交互式手段分别生成的过程。在本系统中,模板被看作是一个XML文档实体,因此生成模板的过程实际上就是新建一个XML文档的过程,而新建模板子元素就对应为创建XML文档的一个节点。为了保证新建的XML文档能够被系统解析,创建的XML文档必须符合Schema的定义。
为创建一个新的文档对象,必须建立一个新的Msxml2.DOMDocument范例,下面是相应的C++代码:
IXMLDOMDocumentPtrm_pXMLDoc;
m_pXMLDoc.CreateInstance(_T("msxml2.domdocument"));
在创建DOMDocument对象之后,可以为不同类型的语法分析行为和处理行为设置标记,装载XML文档,在文档内部建立新节点,以创建不同的模板子元素,从而生成一张完整的工艺卡片。
3.2工艺卡片的绘制
新建模板以后,用户可以在初始模板上进行工艺卡片的绘制工作。绘图时系统采用Windows图形设备接口(GDI)。通过对工艺卡片的元素分解可知,卡片是由一系列的单元格组成的,因此绘图时的主要工作是矩形框的绘制。
在绘图开始之前,需要获取设备描述表句柄,此外还需要获取设备描述表信息,设置GDI的映射方式等。在画图时,可以选择画笔的颜色及线宽,在界面的状态栏中将根据画笔的移动动态显示其坐标值。此外系统还提供了"橡皮条"的功能,即随着鼠标的移动动态显示图形,从而使得操作直观。
3.3模板子元素对象属性的定义
画图结束以后,系统将屏幕上的图形临时保存到链表中,图形的坐标等信息都存储在其中。此时,图形元素并没有加到卡片模板中,必须对其属性进行定义后才能将图形元素保存。
在定义图形元素属性时,系统提供了图形元素的拾取功能。图形元素被选中以后,可以对其赋予相应的属性。XML提供的属性操作方法来自IXMLDOMElement,可以通过IXMLDOMElement的setAttribute方法设置其属性。现将模板子元素的属性进行分析:
a.静态格属性。静态格中的内容在表格设计时已经确定,它需要包含"字体"子元素,用来设置文字的属性,字体子元素属性包括字体名称、大小等。
b.动态格属性。动态格中的内容是由用户填写的,需要设置表格的布局方式,它包含固定格子元素。为了实现与数据库的关联,还需要设置字段名属性及对应的数据库表名。通过这种对应关系不仅在工艺编辑的时候可实现工艺数据在数据库中的直接存取,而且为工艺数据的开放式管理奠定基础。
c.循环格属性。循环格的属性与动态格类似。由于其含有多行记录,需要对行列属性进行设置。
d.对象格属性。对象格是填写工序图或其它复杂数据的单元格,需要对图形或其它复杂数据的来源进行设置。
e.各对象的公共属性。由于各子元素为一系列的单元格,因此都包含表格坐标值、线形等公共属性。还需要对各单元格的卡片区域属性进行设置。在对模板子元素属性进行定义后,需要保存结果才能将图形元素加到卡片模板中。此时需要采用XML的save方法:m_pXMLDoc.save(sXMLDocName)。保存成功以后,图形界面随即被更新,显示出最新的卡片模板格式。
3.4模板格式的交互式调整
当模板各对象生成之后,有时其格式还不能满足要求,需要对其做一系列的调整才能最终形成一个格式良好的工艺模板。
a.单元格位置的调整。选中所要调整的单元格以后,可以通过系统的位置调整功能进行调整。单元格位置调整有2种实现方式:初级调整和精确调整。初级调整是通过移动选中的单元格进行粗略的调整,移动提供了"橡皮条"的处理方式,动态地拖的坐标值,包括水平方向和竖直方向的移动值。
b.单元格大小的调整。由于在卡片定制时绘制出的单元格通常是任意画出的,因此单元格的大小尺寸往往不够精确。在系统中提供了任意改变单元格大小的功能,如等高、等宽和改变单元格高度、改变单元格宽度等功能。当用户选中了一种单元格后,会弹出对话框,用户可以通过输人具体的数值对单元格的高度或宽度进行调整。
c.字段名称的调整。有时候用户需要改变单元格的字段名称,以改变其与数据库的关联。只要选中一个单元格,将弹出相应的属性设置对话框,用户可以对该单元格的字段名称进行修改。
d.静态格属性的调整。静态格内容的调整和字段名称的调整类似,只要选中需要调整的静态格,就将弹出属性更改对话框,可对单元格属性进行调整,包括静态格的文本、字体及对齐方式等的调整。综上所述,用户以一种交互式的手段调整生成的模板子元素的大小、位置和属性,经调整后,模板定制工作就完成了。
4结束语
通过对工艺卡片的组成元素进行分解,将工艺模板抽象为由静态格、动态格、对象格和循环格组成的实体,借助交互式手段进行工艺模板的绘制与定义,并将构建好的工艺模板保存为XML文档,完成了模板子元素的加载,从而实现了工艺模板的定制过程。实践证明,这种交互式模板定制技术对于实现CAPP系统的通用性和商品化具有重要的意义。
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@mmsonline.com.cn。
- 暂无反馈