引言
由于工藝設(shè)計(jì)是個(gè)性化很強(qiáng)的工作,不同企業(yè)的工藝卡片格式千差萬(wàn)別,即便是一個(gè)企業(yè)內(nèi)部,為響應(yīng)市場(chǎng)對(duì)產(chǎn)品的快速要求,實(shí)際工藝設(shè)計(jì)的卡片格式也經(jīng)常變動(dòng)。因此制定適合企業(yè)的工藝卡片格式,并能夠隨著企業(yè)的發(fā)展對(duì)這些文件的格式進(jìn)行方便靈活的修改,就成了CAPP系統(tǒng)的一個(gè)重要功能,也是計(jì)算機(jī)輔助設(shè)計(jì)的重要研究?jī)?nèi)容。
1 工藝模板定制系統(tǒng)框架
整個(gè)模板定制系統(tǒng)的主體是工藝模板管理,包括對(duì)已有模板的修改以及新模板的定制。系統(tǒng)模型如圖 1所示。

從實(shí)現(xiàn)工藝模板定制模塊的角度分析,工藝模板定制主要包含工藝卡片繪制以及工藝卡片描述2個(gè)部分。工藝卡片繪制涉及到圖形繪制、圖形捕捉和圖形修改等過(guò)程。對(duì)應(yīng)于工藝卡片描述部分,系統(tǒng)采用了XML對(duì)工藝卡片進(jìn)行描述,并將相應(yīng)的XML文檔保存到工藝文件庫(kù)中。
2 工藝模板的信息模型
2.1 工藝模板組成對(duì)象分析
模板是對(duì)工藝文件格式的抽象,在確定模板組成對(duì)象之前,必須對(duì)工藝卡片進(jìn)行深人的分析,對(duì)工藝卡片的元素進(jìn)行分解。
a.靜態(tài)格。在表格設(shè)定時(shí)靜態(tài)格的內(nèi)容就已固定,它不需要與工藝設(shè)計(jì)數(shù)據(jù)庫(kù)關(guān)聯(lián),由定制模板時(shí)寫(xiě)人數(shù)據(jù),工藝員在編制工藝時(shí)不能對(duì)其修改。
b.動(dòng)態(tài)格。動(dòng)態(tài)格只有一行記錄,該行記錄由"單元格屬性"唯一確定,其內(nèi)容在工藝設(shè)計(jì)時(shí)由工藝員填寫(xiě)。動(dòng)態(tài)格中的數(shù)據(jù)需要和工藝設(shè)計(jì)數(shù)據(jù)庫(kù)中的表動(dòng)態(tài)關(guān)聯(lián),數(shù)據(jù)的變化直接反映到數(shù)據(jù)庫(kù)中。
c.循環(huán)格。循環(huán)格中包含的數(shù)據(jù)相對(duì)多變,需要與工藝設(shè)計(jì)數(shù)據(jù)庫(kù)關(guān)聯(lián),在數(shù)據(jù)庫(kù)中需要由 2個(gè)關(guān)鍵字來(lái)惟一確定單元格中的一行數(shù)據(jù)。比如在《工藝流轉(zhuǎn)卡》中的"工步內(nèi)容"單元格中的各行記錄需要由"單元格屬性"和"工序號(hào)"來(lái)確定。
d.對(duì)象格。對(duì)象格是動(dòng)態(tài)格中的一個(gè)特例,包含圖形或其它復(fù)雜數(shù)據(jù)。如《工藝簡(jiǎn)圖》中的"工序圖"單元格為對(duì)象格。下面以《工藝簡(jiǎn)圖》為例,給出分解后的工藝模板模型,如圖2所示。

在開(kāi)發(fā)CAPP模板定制系統(tǒng)時(shí)將面向?qū)ο蟮乃枷胍四0宓奶幚碇校0宓母鞣N元素可以看作是一系列的對(duì)象,對(duì)模板的處理細(xì)化為對(duì)這幾種對(duì)象的處理。
2.2 工藝模板的數(shù)據(jù)描述
系統(tǒng)采用 XML對(duì)所有工藝卡片進(jìn)行描述。
XML使用文檔來(lái)表現(xiàn)實(shí)體,而文檔中的元素代表實(shí)體的實(shí)例。文檔中的每一個(gè)標(biāo)記都是一個(gè)新元素(element)的開(kāi)頭。一個(gè) XML元素包含一個(gè)起始標(biāo)記、一個(gè)結(jié)束標(biāo)記和元素的內(nèi)容。基于工藝模型實(shí)體,而模板的各種元素可看作是實(shí)體的一系列實(shí)例,因此可以利用XML技術(shù),設(shè)計(jì)一套描述工藝卡片表格的通用XML詞匯表,在此基礎(chǔ)上,用戶(hù)可以基于這套詞匯表和DTD靈活構(gòu)建所需工藝文件模板。構(gòu)建好的工藝模板(XML文檔)經(jīng)過(guò)表格生成引擎的解析處理之后,展現(xiàn)在客戶(hù)端瀏覽器上系統(tǒng)通過(guò)對(duì) XML文檔解析生成元數(shù)據(jù)樹(shù),之后再顯示為工藝卡片的形式,系統(tǒng)中并不存在一張真正意義上的表,所有工藝卡片對(duì)應(yīng)為XML文檔。
因此模板定制的關(guān)鍵是提供一種交互式卡片繪制功能,并將用戶(hù)繪制的工藝卡片轉(zhuǎn)換為相應(yīng)的XML文檔描述。
3 基于XML的模板定制技術(shù)
3.1 模板子元素的創(chuàng)建
通過(guò)對(duì)模板組成對(duì)象分析可知,模板定制實(shí)際上就是將一種類(lèi)型的工藝卡片格式分解成靜態(tài)格、動(dòng)態(tài)格、對(duì)象格及循環(huán)格等模板子元素,并借助交互式手段分別生成的過(guò)程。在本系統(tǒng)中,模板被看作是一個(gè)XML文檔實(shí)體,因此生成模板的過(guò)程實(shí)際上就是新建一個(gè) XML文檔的過(guò)程,而新建模板子元素就對(duì)應(yīng)為創(chuàng)建XML文檔的一個(gè)節(jié)點(diǎn)。為了保證新建的XML文檔能夠被系統(tǒng)解析,創(chuàng)建的XML文檔必須符合 Schema的定義。
為創(chuàng)建一個(gè)新的文檔對(duì)象,必須建立一個(gè)新的Msxml2.DOMDocument范例,下面是相應(yīng)的 C++代碼:
IXMLDOMDocumentPtrm_pXMLDoc;
m_pXMLDoc.CreateInstance(_T("msxml2.domdocument"));
在創(chuàng)建 DOMDocument對(duì)象之后,可以為不同類(lèi)型的語(yǔ)法分析行為和處理行為設(shè)置標(biāo)記,裝載XML文檔,在文檔內(nèi)部建立新節(jié)點(diǎn),以創(chuàng)建不同的模板子元素,從而生成一張完整的工藝卡片。
3.2 工藝卡片的繪制
新建模板以后,用戶(hù)可以在初始模板上進(jìn)行工藝卡片的繪制工作。繪圖時(shí)系統(tǒng)采用 Windows圖形設(shè)備接口(GDI)。通過(guò)對(duì)工藝卡片的元素分解可知,卡片是由一系列的單元格組成的,因此繪圖時(shí)的主要工作是矩形框的繪制。
在繪圖開(kāi)始之前,需要獲取設(shè)備描述表句柄,此外還需要獲取設(shè)備描述表信息,設(shè)置 GDI的映射方式等。在畫(huà)圖時(shí),可以選擇畫(huà)筆的顏色及線(xiàn)寬,在界面的狀態(tài)欄中將根據(jù)畫(huà)筆的移動(dòng)動(dòng)態(tài)顯示其坐標(biāo)值。此外系統(tǒng)還提供了"橡皮條"的功能,即隨著鼠標(biāo)的移動(dòng)動(dòng)態(tài)顯示圖形,從而使得操作直觀。
3.3 模板子元素對(duì)象屬性的定義
畫(huà)圖結(jié)束以后,系統(tǒng)將屏幕上的圖形臨時(shí)保存到鏈表中,圖形的坐標(biāo)等信息都存儲(chǔ)在其中。此時(shí),圖形元素并沒(méi)有加到卡片模板中,必須對(duì)其屬性進(jìn)行定義后才能將圖形元素保存。在定義圖形元素屬性時(shí),系統(tǒng)提供了圖形元素的拾取功能。圖形元素被選中以后,可以對(duì)其賦予相應(yīng)的屬性。XML提供的屬性操作方法來(lái)自IXMLDOMElement,可以通過(guò)IXMLDOMElement的setAttribute方法設(shè)置其屬性。現(xiàn)將模板子元素的屬性進(jìn)行分析:
a.靜態(tài)格屬性。靜態(tài)格中的內(nèi)容在表格設(shè)計(jì)時(shí)已經(jīng)確定,它需要包含"字體"子元素,用來(lái)設(shè)置文字的屬性,字體子元素屬性包括字體名稱(chēng)、大小等。
b.動(dòng)態(tài)格屬性。動(dòng)態(tài)格中的內(nèi)容是由用戶(hù)填寫(xiě)的,需要設(shè)置表格的布局方式,它包含固定格子元素。為了實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的關(guān)聯(lián),還需要設(shè)置字段名屬性及對(duì)應(yīng)的數(shù)據(jù)庫(kù)表名。通過(guò)這種對(duì)應(yīng)關(guān)系不僅在工藝編輯的時(shí)候可實(shí)現(xiàn)工藝數(shù)據(jù)在數(shù)據(jù)庫(kù)中的直接存取,而且為工藝數(shù)據(jù)的開(kāi)放式管理奠定基礎(chǔ)。
c.循環(huán)格屬性。循環(huán)格的屬性與動(dòng)態(tài)格類(lèi)似。由于其含有多行記錄,需要對(duì)行列屬性進(jìn)行設(shè)置。
d.對(duì)象格屬性。對(duì)象格是填寫(xiě)工序圖或其它復(fù)雜數(shù)據(jù)的單元格,需要對(duì)圖形或其它復(fù)雜數(shù)據(jù)的來(lái)源進(jìn)行設(shè)置。
e.各對(duì)象的公共屬性。由于各子元素為一系列的單元格,因此都包含表格坐標(biāo)值、線(xiàn)形等公共屬性。還需要對(duì)各單元格的卡片區(qū)域?qū)傩赃M(jìn)行設(shè)置。在對(duì)模板子元素屬性進(jìn)行定義后,需要保存結(jié)果才能將圖形元素加到卡片模板中。此時(shí)需要采用XML的save方法:m_pXMLDoc.save(sXMLDocName)。保存成功以后,圖形界面隨即被更新,顯示出最新的卡片模板格式。
3.4 模板格式的交互式調(diào)整
當(dāng)模板各對(duì)象生成之后,有時(shí)其格式還不能滿(mǎn)足要求,需要對(duì)其做一系列的調(diào)整才能最終形成一個(gè)格式良好的工藝模板。
a.單元格位置的調(diào)整。選中所要調(diào)整的單元格以后,可以通過(guò)系統(tǒng)的位置調(diào)整功能進(jìn)行調(diào)整。單元格位置調(diào)整有 2種實(shí)現(xiàn)方式:初級(jí)調(diào)整和精確調(diào)整。初級(jí)調(diào)整是通過(guò)移動(dòng)選中的單元格進(jìn)行粗略的調(diào)整,移動(dòng)提供了"橡皮條"的處理方式,動(dòng)態(tài)地拖的坐標(biāo)值,包括水平方向和豎直方向的移動(dòng)值。
b.單元格大小的調(diào)整。由于在卡片定制時(shí)繪制出的單元格通常是任意畫(huà)出的,因此單元格的大小尺寸往往不夠精確。在系統(tǒng)中提供了任意改變單元格大小的功能,如等高、等寬和改變單元格高度、改變單元格寬度等功能。當(dāng)用戶(hù)選中了一種單元格后,會(huì)彈出對(duì)話(huà)框,用戶(hù)可以通過(guò)輸人具體的數(shù)值對(duì)單元格的高度或?qū)挾冗M(jìn)行調(diào)整。
c.字段名稱(chēng)的調(diào)整。有時(shí)候用戶(hù)需要改變單元格的字段名稱(chēng),以改變其與數(shù)據(jù)庫(kù)的關(guān)聯(lián)。只要選中一個(gè)單元格,將彈出相應(yīng)的屬性設(shè)置對(duì)話(huà)框,用戶(hù)可以對(duì)該單元格的字段名稱(chēng)進(jìn)行修改。
d.靜態(tài)格屬性的調(diào)整。靜態(tài)格內(nèi)容的調(diào)整和字段名稱(chēng)的調(diào)整類(lèi)似,只要選中需要調(diào)整的靜態(tài)格,就將彈出屬性更改對(duì)話(huà)框,可對(duì)單元格屬性進(jìn)行調(diào)整,包括靜態(tài)格的文本、字體及對(duì)齊方式等的調(diào)整。綜上所述,用戶(hù)以一種交互式的手段調(diào)整生成的模板子元素的大小、位置和屬性,經(jīng)調(diào)整后,模板定制工作就完成了。模板定制流程如圖3所示。

4 結(jié)束語(yǔ)
通過(guò)對(duì)工藝卡片的組成元素進(jìn)行分解,將工藝模板抽象為由靜態(tài)格、動(dòng)態(tài)格、對(duì)象格和循環(huán)格組成的實(shí)體,借助交互式手段進(jìn)行工藝模板的繪制與定義,并將構(gòu)建好的工藝模板保存為XML文檔,完成了模板子元素的加載,從而實(shí)現(xiàn)了工藝模板的定制過(guò)程。實(shí)踐證明,這種交互式模板定制技術(shù)對(duì)于實(shí)現(xiàn)CAPP系統(tǒng)的通用性和商品化具有重要的意義。
相關(guān)文章
- 2021-09-08BIM技術(shù)叢書(shū)Revit軟件應(yīng)用系列Autodesk Revit族詳解 [
- 2021-09-08全國(guó)專(zhuān)業(yè)技術(shù)人員計(jì)算機(jī)應(yīng)用能力考試用書(shū) AutoCAD2004
- 2021-09-08EXCEL在工作中的應(yīng)用 制表、數(shù)據(jù)處理及宏應(yīng)用PDF下載
- 2021-08-30從零開(kāi)始AutoCAD 2014中文版機(jī)械制圖基礎(chǔ)培訓(xùn)教程 [李
- 2021-08-30從零開(kāi)始AutoCAD 2014中文版建筑制圖基礎(chǔ)培訓(xùn)教程 [朱
- 2021-08-30電氣CAD實(shí)例教程AutoCAD 2010中文版 [左昉 等編著] 20
- 2021-08-30電影風(fēng)暴2:Maya影像實(shí)拍與三維合成攻略PDF下載
- 2021-08-30高等院校藝術(shù)設(shè)計(jì)案例教程中文版AutoCAD 建筑設(shè)計(jì)案例
- 2021-08-29環(huán)境藝術(shù)制圖AutoCAD [徐幼光 編著] 2013年P(guān)DF下載
- 2021-08-29機(jī)械A(chǔ)utoCAD 項(xiàng)目教程 第3版 [繆希偉 主編] 2012年P(guān)DF