甘 明 袁正萍 陳小亮
(中國(guó)地質(zhì)大學(xué)研究生院,湖北武漢 430074)
數(shù)控切割機(jī)系統(tǒng)加工代碼圖形庫(kù)的開(kāi)發(fā)
甘 明 袁正萍 陳小亮
(中國(guó)地質(zhì)大學(xué)研究生院,湖北武漢 430074)
詳細(xì)介紹了數(shù)控切割機(jī)系統(tǒng)加工代碼圖形庫(kù)的開(kāi)發(fā)過(guò)程。利用的開(kāi)發(fā)工具是Visual C++6.0及其MFC類(lèi)庫(kù),實(shí)現(xiàn)了對(duì)各種加工圖形的預(yù)覽,以及相應(yīng)的數(shù)控加工代碼的自動(dòng)生成。同時(shí)通過(guò)修改被加工圖形的各個(gè)工藝參數(shù),可以實(shí)時(shí)得到相應(yīng)的加工圖形的預(yù)覽和加工代碼,以適應(yīng)不同工藝需求。
圖形庫(kù) Visual C++6.0 數(shù)控加工代碼 預(yù)覽
隨著工業(yè)生產(chǎn)的日益智能化,開(kāi)發(fā)一套數(shù)控加工代碼圖形庫(kù),以實(shí)現(xiàn)高效率、高準(zhǔn)確度地加工各種標(biāo)準(zhǔn)化的零部件,已經(jīng)成為一種迫切的需要。使用該圖形庫(kù),通過(guò)人工修改零部件參數(shù),就可以實(shí)現(xiàn)自動(dòng)生成數(shù)控加工代碼并對(duì)加工圖形進(jìn)行預(yù)覽的功能。
本文開(kāi)發(fā)的數(shù)控加工代碼圖形庫(kù),是利用Visual C++6.0提供的MFC(Microsoft Foundation Class)動(dòng)態(tài)鏈接庫(kù)引導(dǎo)平臺(tái)開(kāi)發(fā)的。故該圖形庫(kù)是以動(dòng)態(tài)鏈接庫(kù)的形式存在,可以被數(shù)控切割機(jī)系統(tǒng)的軟件調(diào)用。在數(shù)控系統(tǒng)加工過(guò)程中,可以實(shí)時(shí)顯示加工界面,對(duì)各種加工圖形提供數(shù)控加工代碼、圖形預(yù)覽和詳細(xì)的加工參數(shù)。故該圖形庫(kù)具有很強(qiáng)的實(shí)時(shí)性,是一個(gè)功能強(qiáng)大的數(shù)控加工代碼圖形庫(kù)。該圖形庫(kù)現(xiàn)已在火焰切割機(jī)數(shù)控系統(tǒng)上得到了使用,并取得良好的效果。
圖形庫(kù)中包含了所有待加工的零件圖形,每一個(gè)圖形都對(duì)應(yīng)一個(gè)對(duì)話(huà)框類(lèi)。這些對(duì)話(huà)框類(lèi)封裝了這些加工圖形的所有參數(shù)信息,如包括圖形的幾何要素和加工的起點(diǎn)、引線(xiàn)長(zhǎng)度和引線(xiàn)類(lèi)型等。每個(gè)圖形對(duì)應(yīng)的對(duì)話(huà)框界面包括的信息有:圖形加工G代碼,圖形預(yù)覽,加工參數(shù)以及圖形尺寸標(biāo)注模塊。其中還有一個(gè)加工主界面,為在開(kāi)始加工前,用戶(hù)選擇加工圖形而設(shè)計(jì)[1]。這個(gè)主界面也是一個(gè)對(duì)話(huà)框類(lèi),它包括了所有待加工圖形的圖標(biāo),用戶(hù)可以選擇不同的加工圖形進(jìn)入相應(yīng)的加工界面。加工主界面如圖1所示。

1.2.1 圖形預(yù)覽和G代碼自動(dòng)生成
在使用該圖形庫(kù)時(shí),用戶(hù)先在列表框中選擇所要加工的零部件圖形,然后進(jìn)入該零部件圖形的加工界面。用戶(hù)首先看到的是初始化的加工界面,包括初始化的零部件各參數(shù),相應(yīng)的圖形預(yù)覽和加工G代碼。此時(shí)用戶(hù)可以根據(jù)實(shí)際加工的工藝要求對(duì)零部件圖形的各個(gè)參數(shù)(包括圖形的幾何要素和加工的起點(diǎn)、引線(xiàn)長(zhǎng)度和引線(xiàn)類(lèi)型等)進(jìn)行修改,此時(shí)可以看到圖形預(yù)覽和G代碼都發(fā)生了相應(yīng)的變化,即實(shí)現(xiàn)了改變加工參數(shù),自動(dòng)生成相應(yīng)G代碼的功能。
1.2.2 加工路線(xiàn)選擇
加工界面上有一個(gè)加工路線(xiàn)的選擇功能,用戶(hù)可以通過(guò)選擇不同的加工路線(xiàn),實(shí)現(xiàn)不同的走刀路線(xiàn),同樣此時(shí)G代碼也實(shí)時(shí)的發(fā)生變化。通過(guò)點(diǎn)擊某一行G代碼,圖形預(yù)覽上會(huì)用紅線(xiàn)顯示出相應(yīng)的加工軌跡。
1.2.3 加工圖形尺寸標(biāo)注
界面上還有一個(gè)小的圖形預(yù)覽,是用來(lái)標(biāo)注尺寸的。用戶(hù)將鼠標(biāo)點(diǎn)在不同的參數(shù)上面,在該圖形預(yù)覽上面就會(huì)顯示相應(yīng)的標(biāo)注。
1.2.4 G代碼保存
該圖形庫(kù)還有一個(gè)文件保存功能,用戶(hù)可以通過(guò)點(diǎn)擊界面上的保存按鈕,選擇相應(yīng)的路徑,以文本方式來(lái)保存當(dāng)前加工圖形G代碼。帶圓孔斜邊矩形的加工界面如圖2。

(1)首先用AppWizard向?qū)Мa(chǎn)生一個(gè)基于MFC的dll文件。因?yàn)樵搱D形庫(kù)最終目的是被數(shù)控切割機(jī)系統(tǒng)軟件加載,進(jìn)行工件加工。
(2)整個(gè)動(dòng)態(tài)鏈接庫(kù)是基于對(duì)話(huà)框的,每個(gè)圖形對(duì)應(yīng)一個(gè)對(duì)話(huà)框,并與之關(guān)聯(lián)一個(gè)基于對(duì)話(huà)框的類(lèi)。在圖形庫(kù)工程中,針對(duì)每個(gè)圖形,載入一個(gè)對(duì)話(huà)框資源,并添加相應(yīng)的控件。主對(duì)話(huà)框中需要添加一個(gè)列表控件,用來(lái)載入所有待加工圖形的圖標(biāo)。在圖形加工對(duì)話(huà)框中,需要添加一個(gè)列表框,用來(lái)顯示加工G代碼。要添加兩個(gè)靜態(tài)文本框作為繪制圖形的區(qū)域,還需要添加一些與加工參數(shù)相對(duì)應(yīng)的文本框和編輯框,以便用戶(hù)設(shè)置加工參數(shù),以及一些功能按鈕。控件添加完后,為對(duì)話(huà)框創(chuàng)建一個(gè)相應(yīng)的類(lèi),并為對(duì)話(huà)框類(lèi)命名。
(3)為對(duì)話(huà)框控件添加相應(yīng)的變量,此項(xiàng)操作在ClassWizard上部的Member Variables選項(xiàng)卡中完成。
(4)為控件添加一些消息響應(yīng)函數(shù)。如在主對(duì)話(huà)框中添加 OnDblclkList1(NMHDR*pNMHDR,LRESULT*pResult)來(lái)響應(yīng)用戶(hù)雙擊加工圖形圖標(biāo),進(jìn)而進(jìn)入加工界面。同理在加工界面對(duì)話(huà)框中也要加一些消息響應(yīng)函數(shù),來(lái)完成一些特定的功能。如添加On-ChangeEditHeight()來(lái)響應(yīng)用戶(hù)改變工藝參數(shù);添加OnButtonsave()來(lái)響應(yīng)用戶(hù)點(diǎn)擊保存按鈕,保存加工G代碼。
(5)為對(duì)話(huà)框類(lèi)添加一些成員變量和成員函數(shù)。成員變量如CString m_strYinru記錄了引入線(xiàn)類(lèi)型,CPoint m_Drect[17]記錄了加工圖形的一些關(guān)鍵點(diǎn)的坐標(biāo)等。成員函數(shù)如void Updatecode(),void PreView()等,功能分別是更新G代碼,更新圖形各關(guān)鍵點(diǎn)的坐標(biāo)[2]。
整個(gè)圖形庫(kù)是基于對(duì)話(huà)框的,每個(gè)圖形對(duì)應(yīng)一個(gè)對(duì)話(huà)框,并關(guān)聯(lián)一個(gè)基于對(duì)話(huà)框的類(lèi)。圖形庫(kù)主對(duì)話(huà)框通過(guò)調(diào)用DoModal()函數(shù)與各個(gè)圖形對(duì)話(huà)框之間聯(lián)系,進(jìn)入不同的加工圖形界面時(shí),分別調(diào)用OnInitDialog(),OnPaint()函數(shù),初始化對(duì)話(huà)框,繪制初始加工圖形。進(jìn)行參數(shù)更新后,調(diào)用相應(yīng)的更新函數(shù),更新G代碼和圖形預(yù)覽。程序得流程圖如圖3所示。

初始化對(duì)話(huà)框部分源代碼如下:


本文開(kāi)發(fā)的圖形庫(kù)已使用于火焰切割機(jī)數(shù)控系統(tǒng)上,下面以此為例來(lái)簡(jiǎn)要介紹一下圖形庫(kù)的使用。
圖形庫(kù)是一個(gè)動(dòng)態(tài)鏈接庫(kù),需要被上位機(jī)軟件加載才能使用。將圖形庫(kù)生成的CGraphiclib.lib和GcodeCom.lib庫(kù)文件加入切割機(jī)軟件工程目錄中。然后在切割機(jī)軟件工程設(shè)置菜單中,選擇Link選項(xiàng)卡,將這兩個(gè)庫(kù)文件包含進(jìn)來(lái),切割機(jī)軟件就可以調(diào)用圖形庫(kù)了。

圖4為切割機(jī)軟件運(yùn)行時(shí)的文件畫(huà)面。點(diǎn)擊F5鍵即調(diào)用圖形庫(kù)入口函數(shù)extern C __declspec(dllexport)void ShowDlg(void),進(jìn)入圖形庫(kù)加工主界面如圖1。選擇所要加工的零件圖形進(jìn)入加工界面,根據(jù)一定的工藝要求設(shè)置加工參數(shù),此時(shí)將自動(dòng)生成相應(yīng)G代碼。點(diǎn)擊保存按鈕,將G代碼保存在一定路徑中。然后將界面返回到切割機(jī)文件畫(huà)面如圖4,點(diǎn)擊文件管理,載入G代碼,最后點(diǎn)擊自動(dòng)加工按鈕,進(jìn)行工件加工。
本文介紹了一種基于MFC動(dòng)態(tài)鏈接庫(kù)的數(shù)控切割機(jī)系統(tǒng)加工代碼圖形庫(kù)的設(shè)計(jì)。在數(shù)控加工時(shí),操作人員通過(guò)修改圖形加工的工藝參數(shù),圖形庫(kù)能夠自動(dòng)更新相應(yīng)的加工G代碼,和圖形預(yù)覽,故具有很強(qiáng)的實(shí)時(shí)性。比起人工修改G代碼,大大提高了效率和準(zhǔn)確性。
另外,該圖形庫(kù)以一個(gè)動(dòng)態(tài)鏈接庫(kù)的形式存在,即可以被任何基于Windows平臺(tái)開(kāi)發(fā)的數(shù)控系統(tǒng)軟件調(diào)用。故這種圖形庫(kù)不局限于已經(jīng)使用的火焰切割機(jī)數(shù)控系統(tǒng),只要遵循特定數(shù)控系統(tǒng)加工代碼格式,就可很方便的移植到其他數(shù)控系統(tǒng)上,具有很強(qiáng)的通用性。
此外,該圖形庫(kù)包含的圖形資源豐富,即包含了切割機(jī)系統(tǒng)加工的絕大部分通用零件圖形,且易于擴(kuò)展,以適應(yīng)加工出更多種零部件圖形的需求。
1 劉俊,楊代華,歐陽(yáng)才校.基于OpenGL的數(shù)控加工代碼圖形庫(kù)的開(kāi)發(fā)[J].制造技術(shù)與機(jī)床,2009(1)
2 劉婷婷.基于Visual C++6.0的圖形自動(dòng)編程系統(tǒng)的研究[D].北京:中國(guó)農(nóng)業(yè)大學(xué),2006.
3 高偉衛(wèi),楊勝?gòu)?qiáng),張滿(mǎn)棟.基于Visual C++6.0基礎(chǔ)類(lèi)庫(kù)的圖像顯示[J].機(jī)械管理開(kāi)發(fā).2006.
4 郭兆榮,李箐,王彥.Visual C++OpenGL應(yīng)用程序開(kāi)發(fā)[M].北京:人民郵電出版社,2006.
如果您想發(fā)表對(duì)本文的看法,請(qǐng)將文章編號(hào)填入讀者意見(jiàn)調(diào)查表中的相應(yīng)位置。
Development of NC Machining Code Graphic Library in NC Cutting Machine
GAN Ming,YUAN Zhengping,CHEN Xiaoliang
(Graduate School of China University of Geosciences,Wuhan 430074,CHN)
The development process of NC machining Code Graphic Library in NC cutting machine is described in detail in this paper.The development tools used for the Graphic Library is the Visual C+ +6.0 and MFC class library,which achieve the preview of a variety of processing graphics and Automatic generation of the corresponding CNC machining code.At the same time,by modifying the various processing parameters of processing graphics,you can get the corresponding preview of a variety of processing graphics and CNC machining code in real time to achieve the different process requirement.
Graphics Library;Visual C++6.0;NC Machining Code;Preview
TP21/27
A
甘明,女,1958年生,副教授,高級(jí)工程師,主要研究方向自動(dòng)控制及檢測(cè)技術(shù)。
(編輯 周富榮)(
2009-09-07)
10224