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