1:當用到特征坐標系編程時,G代碼點位輸出將以特征坐標系輸出,這顯然是不對的,還是要以主坐標系來輸出。那又如何來做呢???
2:新建程序段宏程序:changeFrameTest(平面轉(zhuǎn)換檢測)與changeFrame(平面轉(zhuǎn)換)
3:changeFrameTest它是進入changeFrame的守門員。cvi changeFrame_sign
sri ir3, 1
svi changeFrame_sign, ir3當遇到需要坐標轉(zhuǎn)換的工單時,守門員這里的程序,就會被執(zhí)行, changeFrame_sign的值就是1
4:
lvi ir3, changeFrame_sign
jz end_changeFrame ;判斷是否需要執(zhí)行坐標轉(zhuǎn)換,需要則繼續(xù)執(zhí)行,不需要跳轉(zhuǎn)到結(jié)束
lvs sr3, new_frame ;引入當前特征坐標系矩陣
lvs sr2, current_frame ;引入上一個坐標系矩陣
srf fr1, 0.000001 ;規(guī)定比較精度為0.000001
call frmchck ;調(diào)用比較函數(shù),判斷兩個坐標系前后差異,以此決定是否繼續(xù)執(zhí)行坐標轉(zhuǎn)換
jz end_changeFrame ;比較結(jié)果為零的話,則跳轉(zhuǎn)到結(jié)束
lvs sr2, new_frame
svs current_frame, sr2
;將當前的坐標矩陣賦值給儲存上一個坐標矩陣的變量,以便于下次比較
srf fr1, 0.001 ;計算精度0.001,
call setM ;應用本次坐標轉(zhuǎn)換
lvs sr3, new_frame
sri ir3, 3
sri ir2, 2
call get_M_ik ;從當前坐標系矩陣中,尋找第2行,第3列的數(shù)值,這個值是特征坐坐標系原點,方向的值,這個值寄存在fr1中
cvf surface_Z
svf surface_Z, fr1 ;通過fr1寄存器,將值傳遞給surface_Z變量,這個變量記住,后面有大用
sri ir3, 0
svi changeFrame_sign, ir3 重新將changeFrame_sign賦值為零,關(guān)上changeFrameTest的大門
lbl end_changeFrame
srs sr3, "" 清空SR3寄存器的內(nèi)容,以免sr3寄存器出去亂說,影響后處理的穩(wěn)定運行
承擔因您的行為而導致的法律責任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。