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