Page 40 - 4352
P. 40
endif
endif
' При підході до контуру із включенням лівої корекції
' виводиться G41 і двозначний номер коректора :
if contour_to_l# then
write id1# using "G41T%.2d", cutter_r_crtr#
' Інакше, при підході до контуру із включенням правої
' корекції виводиться G42 і двозначний номер коректора :
elseif contour_to_r# then
write id1# using "G42T%.2d", cutter_r_crtr#
' Інакше, при відході від контуру з вимиканням правої
' корекції виводиться G40 :
elseif contour_from# then
write id1# using "G40"
endif
' Якщо аналізована команда переміщення виконується в
' головній програмі, то поточні координати виводяться
' в абсолютах:
if prog_body# then
if dx<>0.0 then ' при ненульовому переміщенні по осі X :
' Виводиться нове значення x :
write id1# using "X%.15g", x*RDISCR
endif
if dy<>0.0 then ' при ненульовому переміщенні по осі Y :
' Виводиться нове значення у :
write id1# using "Y%.15g", y*RDISCR
endif
if dz<>0.0 then ' при ненульовому переміщенні по осі Z :
' Виводиться нове значення z :
write id1# using "Z%.15g", z*RDISCR
endif
' Для кругової інтерполяції вивід по адресах I, J, К :
if (primitive#=ARC_CLW#) OR (primitive#=ARC_CCLW#) then
' Якщо дуга лежить у площині XY, виводяться I й J :
if plane#=PLANE_XY# then
write id1# using "I%.15g", i*RDISCR
write id1# using "J%.15g", j*RDISCR
' Інакше, якщо дуга лежить у площині YZ, виводяться J і К :
elseif plane#=PLANE_YZ# then
write id1# using "J%.15g", j*RDISCR
write id1# using "K%.15g", k*RDISCR
' Інакше, якщо дуга лежить у площині ZX, виводяться I і К :
elseif plane#=PLANE_ZX# then
write id1# using "I%.15g", i*RDISCR
write id1# using "K%.15g", k*RDISCR
endif
39