隨著工業生產的日益智能化, 開發一套數控加工代碼圖形庫, 以實現高效率、 高準確度地加工各種標準化的零部件, 已經成為一種迫切的需要。使用該圖形庫, 通過人工修改零部件參數, 就可以實現自動生成數控加工代碼并對加工圖形進行預覽的功能。
本文開發的數控加工代碼圖形庫, 是利用 VisualC + + 6. 0 提供的 MFC(Microsoft Foundation Class)動態鏈接庫引導平臺開發的。故該圖形庫是以動態鏈接庫的形式存在, 可以被數控切割機系統的軟件調用。在數控系統加工過程中, 可以實時顯示加工界面, 對各種加工圖形提供數控加工代碼、 圖形預覽和詳細的加工參數。故該圖形庫具有很強的實時性, 是一個功能強大的數控加工代碼圖形庫。該圖形庫現已在火焰切割機數控系統上得到了使用, 并取得良好的效果。
1.圖形庫的結構及功能
1. 1圖形庫的結構
圖形庫中包含了所有待加工的零件圖形, 每一個圖形都對應一個對話框類。這些對話框類封裝了這些加工圖形的所有參數信息, 如包括圖形的幾何要素和加工的起點、 引線長度和引線類型等。每個圖形對應的對話框界面包括的信息有:圖形加工 G 代碼, 圖形預覽,加工參數以及圖形尺寸標注模塊。其中還有一個加工主界面,為在開始加工前,用戶選擇加工圖形而設計。這 個主界面也是一個對話框類,它包括了所有待加工圖形的圖標,用戶可以選擇不同的加工圖形進入相應的加工界面。加工主界面如圖1所示。
1.2 圖形庫的功能
1.2.1 圖形預覽和代碼自動生成
在使用該圖形庫時,用戶先在列表框中選擇所要加工的零部件圖形,然后進入該零部件圖形的加工界面。用戶首先看到的是初始化的加工界面,包括初始化的零部件各參數,相應的圖形預覽和加工G代碼。此時用戶可以根據實際加工的工藝要求對零部件圖形的各個參數(包括圖形的幾何要素和加工的起點、引線長度和引線類型等)進行修改,此時可以看到圖形預覽和G代碼都發生了相應的變化,即實現了改變加工參數,自動生成相應G代碼的功能。
1.2.2 加工路線選擇
加工界面上有一個加工路線的選擇功能,用戶可以通過選擇不同的加工路線,實現不同的走刀路線,同樣此時G代碼也實時的發生變化。通過點擊某一行G代碼,圖形預覽上會用紅線顯示出相應的加工軌跡。
1.2.3 加工圖形尺寸標注
界面上還有一個小的圖形預覽,是用來標注尺寸的。用戶將鼠標點在不同的參數上面,在該圖形預覽上面就會顯示相應的標注。
1.2.4 G代碼保存
該圖形庫還有一個文件保存功能,用戶可以通點擊界面上的保存按鈕,選擇相應的路徑,以文本方式來保存當前加工圖形G代碼。帶圓孔斜邊矩形的加工界面如圖2。
2.圖形庫的開發及算法實現
2.1 圖形庫的開發流程
(1)首先用 AppWizard 向導產生一個基于 MFC 的dll 文件。因為該圖形庫最終目的是被數控切割機系統軟件加載,進行工件加工。
(2)整個動態鏈接庫是基于對話框的,每個圖形對應一個對話框,并與之關聯一個基于對話框的類。在圖形庫工程中,針對每個圖形,載入一個對話框資源,并添加相應的控件。主對話框中需要添加一個列表控件,用來載入所有待加工圖形的圖標。在圖形加工對話框中,需要添加一個列表框,用來顯示加工G代碼。要添加兩個靜態文本框作為繪制圖形的區域還需要添加一些與加工參數相對應的文本框和編輯框,以便用戶設置加工參數,以及一些功能按鈕??丶砑油旰螅瑸閷υ捒騽摻ㄒ粋€相應的類,并為對話框類命名。
(3)為對話框控件添加相應的變量, 此項操作在ClassWizard 上部的 Member Variables 選項卡中完成。
(4)為控件添加一些消息響應函數。如在主對話框中添加 OnDblclkList1(NMHDR*pNMHDR,LRE-SULT* pResult)來響應用戶雙擊加工圖形圖標, 進而進入加工界面。同理在加工界面對話框中也要加一些消息響應函數,來完成一些特定的功能。如添加 On-ChangeEditHeight() 來響應用戶改變工藝參數;添加OnButtonsave()來響應用戶點擊保存按鈕, 保存加工 G代碼。
(5)為對話框類添加一些成員變量和成員函數。成員變量如 CString m_strYinru 記錄了引入線類型,CPoint m_Drect 記錄了加工圖形的一些關鍵點的坐標等。成員函數如 void Updatecode(),void PreView()等,功能分別是更新 G 代碼,更新圖形各關鍵點的坐標。
2.2 圖形庫的算法實現
整個圖形庫是基于對話框的, 每個圖形對應一個對話框, 并關聯一個基于對話框的類。圖形庫主對話框通過調用 DoModal()函數與各個圖形對話框之間聯系, 進入不同的加工圖形界面時, 分別調用 OnInitDia-log(),OnPaint()函數, 初始化對話框, 繪制初始加工圖形。進行參數更新后, 調用相應的更新函數, 更新 G代碼和圖形預覽。程序得流程圖如圖 3 所示
初始化對話框部分源代碼如下:
BOOL CSanJiaoXing::OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowPos(&wndTopMost, 0, 0, 1024, 768, SWP_DRAWFRAME);/ /設置窗口全屏
HICON m_icon; / /載入圖標資源
m_icon = AfxGetApp() - > LoadIcon(IDI_ICON2);
m_bButtonSave. SetIcon(m_icon);
m_icon = AfxGetApp() - > LoadIcon(IDI_ICON3);
m_bCancel. SetIcon(m_icon);
m_cYinRu. AddString(外引入);
/ /設置并初始化加工類型
m_cYinRu. AddString(內引入);
m_cYinRu. SetCurSel(1);
m_cListDisplay. AddString(G21);
/ /載入 G 代碼
m_cListDisplay. AddString(G91);
m_cListDisplay. AddString(G00 X0 Y0);
m_cListDisplay. AddString(M07);
m_cListDisplay. AddString(G42)
………
m_cListDisplay. AddString(G40);
return TRUE;
/ / return TRUE unless you set the focus to a control
}
3 . 圖形庫的應用實例
本文開發的圖形庫已使用于火焰切割機數控系統上, 下面以此為例來簡要介紹一下圖形庫的使用。
圖形庫是一個動態鏈接庫, 需要被上位機軟件加載才能使用。將圖形庫生成的 CGraphiclib. lib 和 Gco-deCom. lib 庫文件加入切割機軟件工程目錄中。然后在切割機軟件工程設置菜單中, 選擇 Link 選項卡, 將這兩個庫文件包含進來, 切割機軟件就可以調用圖形庫了。
圖 4 為切割機軟件運行時的文件畫面。點擊 F5
鍵即調用圖形庫入口函數 extern C __declspec(dl-
lexport) void ShowDlg(void), 進入圖形庫加工主界面
如圖 1。選擇所要加工的零件圖形進入加工界面, 根
據一定的工藝要求設置加工參數, 此時將自動生成相
應 G 代碼。點擊保存按鈕, 將 G 代碼保存在一定路徑
中。然后將界面返回到切割機文件畫面如圖 4, 點擊
文件管理, 載入 G 代碼, 最后點擊自動加工按鈕, 進行
工件加工。
4.結語
本文介紹了一種基于 MFC 動態鏈接庫的數控切割機系統加工代碼圖形庫的設計。在數控加工時, 操作人員通過修改圖形加工的工藝參數, 圖形庫能夠自動更新相應的加工 G 代碼, 和圖形預覽, 故具有很強的實時性。比起人工修改 G 代碼, 大大提高了效率和準確性。
另外, 該圖形庫以一個動態鏈接庫的形式存在, 即可以被任何基于 Windows 平臺開發的數控系統軟件調用。故這種圖形庫不局限于已經使用的火焰切割機數控系統, 只要遵循特定數控系統加工代碼格式, 就可很方便的移植到其他數控系統上, 具有很強的通用性。
此外, 該圖形庫包含的圖形資源豐富, 即包含了切割機系統加工的絕大部分通用零件圖形, 且易于擴展,以適應加工出更多種零部件圖形的需求。
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com