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

您的位置:網站首頁 > CAD新聞

CAPP模板定制系統的研究與開發

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

引言

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

1 工藝模板定制系統框架

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

newmaker.com

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

2 工藝模板的信息模型

2.1 工藝模板組成對象分析

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

a.靜態格。在表格設定時靜態格的內容就已固定,它不需要與工藝設計數據庫關聯,由定制模板時寫人數據,工藝員在編制工藝時不能對其修改。

b.動態格。動態格只有一行記錄,該行記錄由"單元格屬性"唯一確定,其內容在工藝設計時由工藝員填寫。動態格中的數據需要和工藝設計數據庫中的表動態關聯,數據的變化直接反映到數據庫中。

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

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

在開發CAPP模板定制系統時將面向對象的思想引人模板的處理中,模板的各種元素可以看作是一系列的對象,對模板的處理細化為對這幾種對象的處理。

2.2 工藝模板的數據描述

系統采用 XML對所有工藝卡片進行描述。

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

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

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

newmaker.com

4 結束語

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