計(jì)算機(jī)輔助工藝規(guī)劃(Computer Aided Process Planning CAPP )是根據(jù)產(chǎn)品設(shè)計(jì)所給出的信息進(jìn)行產(chǎn)品的加工方法和制造過(guò)程的設(shè)計(jì),是連接計(jì)算機(jī)輔助設(shè)計(jì)(CAD)和計(jì)算機(jī)輔助制造(CAM)的橋梁和紐帶,是CIMS的重要環(huán)節(jié).CAPP從20世紀(jì)60年代末出現(xiàn)到目前30多年期間,先后出現(xiàn)了在設(shè)計(jì)方法上不同的系統(tǒng):檢索式系統(tǒng)、派生式系統(tǒng)、創(chuàng)成式系統(tǒng)及混合式系統(tǒng)。
本文所提及的螺桿泵CAPP系統(tǒng)主要采用兩種工藝定制模式:檢索式及交互式填卡式.其中檢索式主要實(shí)現(xiàn)對(duì)成熟工藝規(guī)程的檢索和管理,以及查詢和存取現(xiàn)有的工藝文件,適用于重復(fù)件、通用件或輪番生產(chǎn)的定型產(chǎn)品的制造.本文主要介紹交互填卡式模塊的研究與開(kāi)發(fā)過(guò)程。
1、交互填卡式模塊的原理及特點(diǎn)
螺桿泵CAPP系統(tǒng)的設(shè)計(jì)思想,是從實(shí)用化出發(fā),以企業(yè)的實(shí)際應(yīng)用為前提.其中它的交互填卡式模塊是為了彌補(bǔ)檢索式模塊繼承性、靈活性差的缺點(diǎn)而設(shè)計(jì)的,這樣既可以允許工藝設(shè)計(jì)人員根據(jù)其豐富經(jīng)驗(yàn)和企業(yè)當(dāng)前實(shí)際情況靈活的輸人、編輯工藝信息,又可以基于資源信息庫(kù)進(jìn)行相關(guān)資源的選擇性加載,并能根據(jù)具體情況進(jìn)行適當(dāng)?shù)男薷摹?
所謂交互式是指在填寫信息時(shí)系統(tǒng)可以根據(jù)用戶所選填寫項(xiàng),從數(shù)據(jù)庫(kù)中自動(dòng)的加載相關(guān)資源樹(shù),以供用戶選擇使用.
2交互填卡式模塊開(kāi)發(fā)的關(guān)鍵技術(shù)
2.1工藝卡片模板的建立
對(duì)于大多數(shù)企業(yè),其工藝卡片是有其一定的固定格式的(一般工藝卡片根據(jù)信息內(nèi)容及布局可分為三部分:卡頭信息、主卡內(nèi)容信息、表尾信息),所以可以借助VC++中圖形操作方而的函數(shù)(主要用MFC)進(jìn)行上藝卡片模板的建立利用CDC類(簡(jiǎn)單地說(shuō),CDC類主要完成繪圖功能和環(huán)境的建立)在OnDraw()函數(shù)中建立卡片模板,運(yùn)行后效果見(jiàn)圖1。
2.2工藝信息的交互式填寫
2.2.1初始化時(shí)零件總體信息的自動(dòng)加載
CAD人員完成了產(chǎn)品零件的設(shè)計(jì)并提交之后,CAPP人員從PDM數(shù)據(jù)庫(kù)獲取一些零件必要的總體信息(如零件名稱、圖號(hào)、材料等),在打開(kāi)相關(guān)卡片模板時(shí)自動(dòng)連接訪問(wèn)服務(wù)器的數(shù)據(jù)庫(kù),加載這些信息并顯示在卡片中,運(yùn)行后效果見(jiàn)圖2
2.2.2工序圖的加載
通過(guò)FTP編程實(shí)現(xiàn)與服務(wù)器的連接、下載相關(guān)零件的工序圖到本機(jī)指定口錄下,然后加載上序圖到工藝卡中并顯示.
本系統(tǒng)與服務(wù)器建立FTP連接、下載相關(guān)信息,需用到CInternet Session和CFtp Connection類中的有關(guān)函數(shù),具體代碼見(jiàn)有關(guān)書(shū)籍,在此不詳述.工序圖的顯示主要借助于內(nèi)置瀏覽器,4ntoVueX控件,運(yùn)行后效果如圖3所示.
2.2.3文本信息的交互式輸入
本CAPP系統(tǒng)主要通過(guò)兩種方法,實(shí)現(xiàn)文本信息的交互式輸人.
1)基于資源樹(shù)的文本信息輸人,這主要是根據(jù)卡片信息內(nèi)容分3部分(片頭信息、主卡內(nèi)容信息、表尾信息)的特性,具體實(shí)現(xiàn)過(guò)程如下:
(1)卡頭和卡尾信息的輸入.通過(guò)在每個(gè)填表項(xiàng)空格中動(dòng)態(tài)的創(chuàng)建一個(gè)基于CrichEditCtrl的派生類CmyRichEdit實(shí)現(xiàn),類的結(jié)構(gòu)為:
具體實(shí)現(xiàn)步驟是:先計(jì)算出每個(gè)填表項(xiàng)空格的頂點(diǎn)坐標(biāo),存儲(chǔ)在兩個(gè)靜態(tài)的二維數(shù)組中,然后在WM_ RBUTTONDOWN消息的處理函數(shù)中根據(jù)鼠標(biāo)右擊點(diǎn)的坐標(biāo),判斷位置并動(dòng)態(tài)的創(chuàng)建編輯框控件以實(shí)現(xiàn)信息輸入.部分代碼段摘人如下:
(2)主卡內(nèi)容信息的輸人.除了能用卡頭和卡尾那樣的方法輸人信息以外,根據(jù)主卡內(nèi)容部分的信息繁多且專業(yè)性強(qiáng),適合建立數(shù)據(jù)庫(kù)的特點(diǎn),增加了通過(guò)訪問(wèn)數(shù)據(jù)庫(kù)資源,來(lái)實(shí)現(xiàn)信息的檢索與輸人.具體方法是,先右單擊選擇填表項(xiàng)空格(同卡頭和卡尾信息的輸人),左邊工作窗口根據(jù)鼠標(biāo)點(diǎn)擊處的坐標(biāo)來(lái)判斷所需內(nèi)容項(xiàng),從數(shù)據(jù)庫(kù)加載資源樹(shù),然后雙擊左邊工作窗日里架載的資源樹(shù)上的節(jié)點(diǎn),內(nèi)容自動(dòng)加載到右邊工藝卡上.運(yùn)行后效果見(jiàn)圖4.
2)基于編輯對(duì)話框的信息輸人
這種方法在功能上與第一種相似,但實(shí)現(xiàn)技術(shù)上有所不同,其思想是把需要填人的信息,看成為一個(gè)圖形,當(dāng)用鼠標(biāo)左鍵單擊表格中的空白項(xiàng)時(shí),就在點(diǎn)擊處插人,可以通過(guò)選中(選中時(shí),矩形區(qū)域邊緣加人一些小實(shí)心矩形來(lái)表示,見(jiàn)圖5)移動(dòng)到適當(dāng)位置.MFCE;經(jīng)封裝了一個(gè)可以實(shí)現(xiàn)此功能的OLE類CrectTracker于是就直接借鑒,這樣既省去不少的代碼量,又可提高程序的運(yùn)行效率。
3交互填卡式模塊的實(shí)現(xiàn)
交互填卡式模塊的開(kāi)發(fā)環(huán)境為VC++ 6.0,使用的數(shù)據(jù)庫(kù)為MS SQL SERVER2000.運(yùn)行效果見(jiàn)圖6。
4結(jié)論
通過(guò)以上介紹,了解了如何用面向?qū)ο箝_(kāi)發(fā)工具VC++開(kāi)發(fā)螺桿泵LAPP系統(tǒng)中交互填卡式模塊的具體細(xì)節(jié)及方法.本模塊的研究與開(kāi)發(fā)具有一定的實(shí)用性,若再在此基礎(chǔ)上進(jìn)行進(jìn)一步功能上的完善與改進(jìn),一定可以在實(shí)際生產(chǎn)中大幅度的提高工藝定制的效率,節(jié)省大量的人力物力,其應(yīng)用前景令人看好。