李琳杰,趙偉博,李 權(quán)
(1.陜西工業(yè)職業(yè)技術(shù)學(xué)院 數(shù)控工程學(xué)院,咸陽 712000;2.比亞迪汽車工業(yè)有限公司,深圳 518124)
計算機輔助系統(tǒng)根據(jù)任務(wù)的不同分別發(fā)展出CAD、CAPP、CAM、CAE等,經(jīng)過多年的發(fā)展與改進,這些系統(tǒng)在各自的領(lǐng)域已經(jīng)很難有突破性的進展。由于它們是各自發(fā)展的,導(dǎo)致的結(jié)果是相互之間不兼容,從而形成信息孤島[1,2]。本文研究基于OpenGL的零件設(shè)計平臺,通過開發(fā)自有的三維設(shè)計界面,實現(xiàn)云制造服務(wù)模式下的制造資源服務(wù),將產(chǎn)品模型的圖形表達與工程信息、非工程信息緊密結(jié)合,協(xié)調(diào)設(shè)計和工藝的關(guān)系,補足云制造環(huán)境下設(shè)計平臺以表格形式進行服務(wù)申請的單一模式。
本軟件擬采用經(jīng)典的三層軟件構(gòu)架,分別是用戶操作層、邏輯操作層和數(shù)據(jù)管理層[3,4]。用戶通過點擊按鈕等操作調(diào)用模型信息處理集、模型圖形信息處理集,驅(qū)動單個制造要素模型的建立,然后通過發(fā)送按鈕調(diào)用數(shù)據(jù)發(fā)送處理集,服務(wù)器返回的服務(wù)信息自動調(diào)用數(shù)據(jù)接收處理集,顯示在服務(wù)信息列表上,經(jīng)過用戶確認(rèn)之后,單個制造要素和整體模型連接。軟件整體構(gòu)架如圖1所示。
圖1 軟件整體構(gòu)架
識別碼的第一段編碼是該制造要素所屬的加工行為類的編碼[5~7],如車削為Turning,銑削為Milling(對應(yīng)于編碼01、02)等;第二段編碼是該制造要素的種類,如車外圓為Cylinder,車倒角為Chamfer(同樣對應(yīng)于編碼01、02)等;第三段編碼是該制造要素在同種制造要素組員中的加入時間排列序號,如某個制造要素是車削類車外圓中第五個加入的制造要素,則排序編碼為05;第四段編碼是當(dāng)前面元素是所屬制造要素的面元素,如外圓底面的編碼為01,外圓側(cè)面的編碼為02等;第四段編碼是該面元素的法線方向,由于面元素是在某一軸的垂直面上繪制,所以法線方向即該軸的正負(fù)方向,正方向指定為1,負(fù)方向指定為2。這樣就構(gòu)成了一個完整的識別碼,如圖2所示。
圖2 識別碼的組成
利用上述識別碼命名規(guī)則,在獲取正確的識別碼之后,需要對識別碼進行解析,解析規(guī)則如下:首先,截取解析識別碼第一段編碼,由第一段編碼得到相應(yīng)的加工行為類;其次,截取解析第二段編碼,識別相應(yīng)的制造要素的種類,去獲取所對應(yīng)的動態(tài)結(jié)構(gòu)體數(shù)組;然后,截取解析第三段編碼,得到相應(yīng)制造要素的結(jié)構(gòu)體;接下來截取第四段編碼,確定是制造要素的定位面;最后,得到該選定位面的法線方向。
通過前三段編碼可以得到相應(yīng)制造要素的整體信息,然后獲得該結(jié)構(gòu)體的坐標(biāo)、矢量方向等,但它不是選定面元素的坐標(biāo)和矢量方向。通過第四段和第五段可以得到選定面的坐標(biāo)和矢量方向。
本文采用三層節(jié)點的拓?fù)錁浣Y(jié)構(gòu)設(shè)計,分別是零件層根節(jié)點、制造要素集根節(jié)點、制造要素根節(jié)點。其中,制造要素集根節(jié)點是零件層下的子節(jié)點,而制造要素根節(jié)點是制造要素集下的子節(jié)點,三者逐級傳遞。零件層根節(jié)點下分零件名稱、零件總價、零件版本、零件要素集等子節(jié)點信息。零件要素集根節(jié)點則是對構(gòu)成零件制造要素的集合,當(dāng)零件設(shè)計采用不同的制造要素則在制造要素集下出現(xiàn)對應(yīng)的制造要素。
本文采取獲取點擊制造要素的位置以及制造要素集下所有要素的個數(shù),然后統(tǒng)計制造要素容器下的總個數(shù),首先確認(rèn)是獲取制造要素的歸屬,然后確認(rèn)點擊的制造要素在該制造要素下的位置,如圖3所示。
圖3 制造要素信息拓?fù)錁涓履J?/p>
軟件主界面如圖4所示,第一行為菜單欄,其中“文件”菜單包含新建工程按鈕、打開工程按鈕、保存工程按鈕。第二行為常見制造要素欄、視圖定向欄、模型變換欄,常見制造要素工具欄設(shè)定的普通大眾化的制造要素,視圖定向欄按視角分為正視圖、后視圖、俯視圖、仰視圖、左視圖、右視圖。模型變換欄包含原點復(fù)位、平移、旋轉(zhuǎn)、放大、縮小等功能。兩個主窗口分別是制造要素模型顯示窗口和產(chǎn)品資源窗口,產(chǎn)品資源窗口分為設(shè)計樹子窗口與制造要素樹子窗口,兩者之間可互相切換。
圖4 軟件主界面
通過在“制造要素”按鈕下選擇“車削類”中的“外圓”制造要素,并選擇“聚合”組合關(guān)系,通過點選關(guān)系之后將彈出如圖5所示的參數(shù)化界面。用戶在這個界面輸入建模所需的參數(shù),選擇“下一步”按鈕進入其余信息界面對補充信息進行完善。最后出現(xiàn)圖6所示的車外圓制造要素模型。
同樣在“車削類”中選擇“倒角”制造要素,但是選擇“依附”組合關(guān)系,確認(rèn)倒角和車外圓之間的組合關(guān)系,通過鼠標(biāo)右鍵點擊外圓模型中的一個端面,跳出確認(rèn)按鈕菜單后,系統(tǒng)將會自動識別出面的參數(shù)為倒角行為做準(zhǔn)備,然后進入倒角參數(shù)化界面,可以發(fā)現(xiàn)坐標(biāo)、矢量欄變?yōu)榛疑矣邢鄳?yīng)的數(shù)值。用戶只需輸入剩余的參數(shù)即可。
圖5 參數(shù)化界面
如上述一致,分別建立“車圓角”、“車倒角”、“鉆孔”、“銑鍵槽”等制造要素,并將其發(fā)送至服務(wù)平臺。
本文以O(shè)penGL為圖層接口結(jié)合MFC框架,搭建軟件圖形開發(fā)環(huán)境,研究了制造要素具有唯一性的數(shù)字識別命名規(guī)則方法,在OpenGL的選擇模式下,開發(fā)出制造要素面元識別算法,并給出與產(chǎn)品、制造要素相關(guān)拓?fù)錁浣Y(jié)構(gòu)顯示圖及算法,實現(xiàn)了制造要素信息的顯示與處理。完成了零件設(shè)計平臺的主要界面和功能開發(fā),通過實例運行對平臺進行驗證,結(jié)合功能要求下的制造要素模型顯示及服務(wù)請求顯示,驗證了軟件建模的可行性和適用性。
圖6 顯示模型