專利名稱:一種數(shù)控加工路線的確定方法、系統(tǒng)及數(shù)控設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于工業(yè)數(shù)控領(lǐng)域,尤其涉及一種數(shù)控加工路線的確定方法、系統(tǒng)及數(shù)控設(shè)備。
背景技術(shù):
在工業(yè)數(shù)控程序(NC)中,對一塊PCB進(jìn)行鉆取1500個不同坐標(biāo)的孔,那么數(shù)控程序中必須包含1500個不相同的坐標(biāo)數(shù)據(jù),在鉆頭從機(jī)器原點開始?xì)v遍所有坐標(biāo)后返回原點,這就構(gòu)成了一個閉環(huán)的運(yùn)動路線。但是,在這大型的點陣中,鉆頭移動可能的路線數(shù)有1500!之多,顯然如果通過人工來畫取一條總路程最短的路線是難以實現(xiàn)的。
針對該問題,存在不少算法解決此類問題,例如近鄰法(nearest neighbor)、模擬退火算法(Recuit Algorithm)、遺傳算法以及神經(jīng)網(wǎng)絡(luò)算法等,但是該算法往往造成實際程序流程復(fù)雜、計算規(guī)模成倍加大,給最終軟件的運(yùn)行速度帶來很大的障礙。
發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提供一種數(shù)控加工路線的確定方法,旨在解決根據(jù)現(xiàn)有技術(shù)確定的最短路徑造成實際的程序復(fù)雜、運(yùn)行速度慢的問題。
本發(fā)明實施例是這樣實現(xiàn)的,一種數(shù)控加工路線的確定方法,所述方法包括下述步驟 獲取移動點陣的坐標(biāo)數(shù)據(jù); 以原點為起始點排列所述移動點陣; 根據(jù)所述起始點,確定一個最小三角形回路; 在剩余的移動點陣中按照離所述起始點極距離由小到大順序排序,逐一插入所述最小三角形回路中的不同位置形成數(shù)控加工路線,所述位置能滿足形成的數(shù)控加工路線為最短回路。
本發(fā)明實施例的另一目的在于提供一種數(shù)控加工路線的確定系統(tǒng),所述系統(tǒng)包括 坐標(biāo)數(shù)據(jù)獲取模塊,用于獲取移動點陣的坐標(biāo)數(shù)據(jù); 點陣排序模塊,用于以原點為起始點排列所述移動點陣; 最小三角回路確定模塊,用于根據(jù)所述起始點,確定一個最小三角形回路;以及 最短回路數(shù)列確定模塊,用于在剩余的移動點陣中按照離所述起始點極距離由小到大順序排序,逐一插入所述最小三角形回路中的不同位置形成數(shù)控加工路線,所述位置能滿足形成的數(shù)控加工路線為最短的回路。
本發(fā)明實施例的另一目的在于提供一種數(shù)控設(shè)備,包括數(shù)控加工路線的確定系統(tǒng),所述系統(tǒng)包括 坐標(biāo)數(shù)據(jù)獲取模塊,用于獲取移動點陣的坐標(biāo)數(shù)據(jù); 點陣排序模塊,用于以原點為起始點排列所述移動點陣; 最小三角回路確定模塊,用于根據(jù)所述起始點,確定一個最小三角形回路;以及 最短回路數(shù)列生成模塊,用于在剩余的移動點陣中按照離所述起始點極距離由小到大順序排序,逐一插入所述最小三角形回路中的不同位置形成數(shù)控加工路線,所述位置能滿足形成的數(shù)控加工路線為最短的回路。
在本發(fā)明實施例中,首先通過搭建一個最小的三角形回路(三個點的點陣中回路是唯一的),并在剩余的點陣中按照離起始點極距離小到大順序排序,逐一試探插入回路中的不同位置以滿足構(gòu)造新的最短回路,通過這種不斷的試探插入迭代以完成所有點的路線排序。通過該方式獲得最短回路,為后續(xù)的編寫NC優(yōu)化程序提供了一個更可行、更快捷捷的方法。
圖1是本發(fā)明實施例提供的數(shù)控加工路線的確定方法的實現(xiàn)流程圖; 圖2是本發(fā)明實施例提供的以原點為起始點排列點陣的流程圖; 圖3是本發(fā)明實施例提供的選取4個點進(jìn)行新的點陣回路排序的實現(xiàn)流程圖; 圖4是本發(fā)明實施例提供的數(shù)控加工路線的確定系統(tǒng)框圖。
具體實施例方式 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
在本發(fā)明實施例中,假設(shè)有一個圖g=(v,e),其中v是頂點集,e是邊集,設(shè)d=(dij)是由頂點i和頂點j之間的距離所組成的距離矩陣,旅行商問題(TSP)就是要求出一條通過所有頂點且每個頂點只通過一次的具有最短距離的回路,若對于點陣v={v1,v2,v3,...,vn}的一個訪問順序為t=(t1,t2,t3,...,ti,...,tn),其中ti∈v(i=1,2,3,...,n),且記tn+1=t1,則該TSP問題的數(shù)學(xué)模型為min 1=σd(t(i),t(i+1))其中(i=1,...,n)。
在數(shù)控程序問題中,例如PCB的生產(chǎn)加工,機(jī)器需要運(yùn)行NC程序歷遍所有坐標(biāo)點陣進(jìn)行鉆孔,需要?dú)v遍所有孔坐標(biāo)進(jìn)行元器件裝著,而拆分NC程序中所包含的一切坐標(biāo)點陣,進(jìn)行有針對性的路線排列取向。
本發(fā)明實施例中,針對這種路線的排列取向,提出一個簡便、有效的算法,該實施例選擇具有普遍使用規(guī)模的元器件裝著NC程序(約200個不等點陣坐標(biāo))數(shù)據(jù)作為分析研究對象,其思路是首先通過搭建一個最小的三角形回路(三個點的點陣中回路是唯一的),并在剩余的點陣中按照離起始點極距離小到大順序排序,逐一試探插入回路中的不同位置以滿足構(gòu)造新的最短回路,通過這種不斷的試探插入迭代以完成所有點的路線排序。
圖1示出了本發(fā)明實施例提供的數(shù)控加工路線的確定方法的實現(xiàn)流程,其詳細(xì)步驟如下所述 在步驟S101中,獲取移動點陣的坐標(biāo)數(shù)據(jù)。
在步驟S102中,以原點(0,0)為起始點排列點陣。在數(shù)控程序NC中,必須從原點開始,歷遍所有點坐標(biāo)元素之后,再復(fù)位原點結(jié)束,所以選取原點(0,0)作為起始與結(jié)束點。
在步驟S103中,以原點(0,0)作為頂點構(gòu)造初始的最小三角形回路。
在本發(fā)明實施例中,選擇臨近原點(0,0)的最近點以及次最近點做為最小三角形的另外兩個頂點,構(gòu)造一最小三角形回路。
在步驟S104中,根據(jù)該構(gòu)造的最小三角形回路,選取第4個點進(jìn)行新的點陣數(shù)控加工路線的確定,即構(gòu)造新的點陣回路,其中該第4個點滿足將此點放入三角形回路的各條邊中計算各自的總回路長度最小的條件。
在步驟S105中,根據(jù)步驟S104的點陣回路排序方法,將該程序點陣中其它剩余點都插入回路,同樣需要滿足將此點放入三角形回路的各條邊中計算各自的總回路長度最小的條件。
在本發(fā)明實施例中,該排序方法始終處于一個有限的計算范圍內(nèi),可以計算出Vn個點陣排序次數(shù),按照從第四個點開始探插,對前一個確定的數(shù)控加工路線(最短回路)而言是三角形,也就是V4點對三條邊的回路插入次數(shù)是3次;第五個點V5則需要插入4次,...,第n個點則需要n-1次,所以總次數(shù)為(3+(n-1))×(n-3)/2。
在步驟S106中,在剩余的移動點陣中,按照離所述起始點極距離由小到大順序排序,逐一插入最短回路中的不同位置形成數(shù)控加工路線,該位置能滿足形成的數(shù)控加工路線為最新的最短回路,并將該最短回路數(shù)列重新返回數(shù)控NC程序。
作為本發(fā)明的一個實施例,圖2示出了本發(fā)明實施例提供的以原點為起始點排列移動點陣的流程,其詳細(xì)步驟如下所述 在步驟S201中,讀取數(shù)控NC程序數(shù)據(jù),以獲取移動點陣的坐標(biāo)數(shù)據(jù)。
在步驟S202中,選取原點(0,0)作為起始與結(jié)束點。
在步驟S203中,將第一個點i的極距數(shù)值作為最小的極距參數(shù)minL,該i點為除去原點之外的點,其中i=1,...,n-1,該搜索過程為外循環(huán)過程,其中n為點陣。
在步驟S204中,搜索查找其它所有點j,其中j=i+1,...,n,該搜索過程為內(nèi)循環(huán)過程。
在步驟S205中,判斷該點j的極距L是否小于該最小的極距參數(shù)minL,是則執(zhí)行步驟S206,否則執(zhí)行步驟S207。
在步驟S206中,當(dāng)判斷該點j的極距L<minL時,則將該點j的極距L置為最小的極距參數(shù)minL,同時將第i、j位置點所對應(yīng)的數(shù)據(jù)相互交換。
在步驟S207中,當(dāng)判斷該點j的極距L>minL時,繼續(xù)搜索下一個點,即j=j(luò)+1。
在步驟S208中,根據(jù)該搜索,獲取到最短極距點i,該過程實現(xiàn)了一次該內(nèi)循環(huán),然后將該點i移動至數(shù)列第一位,使i=i+1,進(jìn)行下一次的外循環(huán)。
在本發(fā)明實施例中,根據(jù)該內(nèi)循環(huán)、外循環(huán)實現(xiàn)了點陣的排序。
作為本發(fā)明的另一個實施例,圖3示出了本發(fā)明實施例提供的選取4個點進(jìn)行新的點陣回路排序的實現(xiàn)流程,其詳細(xì)步驟如下所述 在步驟S301中,在剩余的點陣中,即將第4個點插到回路中,按照默認(rèn)排序的數(shù)控加工路線計算該路線的總路程,即按照V1→V2→V3→V4的順序,并將該路程數(shù)值置為當(dāng)前最短回路參數(shù)值minD。
在步驟S302中,將第4個點插入到數(shù)控加工路線的不同路段,構(gòu)造新的數(shù)控加工路線,計算每個不同路線的路程數(shù)值D,即計算路線V1→V2→V4→V3、V1→V4→V2→V3各自的路程數(shù)值。
在步驟S303中,判斷步驟S302中計算的路程數(shù)值D是否小于最短回路參數(shù)值minD,是則執(zhí)行步驟S304,否則執(zhí)行步驟S305。
在步驟S304中,當(dāng)計算的路程數(shù)值D小于最短回路參數(shù)值minD時,則將該路程數(shù)值D對應(yīng)的排列位置為最新的最短回路,即該最新的最短回路為確定的數(shù)控加工路線,并將該路程數(shù)值D置為最短回路參數(shù)值minD。
在步驟S305中,當(dāng)計算的路程數(shù)值D不小于最短回路參數(shù)值minD時,則保留第4點在原minD所對應(yīng)的排列位置為構(gòu)造的最新的最短回路,即該最新的最短回路為確定的數(shù)控加工路線。
在本發(fā)明實施例中,該數(shù)控程序的點陣中存在n個點,該過程為第四個點的最短回路點陣的排序?qū)崿F(xiàn)過程,即數(shù)控加工路線的確定過程,其它點(第5個點,第6個點,......,第n個點)的最短回路點陣的排序?qū)崿F(xiàn)過程也類似,即插入到數(shù)控加工路線的點需要滿足該數(shù)控加工路線為最短回路,不再贅述。
圖4示出了本發(fā)明實施例提供的數(shù)控加工路線的確定系統(tǒng)的框圖,為了便于說明,圖中僅示出了與本發(fā)明實施例相關(guān)的部分,該數(shù)控加工路線的確定系統(tǒng)內(nèi)置于數(shù)控設(shè)備的軟件單元、硬件單元或者軟硬件結(jié)合單元。
該數(shù)控加工路線的確定系統(tǒng)包括坐標(biāo)數(shù)據(jù)獲取模塊11、點陣排序模塊12、最小三角回路確定模塊13以及最短回路數(shù)列確定模塊14,其中,坐標(biāo)數(shù)據(jù)獲取模塊11獲取移動點陣的坐標(biāo)數(shù)據(jù),點陣排序模塊11以原點為起始點排列點陣,最小三角回路確定模塊12根據(jù)該起始點,確定一個最小三角形回路,然后,最短回路數(shù)列確定模塊13在剩余的移動點陣中按照離所述起始點極距離由小到大順序排序,逐一插入所述最小三角形回路中的不同位置形成數(shù)控加工路線,所述位置能滿足形成的數(shù)控加工路線為最短的回路。
作為本發(fā)明的一個實施例,該點陣排序模塊12具體包括最小極距參數(shù)設(shè)置模塊121、極距判斷模塊122以及排序處理模塊123,其中,最小極距參數(shù)設(shè)置模塊121將第一個點i的極距數(shù)值設(shè)置為最小極距參數(shù)minL,其中i=1,...,n-1;n為點陣;極距判斷模塊122判斷其它點j的極距L是否小于最小極距參數(shù)minL,其中j=i+1,...,n;當(dāng)判斷點j的極距L<minL時,排序處理模塊123則將點j的極距L置為為最小極距參數(shù)minL,同時將第i、j位置點所對應(yīng)的數(shù)據(jù)相互交換。
作為本發(fā)明的另一個實施例,最短回路數(shù)列確定模塊14具體包括配置模塊141、數(shù)控加工路線構(gòu)造模塊142、路程數(shù)值計算模塊143、路程數(shù)值判斷模塊144以及最短回路處理模塊145,其中,配置模塊141在剩余的點陣中,將根據(jù)點陣默認(rèn)排序的數(shù)控加工路線計算的路程置為當(dāng)前最短回路參數(shù)值,其中陣默認(rèn)排序為在剩余的點陣中按照離起始點極距離由小到大的順序;數(shù)控加工路線構(gòu)造模塊142構(gòu)造新的點陣的數(shù)控加工路線;路程數(shù)值計算模塊143計算每個不同數(shù)控加工路線的路程數(shù)值;路程數(shù)值判斷模塊144判斷該回路的路程數(shù)值是否小于最短回路參數(shù)值;當(dāng)該路程數(shù)值判斷模塊144判斷數(shù)控加工路線的路程數(shù)值小于最短回路參數(shù)值時,最短回路處理模塊145將路程數(shù)值對應(yīng)的排列位置的數(shù)控加工路線作為最新的最短回路,并將該路程數(shù)值置為最短回路參數(shù)值。
在本發(fā)明實施例中,首先通過搭建一個最小的三角形回路(三個點的點陣中回路是唯一的),并在剩余的點陣中按照離起始點極距離小到大順序排序,逐一試探插入回路中的不同位置以滿足構(gòu)造新的最短回路,通過這種不斷的試探插入迭代以完成所有點的路線排序。通過該方式獲得最短回路,為后續(xù)的編寫NC優(yōu)化程序提供了一個更可行、更快捷的方法。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種數(shù)控加工路線的確定方法,其特征在于,所述方法包括下述步驟
獲取移動點陣的坐標(biāo)數(shù)據(jù);
以原點為起始點排列所述移動點陣;
根據(jù)所述起始點,確定一個最小三角形回路;
在剩余的移動點陣中按照離所述起始點極距離由小到大順序排序,逐一插入所述最小三角形回路中的不同位置形成數(shù)控加工路線,所述位置能滿足形成的數(shù)控加工路線為最短回路。
2、如權(quán)利要求1所述的數(shù)控加工路線的確定方法,其特征在于,所述以原點為起始點排列點陣的步驟具體包括下述步驟
將第一個點i的極距數(shù)值設(shè)置為最小極距參數(shù),其中i=1,...,n-1;n為點陣;
判斷其它點j的極距L是否小于所述最小極距參數(shù)minL,其中j=i+1,...,n;
當(dāng)判斷所述點j的極距L<minL時,則將該點j的極距L置為為最小的極距參數(shù)minL,同時將第i、j位置點所對應(yīng)的數(shù)據(jù)相互交換。
3、如權(quán)利要求1所述的數(shù)控加工路線的確定方法,其特征在于,所述在剩余的點陣中按照離所述起始點極距離由小到大順序排序,逐一插入所述最小三角形回路中的不同位置形成數(shù)控加工路線,所述位置能滿足形成的回路是最短回路的步驟具體包括下述步驟
在剩余的點陣中,將根據(jù)點陣默認(rèn)排序的數(shù)控加工路線計算的路程配置為當(dāng)前最短回路參數(shù)值,其中所述陣默認(rèn)排序為在剩余的點陣中按照離所述起始點極距離由小到大的順序;
重新構(gòu)造新的點陣的數(shù)控加工路線,并計算每個不同數(shù)控加工路線的路程數(shù)值;
判斷所述數(shù)控加工路線的路程數(shù)值是否小于所述最短回路參數(shù)值;
當(dāng)所述數(shù)控加工路線的路程數(shù)值小于所述最短回路參數(shù)值時,將所述路程數(shù)值對應(yīng)的排列位置的數(shù)控加工路線作為最新的最短回路,并將所述路程數(shù)值置為最短回路參數(shù)值。
4、一種數(shù)控加工路線的確定系統(tǒng),其特征在于,所述系統(tǒng)包括
坐標(biāo)數(shù)據(jù)獲取模塊,用于獲取移動點陣的坐標(biāo)數(shù)據(jù);
點陣排序模塊,用于以原點為起始點排列所述移動點陣;
最小三角回路確定模塊,用于根據(jù)所述起始點,確定一個最小三角形回路;以及
最短回路數(shù)列確定模塊,用于在剩余的移動點陣中按照離所述起始點極距離由小到大順序排序,逐一插入所述最小三角形回路中的不同位置形成數(shù)控加工路線,所述位置能滿足形成的數(shù)控加工路線為最短的回路。
5、如權(quán)利要求4所述的數(shù)控加工路線的確定系統(tǒng),其特征在于,所述點陣排序模塊具體包括
最小極距參數(shù)設(shè)置模塊,用于將第一個點i的極距數(shù)值設(shè)置為最小極距參數(shù),其中i=1,...,n-1,n為點陣;
極距判斷模塊,用于判斷其它點j的極距L是否小于所述最小極距參數(shù)minL,其中j=i+1,...,n;以及
排序處理模塊,用于當(dāng)所述極距判斷模塊判斷所述點j的極距L<所述最小極距參數(shù)minL時,則將點j的極距L置為為最新最小極距參數(shù)minL,同時將第i、j位置點所對應(yīng)的數(shù)據(jù)相互交換。
6、如權(quán)利要求4所述的數(shù)控加工路線的確定系統(tǒng),其特征在于,所述最短回路數(shù)列確定模塊具體包括
配置模塊,用于在剩余的點陣中,將根據(jù)點陣默認(rèn)排序的數(shù)控加工路線計算的路程置為當(dāng)前最短回路參數(shù)值,其中所述陣默認(rèn)排序為在剩余的點陣中按照離所述起始點極距離由小到大的順序;最短回路參數(shù)值;
數(shù)控加工路線構(gòu)造模塊,用于構(gòu)造新的點陣的數(shù)控加工路線;
路程數(shù)值計算模塊,用于計算每個不同數(shù)控加工路線的路程數(shù)值;
路程數(shù)值判斷模塊,用于判斷所述數(shù)控加工路線的路程數(shù)值是否小于所述最短回路參數(shù)值;以及
最短回路處理模塊,用于當(dāng)所述路程數(shù)值判斷模塊判斷所述數(shù)控加工路線的路程數(shù)值小于所述最短回路參數(shù)值時,將所述路程數(shù)值對應(yīng)的排列位置的數(shù)控加工路線作為最新的最短回路,并將所述路程數(shù)值置為最短回路參數(shù)值。
7、一種數(shù)控設(shè)備,其特征在于,包括數(shù)控加工路線的確定系統(tǒng),所述系統(tǒng)包括
坐標(biāo)數(shù)據(jù)獲取模塊,用于獲取移動點陣的坐標(biāo)數(shù)據(jù);
點陣排序模塊,用于以原點為起始點排列所述移動點陣;
最小三角回路確定模塊,用于根據(jù)所述起始點,確定一個最小三角形回路;以及
最短回路數(shù)列生成模塊,用于在剩余的移動點陣中按照離所述起始點極距離由小到大順序排序,逐一插入所述最小三角形回路中的不同位置形成數(shù)控加工路線,所述位置能滿足形成的數(shù)控加工路線為最短的回路。
8、如權(quán)利要求7所述的數(shù)控設(shè)備,其特征在于,所述點陣排序模塊具體包括
最小極距參數(shù)設(shè)置模塊,用于將第一個點i的極距數(shù)值設(shè)置為最小極距參數(shù),其中i=1,...,n-1,n為點陣;
極距判斷模塊,用于判斷其它點j的極距L是否小于所述最小極距參數(shù)minL,其中j=i+1,...,n;以及
排序處理模塊,用于當(dāng)所述極距判斷模塊判斷所述點j的極距L<所述最小極距參數(shù)minL時,則將點j的極距L置為為最新最小極距參數(shù)minL,同時將第i、j位置點所對應(yīng)的數(shù)據(jù)相互交換。
9、如權(quán)利要求7所述的數(shù)控設(shè)備,其特征在于,所述最短回路數(shù)列生成模塊具體包括
配置模塊,用于在剩余的點陣中,將根據(jù)點陣默認(rèn)排序的數(shù)控加工路線計算的路程配置為當(dāng)前最短回路參數(shù)值,其中所述陣默認(rèn)排序為在剩余的點陣中按照離所述起始點極距離由小到大的順序;;
數(shù)控加工路線構(gòu)造模塊,用于構(gòu)造新的點陣的數(shù)控加工路線;
路程數(shù)值計算模塊,用于計算每個不同數(shù)控加工路線的路程數(shù)值;
路程數(shù)值判斷模塊,用于判斷所述數(shù)控加工路線的路程數(shù)值是否小于所述最短回路參數(shù)值;以及
最短回路處理模塊,用于當(dāng)所述路程數(shù)值判斷模塊判斷所述數(shù)控加工路線的路程數(shù)值小于所述最短回路參數(shù)值時,將所述路程數(shù)值對應(yīng)的排列位置的數(shù)控加工路線作為最新的最短回路,并將所述路程數(shù)值置為最短回路參數(shù)值。
全文摘要
本發(fā)明適用于工業(yè)數(shù)控領(lǐng)域,提供了一種數(shù)控加工路線的確定方法、系統(tǒng)及數(shù)控設(shè)備,所述方法包括下述步驟獲取移動點陣的坐標(biāo)數(shù)據(jù);以原點為起始點排列所述移動點陣;根據(jù)所述起始點,確定一個最小三角形回路;在剩余的移動點陣中按照離所述起始點極距離由小到大順序排序,逐一插入所述最小三角形回路中的不同位置形成數(shù)控加工路線,所述位置能滿足形成的數(shù)控加工路線為最短回路。本發(fā)明實施例通過搭建一個最小的三角形回路,并在剩余的點陣中按照離起始點極距離小到大順序排序,逐一試探插入回路中的不同位置以滿足構(gòu)造新的最短回路,通過該方式獲得最短回路,為后續(xù)的編寫NC優(yōu)化程序提供了一個更可行、更快捷的方法。
文檔編號G05B19/19GK101256402SQ20071012491
公開日2008年9月3日 申請日期2007年12月7日 優(yōu)先權(quán)日2007年12月7日
發(fā)明者甄幸文 申請人:深圳創(chuàng)維-Rgb電子有限公司