基于XML的CAPP模板定制研究
時間:2008-11-01瀏覽:890次收藏
CAPP的研究與開發(fā)為工藝設計提供了有效的輔助工具,是銜接設計過程和制造過程的關鍵。在工藝設計中,工藝卡片是指導工人完成現(xiàn)場加上的依據(jù):不同企業(yè)的工藝卡片不僅種類繁多,而且各不相同;同時隨著企業(yè)的發(fā)展、產(chǎn)品類型的豐富以及工藝水平的進步,工藝卡片的格式還在不斷的變化。傳統(tǒng)的CAPP交互技術已不能滿足這種格式變換的要求,因此,制定適合企業(yè)的工藝卡片格式,并能夠隨著企業(yè)的發(fā)展對這些文件格式進行方便靈活的修改,就成了CAPP系統(tǒng)應具有的一個非常重要的功能,也是日前CAPP系統(tǒng)研究的重要內(nèi)容。
針對以上問題,本文提出一種基于XML的模板定制技術,允許工藝人員根據(jù)自己需要的格式繪制出相應的工藝卡片,并能夠?qū)ι傻墓に嚹0暹M行調(diào)整和修改,從而為同一類型的工藝文件提供了一致的交互平臺,也為實現(xiàn)CAPP系統(tǒng)的通用性和實用性打下重要基礎。
1 模板組成對象分析
由于工藝卡片是工藝人員工作的主要對象,因此CAPP系統(tǒng)必須能夠?qū)崿F(xiàn)工藝卡片的計算機描述,即所謂的"工藝文件模板"。
模板是對工藝文件格式的抽象,因此在確定模板的組成對象之前,必須對工藝文件進行深人的分析。盡管CAPP工藝卡片類型繁多,但對工藝卡片進行分析后可以看出,卡片是由一系列單元格組成的。單元格可以分為固定格、變量格、對象格和循環(huán)格四種。包含單位名稱等固定內(nèi)容的單元格定義為固定格;包含產(chǎn)品名稱、產(chǎn)品工號、零件名稱、零件圖號等內(nèi)容,隨產(chǎn)品、零件的不同而變化的單元格定義為變量格;包含工序圖或其它復雜數(shù)據(jù)的單元格定義為對象格;包含工序、工步等多行記錄內(nèi)容的單元格定義為循環(huán)格。固定格的內(nèi)容在卡片設計時確定,變量格、對象格和循環(huán)格的內(nèi)容在工藝設計時由用戶填寫。在設計卡片時用戶可以對每一個單元格進行定義。
以鍛壓工藝卡為例,如圖1所示,說明工藝文件模板的元素分解。
工藝文件模板的元素分解
由于每張工藝卡片均可以看成是方框型單元格的集合,按照區(qū)域分治的原則對其進行抽象,可以將一張卡片劃分成五個區(qū)域:表頭區(qū)、表中區(qū)、版本區(qū)、編校區(qū)和附件區(qū).
(1)表中區(qū)是卡片中需要填人多行數(shù)據(jù)的,如工序部;(2)版本區(qū)包括版本、修訂號、編號和修改欄等;(3)編校區(qū)包括編制、校對、標審、審核等;(4)附件區(qū)是需要插人圖片的單元格,如工藝簡圖部分和熱處理規(guī)范部分;(5)不屬于以上四個區(qū)域的單元格就歸為表頭區(qū),通常包括產(chǎn)品名稱、產(chǎn)品工作號、部件名稱和部件圖號等。
經(jīng)過這樣的抽象以后,在CAPP系統(tǒng)中,并不存在任何一張真正意義上的工藝卡片,也不以文件的形式將任何已生成好的工藝卡片保存在磁盤上,所有的數(shù)據(jù)皆存儲于后臺數(shù)據(jù)庫中,包括工藝庫、資源庫、報表模板庫以及其它各種共享數(shù)據(jù)庫。結合一定的編碼規(guī)則,將一張張工藝卡片與其所需的產(chǎn)品數(shù)據(jù)及工藝數(shù)據(jù)一一關聯(lián)起來,從而形成"虛擬工藝卡片",并將其存儲于虛擬上藝卡片庫中。當需要顯示或輸出工藝卡片時,系統(tǒng)自動激活所有的鏈接關系,并將數(shù)據(jù)填人報表模板的相應欄位中,從而顯示或打印出真正的工藝文檔。
"虛擬工藝卡片"的概念充分體現(xiàn)了數(shù)據(jù)庫技術的優(yōu)越性,后臺數(shù)據(jù)庫中的各種數(shù)據(jù)既互相關聯(lián)又相互獨立。當某一卡片的格式改變時,系統(tǒng)會自動更新與該模板有關的所有虛擬工藝文件,這種改變只會影響到數(shù)據(jù)庫中的某一張二維表,而不會影響其它任何數(shù)據(jù)。同時"虛擬工藝卡片"極大地節(jié)省了硬盤空間,而且不存在新舊工藝卡片之間的轉(zhuǎn)換問題,避免了大量的重復勞動.
2 模板的數(shù)據(jù)描述
XML使用文檔來表現(xiàn)實體,而文檔中的元素代表實體的實例。文檔中的每一個標記都是一個新元素(element )的開頭。一個XML元素包含一個起始標記,一個結束標記和元素的內(nèi)容?;诠に嚹0宓男畔⒎纸饪芍?,工藝文件模板可以看成是一個實體,而模板的各種元素可看作是實體的一系列實例,因此可以利用XML技術,設計一套描述工藝卡片表格的通用XML詞匯表,在此基礎上,用戶可以基于這套詞匯表和DTD靈活構建所需工藝文件模板。構建好的工藝模板(XML文檔)經(jīng)過表格生成引擎的解析處理之后,展現(xiàn)在客戶端瀏覽器。
針對工藝長片元數(shù)據(jù)描述卡片內(nèi)容區(qū)的單元格,可以用< Table >元素表示循環(huán)格,row和col分別表示行數(shù)和列數(shù),x1,y1表示方格的左上角坐標,x2,y2表示方格的右下角坐標,type表示該變量格的布局方式。< Rcet>元素定義列標題,屬性name表示字段名,其了元素定義固定格中的一行文字,font , size, mid分別表示文字的字體、大小及位居方式。如圖2所示的循環(huán)格有3行3列,左上角坐標為(240,61),右下角坐標為(282,82).
由于工藝卡片類型繁多,開發(fā)CAPP系統(tǒng)時要求建立工藝卡片之間的關系,以方便檢索及與其它系統(tǒng)集成,因此需要統(tǒng)一定義工藝模板的數(shù)據(jù)字典,在新建模板時以此為依據(jù)進行數(shù)據(jù)關聯(lián)。
3基于XML的模板定制技術
由模板組成對象分析可知,模板定制實際上就是將一種類型的工藝卡片格式分解成固定格、變量格、對象格、循環(huán)格等模板子元素,并借助交互式手段分別生成的過程,因此有必要對各子元素的生成模式及屬性定義進行分析。
3.1模板子元素生成模式分析
由于模板被看作是一個XML文檔實體,因此生成模板的過程實際上就是新建一個XML文檔的過程。而新建模板子元素就對應為創(chuàng)建XML文檔的一個節(jié)點。
為創(chuàng)建一個新的文檔對象,必須建立一個新的Msxml2.DOMDocument范例,相應得C++代碼如下:
在創(chuàng)建DOMDocument對象之后,可以為不同類型的語法分析行為和處理行為設置標記,裝載XML文檔,在文檔內(nèi)部建立新節(jié)點以創(chuàng)建不同的模板子元素。
3.2對象屬性的定義
為了定制各子元素在工藝模板中的位置和其他一些必要的信息,需要對各子元素對象賦予相應的屬性。XML提供的屬性操作方法來自IXMLDOMElement,可以通過IXMLDOMEIement的setAttribute方法設置其屬性。對象的屬性分析如下:
(1)各對象的公共屬性。由于各子元素為一系列的單元格,因此都包含表格坐標值、線形等公共屬性。此外還需要對各單元格的卡片區(qū)域?qū)傩赃M行設置。
(2)固定格。固定格中的內(nèi)容在表格設計時已經(jīng)確定,為了實現(xiàn)與數(shù)據(jù)庫的關聯(lián),需要設置字段名屬性,另外它需要包含"字體"子元素,用來設置文字的屬性。
(3)變量格。變量格中的內(nèi)容是由用戶填寫的,需要設置表格的布局方式,它包含固定格子元素。
(4)循環(huán)格。循環(huán)格也包含固定格子元素。另外由于其含有多行記錄,因此除了設置表格的布局方式外,還需要對行列屬性進行設置。
(5)對象格。對象格是填寫工序圖或其它復雜數(shù)據(jù)的單元格,需要對圖形或其他復雜數(shù)據(jù)的來源屬性進行設置。
模板各對象生成之后,模板定制的工作基本完成了。構建好的工藝模板以XML文檔的形式存儲。再次打開該模板時,只要對相應的XML文檔進行解析處理,就可以將原工藝卡片展現(xiàn)在客戶端瀏覽器上。
3.3模板格式的交互式修改
當模板各對象生成之后,有時其格式還不能滿足要求,需要對其做一系列的調(diào)整才能最終形成一個格式良好的工藝模板。這種修改包括表格位置、表格線形、字段名稱、固定格文字內(nèi)容屬性等的修改。
在進行表格修改時,只要選中一個單元格,就將彈出相應的表格屬性設置對話框,用戶可以對其屬性進行修改(如圖3所示)。
用戶點擊"修改"后,所做的修改將被保存到相應的XML文檔中,同時界面即刻被刷新,顯示為修改后的模板內(nèi)容。
4 結論
通過對工藝卡片的分析,將工藝模板抽象為由固定格、變量格、對象格和循環(huán)格組成的實體,借助交互式手段分別生成其子元素,并將構建好的工藝模板保存為XML文檔,從而完成了模板定制過程。實踐證明,這種交互式模板定制技術對于實現(xiàn)CAPP系統(tǒng)的通用性和商品化具有重要的意義。