我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網(wǎng)站首頁 > CAD新聞

CAPP模板定制系統(tǒng)的研究與開發(fā)

時間:2011-02-26 19:30:56 來源:

引言

由于工藝設(shè)計是個性化很強的工作,不同企業(yè)的工藝卡片格式千差萬別,即便是一個企業(yè)內(nèi)部,為響應(yīng)市場對產(chǎn)品的快速要求,實際工藝設(shè)計的卡片格式也經(jīng)常變動。因此制定適合企業(yè)的工藝卡片格式,并能夠隨著企業(yè)的發(fā)展對這些文件的格式進行方便靈活的修改,就成了CAPP系統(tǒng)的一個重要功能,也是計算機輔助設(shè)計的重要研究內(nèi)容。

1 工藝模板定制系統(tǒng)框架

整個模板定制系統(tǒng)的主體是工藝模板管理,包括對已有模板的修改以及新模板的定制。系統(tǒng)模型如圖 1所示。

newmaker.com

從實現(xiàn)工藝模板定制模塊的角度分析,工藝模板定制主要包含工藝卡片繪制以及工藝卡片描述2個部分。工藝卡片繪制涉及到圖形繪制、圖形捕捉和圖形修改等過程。對應(yīng)于工藝卡片描述部分,系統(tǒng)采用了XML對工藝卡片進行描述,并將相應(yīng)的XML文檔保存到工藝文件庫中。

2 工藝模板的信息模型

2.1 工藝模板組成對象分析

模板是對工藝文件格式的抽象,在確定模板組成對象之前,必須對工藝卡片進行深人的分析,對工藝卡片的元素進行分解。

a.靜態(tài)格。在表格設(shè)定時靜態(tài)格的內(nèi)容就已固定,它不需要與工藝設(shè)計數(shù)據(jù)庫關(guān)聯(lián),由定制模板時寫人數(shù)據(jù),工藝員在編制工藝時不能對其修改。

b.動態(tài)格。動態(tài)格只有一行記錄,該行記錄由"單元格屬性"唯一確定,其內(nèi)容在工藝設(shè)計時由工藝員填寫。動態(tài)格中的數(shù)據(jù)需要和工藝設(shè)計數(shù)據(jù)庫中的表動態(tài)關(guān)聯(lián),數(shù)據(jù)的變化直接反映到數(shù)據(jù)庫中。

c.循環(huán)格。循環(huán)格中包含的數(shù)據(jù)相對多變,需要與工藝設(shè)計數(shù)據(jù)庫關(guān)聯(lián),在數(shù)據(jù)庫中需要由 2個關(guān)鍵字來惟一確定單元格中的一行數(shù)據(jù)。比如在《工藝流轉(zhuǎn)卡》中的"工步內(nèi)容"單元格中的各行記錄需要由"單元格屬性"和"工序號"來確定。

d.對象格。對象格是動態(tài)格中的一個特例,包含圖形或其它復雜數(shù)據(jù)。如《工藝簡圖》中的"工序圖"單元格為對象格。下面以《工藝簡圖》為例,給出分解后的工藝模板模型,如圖2所示。

在開發(fā)CAPP模板定制系統(tǒng)時將面向?qū)ο蟮乃枷胍四0宓奶幚碇校0宓母鞣N元素可以看作是一系列的對象,對模板的處理細化為對這幾種對象的處理。

2.2 工藝模板的數(shù)據(jù)描述

系統(tǒng)采用 XML對所有工藝卡片進行描述。

XML使用文檔來表現(xiàn)實體,而文檔中的元素代表實體的實例。文檔中的每一個標記都是一個新元素(element)的開頭。一個 XML元素包含一個起始標記、一個結(jié)束標記和元素的內(nèi)容。基于工藝模型實體,而模板的各種元素可看作是實體的一系列實例,因此可以利用XML技術(shù),設(shè)計一套描述工藝卡片表格的通用XML詞匯表,在此基礎(chǔ)上,用戶可以基于這套詞匯表和DTD靈活構(gòu)建所需工藝文件模板。構(gòu)建好的工藝模板(XML文檔)經(jīng)過表格生成引擎的解析處理之后,展現(xiàn)在客戶端瀏覽器上系統(tǒng)通過對 XML文檔解析生成元數(shù)據(jù)樹,之后再顯示為工藝卡片的形式,系統(tǒng)中并不存在一張真正意義上的表,所有工藝卡片對應(yīng)為XML文檔。

因此模板定制的關(guān)鍵是提供一種交互式卡片繪制功能,并將用戶繪制的工藝卡片轉(zhuǎn)換為相應(yīng)的XML文檔描述。

3 基于XML的模板定制技術(shù)

3.1 模板子元素的創(chuàng)建

通過對模板組成對象分析可知,模板定制實際上就是將一種類型的工藝卡片格式分解成靜態(tài)格、動態(tài)格、對象格及循環(huán)格等模板子元素,并借助交互式手段分別生成的過程。在本系統(tǒng)中,模板被看作是一個XML文檔實體,因此生成模板的過程實際上就是新建一個 XML文檔的過程,而新建模板子元素就對應(yīng)為創(chuàng)建XML文檔的一個節(jié)點。為了保證新建的XML文檔能夠被系統(tǒng)解析,創(chuàng)建的XML文檔必須符合 Schema的定義。

為創(chuàng)建一個新的文檔對象,必須建立一個新的Msxml2.DOMDocument范例,下面是相應(yīng)的 C++代碼:

IXMLDOMDocumentPtrm_pXMLDoc;
m_pXMLDoc.CreateInstance(_T("msxml2.domdocument"));

在創(chuàng)建 DOMDocument對象之后,可以為不同類型的語法分析行為和處理行為設(shè)置標記,裝載XML文檔,在文檔內(nèi)部建立新節(jié)點,以創(chuàng)建不同的模板子元素,從而生成一張完整的工藝卡片。

3.2 工藝卡片的繪制

新建模板以后,用戶可以在初始模板上進行工藝卡片的繪制工作。繪圖時系統(tǒng)采用 Windows圖形設(shè)備接口(GDI)。通過對工藝卡片的元素分解可知,卡片是由一系列的單元格組成的,因此繪圖時的主要工作是矩形框的繪制。

在繪圖開始之前,需要獲取設(shè)備描述表句柄,此外還需要獲取設(shè)備描述表信息,設(shè)置 GDI的映射方式等。在畫圖時,可以選擇畫筆的顏色及線寬,在界面的狀態(tài)欄中將根據(jù)畫筆的移動動態(tài)顯示其坐標值。此外系統(tǒng)還提供了"橡皮條"的功能,即隨著鼠標的移動動態(tài)顯示圖形,從而使得操作直觀。

3.3 模板子元素對象屬性的定義

畫圖結(jié)束以后,系統(tǒng)將屏幕上的圖形臨時保存到鏈表中,圖形的坐標等信息都存儲在其中。此時,圖形元素并沒有加到卡片模板中,必須對其屬性進行定義后才能將圖形元素保存。在定義圖形元素屬性時,系統(tǒng)提供了圖形元素的拾取功能。圖形元素被選中以后,可以對其賦予相應(yīng)的屬性。XML提供的屬性操作方法來自IXMLDOMElement,可以通過IXMLDOMElement的setAttribute方法設(shè)置其屬性。現(xiàn)將模板子元素的屬性進行分析:

a.靜態(tài)格屬性。靜態(tài)格中的內(nèi)容在表格設(shè)計時已經(jīng)確定,它需要包含"字體"子元素,用來設(shè)置文字的屬性,字體子元素屬性包括字體名稱、大小等。

b.動態(tài)格屬性。動態(tài)格中的內(nèi)容是由用戶填寫的,需要設(shè)置表格的布局方式,它包含固定格子元素。為了實現(xiàn)與數(shù)據(jù)庫的關(guān)聯(lián),還需要設(shè)置字段名屬性及對應(yīng)的數(shù)據(jù)庫表名。通過這種對應(yīng)關(guān)系不僅在工藝編輯的時候可實現(xiàn)工藝數(shù)據(jù)在數(shù)據(jù)庫中的直接存取,而且為工藝數(shù)據(jù)的開放式管理奠定基礎(chǔ)。

c.循環(huán)格屬性。循環(huán)格的屬性與動態(tài)格類似。由于其含有多行記錄,需要對行列屬性進行設(shè)置。

d.對象格屬性。對象格是填寫工序圖或其它復雜數(shù)據(jù)的單元格,需要對圖形或其它復雜數(shù)據(jù)的來源進行設(shè)置。

e.各對象的公共屬性。由于各子元素為一系列的單元格,因此都包含表格坐標值、線形等公共屬性。還需要對各單元格的卡片區(qū)域?qū)傩赃M行設(shè)置。在對模板子元素屬性進行定義后,需要保存結(jié)果才能將圖形元素加到卡片模板中。此時需要采用XML的save方法:m_pXMLDoc.save(sXMLDocName)。保存成功以后,圖形界面隨即被更新,顯示出最新的卡片模板格式。

3.4 模板格式的交互式調(diào)整

當模板各對象生成之后,有時其格式還不能滿足要求,需要對其做一系列的調(diào)整才能最終形成一個格式良好的工藝模板。

a.單元格位置的調(diào)整。選中所要調(diào)整的單元格以后,可以通過系統(tǒng)的位置調(diào)整功能進行調(diào)整。單元格位置調(diào)整有 2種實現(xiàn)方式:初級調(diào)整和精確調(diào)整。初級調(diào)整是通過移動選中的單元格進行粗略的調(diào)整,移動提供了"橡皮條"的處理方式,動態(tài)地拖的坐標值,包括水平方向和豎直方向的移動值。

b.單元格大小的調(diào)整。由于在卡片定制時繪制出的單元格通常是任意畫出的,因此單元格的大小尺寸往往不夠精確。在系統(tǒng)中提供了任意改變單元格大小的功能,如等高、等寬和改變單元格高度、改變單元格寬度等功能。當用戶選中了一種單元格后,會彈出對話框,用戶可以通過輸人具體的數(shù)值對單元格的高度或?qū)挾冗M行調(diào)整。

c.字段名稱的調(diào)整。有時候用戶需要改變單元格的字段名稱,以改變其與數(shù)據(jù)庫的關(guān)聯(lián)。只要選中一個單元格,將彈出相應(yīng)的屬性設(shè)置對話框,用戶可以對該單元格的字段名稱進行修改。

d.靜態(tài)格屬性的調(diào)整。靜態(tài)格內(nèi)容的調(diào)整和字段名稱的調(diào)整類似,只要選中需要調(diào)整的靜態(tài)格,就將彈出屬性更改對話框,可對單元格屬性進行調(diào)整,包括靜態(tài)格的文本、字體及對齊方式等的調(diào)整。綜上所述,用戶以一種交互式的手段調(diào)整生成的模板子元素的大小、位置和屬性,經(jīng)調(diào)整后,模板定制工作就完成了。模板定制流程如圖3所示。

newmaker.com

4 結(jié)束語

通過對工藝卡片的組成元素進行分解,將工藝模板抽象為由靜態(tài)格、動態(tài)格、對象格和循環(huán)格組成的實體,借助交互式手段進行工藝模板的繪制與定義,并將構(gòu)建好的工藝模板保存為XML文檔,完成了模板子元素的加載,從而實現(xiàn)了工藝模板的定制過程。實踐證明,這種交互式模板定制技術(shù)對于實現(xiàn)CAPP系統(tǒng)的通用性和商品化具有重要的意義。