Page 35 - 4352
P. 35
' вивід G45 :
if contour_from# then
write id1# using "G45"
' Інакше, для вимикання корекції на довжину інструмента
' вивід G46 з попереднім коректором :
elseif (lcomp<>lcomp_#) AND (lcomp = LCOMP_OFF#) then
write id1# using "G46D%.2d", cutter_l_crtr_#
endif
' Для кругової інтерполяції вивід по адресах X, Y, I, J :
if ((primitive#=ARC_CLW#) OR (primitive#=ARC_CCLW#)) then
if dx<>0.0 then
write id1# using "X%+f", x
endif
if dy<>0.0 then
write id1# using "Y%+f", y
endif
write id1# using "I%+f", i
write id1# using "J%+f", j
' Інакше, для позиціювання або лінійної інтерполяції вивід
' по адресах X, Y, Z:
elseif (primitive#=LINE#) OR (primitive#=LOCATE#) then
if dx<>0.0 then
write id1# using "X%+f", x
endif
if dy<>0.0 then
write id1# using "Y%+f", y
endif
if dz<>0.0 then
write id1# using "Z%+f", z
endif
endif
' При включенні корекції на радіус інструмента (підхід) :
if contour_to# then
' Вивід по адресах I й J відповідних проекцій вектора,
напрямок якого збігається з дотичної до траєкторії руху
' на початку наступного кадру (переміщення) а довжина
' дорівнює довжині аналізованого переміщення (Hypot(dx, dy))
if _tx0<>0.0 then
qqq = Round(_tx*HYPOT(dx,dy)/Hypot{_tx,ty))
write id1# using "I%+f", qqq
endif
if _ty0<>0.0 then
write id1# using "J%+f",
Round(_ty*Hypot(dx,dy)/Hypot(_lx,ty))
endif
endif
' При зміні величини подачі (тобто параметр f аналізованої
' команди не дорівнює
' аналогічному параметру попередньої команди f _)
34