河南中光學(xué)集團(tuán)有限公司 (南陽(yáng) 473006) 胡飛嘉
《金屬加工 (冷加工)》2013年第8期機(jī)床自動(dòng)化欄目刊登了《用尋邊器快速找正圓孔中心》一文,文中提出了用尋邊器碰圓上三點(diǎn)通過(guò)編程來(lái)確定圓心的方法。這是一個(gè)相當(dāng)實(shí)用的方法,尤其在找正大圓和非整圓等打表不便的情況下更具優(yōu)勢(shì)。
這一方法的思路是先用尋邊器碰圓上的三點(diǎn),把這3個(gè)點(diǎn)的機(jī)械坐標(biāo)值讀入6個(gè)變量中。文中是讀入到R1~R6這6個(gè)變量中,R1、R2分別表示第一點(diǎn)的X、Y坐標(biāo),其余變量含義類推。由于三點(diǎn)能確定一個(gè)圓,根據(jù)已知的3個(gè)點(diǎn)的坐標(biāo)就可以計(jì)算出圓心坐標(biāo)。為了計(jì)算圓心坐標(biāo),原文用了兩個(gè)很復(fù)雜的計(jì)算式。這其實(shí)是把簡(jiǎn)單問(wèn)題復(fù)雜化了。因?yàn)槲鏖T(mén)子840D系統(tǒng) (不限于840D)已經(jīng)自帶了根據(jù)三點(diǎn)計(jì)算圓心的函數(shù),沒(méi)有必要再編程計(jì)算了。這個(gè)函數(shù)就是CALCDAT。它不僅能計(jì)算出圓心坐標(biāo),還能計(jì)算出圓的半徑。這個(gè)函數(shù)的格式是:
CALCDAT(<原始坐標(biāo)數(shù)組>,<點(diǎn)數(shù)>,<結(jié)果數(shù)組>)
<原始坐標(biāo)數(shù)組>是一個(gè)3×2的二維數(shù)組,存放的是圓上的3個(gè)點(diǎn)的坐標(biāo)。
<點(diǎn)數(shù)>是指圓上的點(diǎn)數(shù) (只能取3或4)。本例是碰圓上三點(diǎn),應(yīng)取3。
<結(jié)果數(shù)組>是變量參數(shù),用于存放計(jì)算結(jié)果。這個(gè)參數(shù)是一個(gè)有3個(gè)元素的一維數(shù)組,前兩個(gè)數(shù)表示三點(diǎn)所在的圓的圓心X、Y坐標(biāo),第三個(gè)數(shù)表示圓的半徑。
這個(gè)函數(shù)有一個(gè)布爾型的返回值,表示是否計(jì)算成功 (只要三點(diǎn)不在一條直線上,通常都能計(jì)算成功)。
使用這個(gè)函數(shù),原文中的LD3程序可以非常簡(jiǎn)單。程序如下:
DEF REAL PT[3,2],RES[3];定義兩個(gè)數(shù)組 (PT存放原始數(shù)據(jù),RES存放結(jié)果)
PT [0,0] =SET(R1,R2,R3,R4,R5,R6);圓上三點(diǎn)坐標(biāo)賦值給PT數(shù)組,用于CALCDAT計(jì)算
IF CALCDAT(PT,3,RES);計(jì)算圓心坐標(biāo)和圓的半徑
R7=RES [0]R8=RES [1]R9=RES [2] +5;圓心坐標(biāo)放在R7、R8里,半徑放在R9里 (RES[2]中是計(jì)算出的半徑,加上5的意思是假設(shè)碰的是內(nèi)圓,尋邊器的觸頭半徑是5 mm。如果碰的是外圓,則把加號(hào)改成減號(hào)。后面的數(shù)是尋邊器觸頭半徑,需根據(jù)實(shí)際情況打入)
ENDIF
M17
比較這個(gè)程序和原文的程序可以看出,原文中用于計(jì)算圓心坐標(biāo)的兩個(gè)很復(fù)雜的計(jì)算式僅用一個(gè)CALCDAT函數(shù)即可實(shí)現(xiàn) (還計(jì)算出了圓的半徑),不僅程序簡(jiǎn)練了,而且編程難度也明顯降低了。