上兩篇文章我分別用了兩個(gè)不同類型的案例,闡述了《利用數(shù)學(xué)公式編寫數(shù)控程序》的步驟: 第一步:設(shè)定變量帶入方程式 第二步:利用方程式算坐標(biāo)點(diǎn) 這兩個(gè)步驟看起來非常簡單,簡單的就像是廢話一樣,但是真正領(lǐng)會(huì)應(yīng)用的人,100個(gè)里面也許連1個(gè)都沒有。 為什么會(huì)這樣說呢? 這不,有朋友在工作中遇到曲線類的零件加工,讓我?guī)兔帉懗绦颍ㄈ缦聢D): 方法都教給他了,他為什么自己不能編寫呢? 他說我那兩步驟行不通,此曲線方程式是:Y=32/X-0.1 而他們車間的數(shù)控車床都只有X和Z軸,并沒有方程式中的Y。 學(xué)的太死板,甚是令人擔(dān)憂。 來來來,先來看這個(gè)曲線(如下圖): 如上圖所示: 水平軸為X軸; 垂直軸為Y軸; 而數(shù)控車編程而言: 水平軸為Z軸; 垂直軸為X軸; 繪圖時(shí)候,曲線方程式是按繪圖界面給的坐標(biāo)軸,所以編程的時(shí)候,曲線方程式中的Y相當(dāng)于X軸,X相當(dāng)于Z軸 因此,曲線方程式Y(jié)=32/X-0.1 需更改為:X=32/Z-0.1 那么 第一步:設(shè)定變量帶入方程式 #1代表(曲線)X軸的數(shù)值; #2代表(曲線)Z軸的數(shù)值; 那么#1=32/#2-0.1就是X=32/Z-0.1的方程式了。 有了第一步,接下來進(jìn)行第二步: 利用方程式算坐標(biāo)點(diǎn) 從上面圖紙很容易得知,#2的取值范圍是從30到2,也就是說曲線Z方向的數(shù)值Z=30 到Z=2就結(jié)束了。 若#2=30 ,那么 #1=0.966666 因?yàn)榘?2的數(shù)值帶入#1=32/#2-0.1方程式中,即可計(jì)算出#1的數(shù)值 同理: 若#2=29.999,那么#1=0.966670 若#2=29.998,那么#1=0.966738 若#2=29.997,那么#1=0.966773 ……. #2=29.996,#2=29.995,#2=29.994,……至到#2=2, 幾萬個(gè)數(shù)據(jù),那么編寫出的程序會(huì)有好幾萬行。 其實(shí)上面正是軟件自動(dòng)出程序的算點(diǎn)方法,正是這樣,軟件生成的程序會(huì)有非常多的點(diǎn)位坐標(biāo)。 在這,關(guān)于軟件編程軍哥強(qiáng)調(diào)兩點(diǎn): 1, CAD/CAM軟件在建模時(shí)的計(jì)算精度。, 2, CAD/CAM軟件在生成NC刀路軌跡時(shí)的計(jì)算精度。 就如同上面我給變量取值一樣: 若#2=29.999,那么#1=0.966670 若#2=29.998,那么#1=0.966738 若#2=29.997,那么#1=0.966773 經(jīng)過四舍五入,計(jì)算出的數(shù)據(jù)就不精準(zhǔn)了,從而加工出的曲線零件精度就不高了。 如何來解決? 這也是我一直強(qiáng)調(diào)的利用宏程序來編寫數(shù)控程序,一切就不同了。 那么如何計(jì)算這么多點(diǎn)位坐標(biāo)? 答:變量的自增減運(yùn)算 法拉克的機(jī)床變量自減運(yùn)算格式如下: #2=30 N10#1=32/#2-0.1 ……..加工程序 #2=#2-0.01 IF [#2GT2]GOTO10 ……. 程序由上往下依次運(yùn)行,當(dāng)運(yùn)行到IF語句 是的,IF語句中設(shè)置的條件是: [#2GT2] ,意思是#2的數(shù)值大于2 如果這個(gè)條件滿足,程序就會(huì)跳轉(zhuǎn)至指定的N10程序段,又從N10程序段開始往依次往下運(yùn)行程序,即: 每當(dāng)讀取#2=#2-0.01變量就會(huì)做一次運(yùn)算 就這樣機(jī)床直接通過曲線方程式和變量自運(yùn)算,計(jì)算出#1,#2的數(shù)值。 若在IF和N10之間的合適位置添加一個(gè)程序段:G01X#1Z#2,這就加工出曲線了。 添加到什么位置? 如下(紅色字體位置): #2=30 N10#1=32/#2-0.1 G1X[2*#1]Z#2F0.1 #2=#2-0.01 IF [#2GT2]GOTO10 也就是先讀取#1,#2的數(shù)據(jù),在運(yùn)行加工的曲線段程序。 你或許注意到上面紅色字體并不是:G01X#1 Z#2 而是G1X[2*#1]Z#2 因?yàn)?1是半徑值,[2*#1]換算成直徑編程。 程序如下: 很快就完成了精加工程序。 好了,以上兩步驟價(jià)值巨大,你若泛泛一看,覺得知道了,那么你將很難挖掘出更多有價(jià)值的東西。 大家切記:知道,不等于會(huì) 比如,上面零件粗加工程序又如何編寫呢? 再比如,橢圓,雙曲線,拋物線,二次方程,卡門曲線等等曲線類零件又如何編寫程序? 更進(jìn)一步, T型螺紋,大螺距螺紋,圓弧半牙型螺紋,蝸桿等等類型的零件又如何來編寫程序? 想想就難? 實(shí)際,凡事一定有方法,只是你暫時(shí)沒找到而已 。 我曾經(jīng)強(qiáng)調(diào)過:“復(fù)雜事情簡單化,簡單事情流程化”,這種“流程化的思維”非常有價(jià)值,數(shù)控高級(jí)編程宏程序,對于一個(gè)新手確實(shí)難,但是我們可以把編程這件事變得很簡單,并且變成一個(gè)流程, 比如上面我傳授的兩步方法,就可以看成一個(gè)流程。 流程化的編程思路在過去我也只是透露了一部分,現(xiàn)在我打算把它融入到我的編程教程中來,在我的《鄒軍數(shù)控宏程序編程教程》中,除了學(xué)到宏程序基礎(chǔ)知識(shí),具備零件加工的編程能力外,你還可以學(xué)到: 1、流程化的編程(新增) 2、具備開發(fā)G代碼的能力 3、用數(shù)學(xué)公式來編寫宏程序的技巧 4、掌握宏程序的調(diào)用、宏程序誤差處理方法 5、模塊化編程 6、參數(shù)化編程 7、宏程序用于生產(chǎn)管理 8,宏程序自動(dòng)化方面的應(yīng)用 其實(shí),新增加的流程化編程思路我去年就設(shè)計(jì)好了,一直沒有輕易放出來,為什么呢? 因?yàn)槲疫€沒有準(zhǔn)備好,因?yàn)槲液竺嬉獙iT出一套關(guān)于《流程化的編程教程》,準(zhǔn)備找些合作伙伴,從而放大其價(jià)值。(關(guān)于這個(gè)計(jì)劃,年后機(jī)會(huì)成熟我會(huì)詳細(xì)公布。) 關(guān)注鄒軍愛數(shù)控,學(xué)習(xí)好絕招 |
|