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
   30   31   32   33   34   35   36   37   38   39   40