BaZuZu

Не выводит G81 помощь в постпроцессоре

Доброго времени суток...

 

Вот пробую писать пост для спрута... 

Нашел пост для хааса он не выводит Ж81, взял для фанука он выводит цикл сверления...

Пока разницу не сильно вижу, попробовал в левом верхнем окне "команды" заменить что было у фанука в команду CYCLE на хаас, все равно не выводит...

Пока не понял зависимость, с NX-ом вроде как то проще было... наверное...

 

Подскажите куда и как копать... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


Я сам новичок, начал писать пост с ноля для сименса 840д и мне хватило того что есть в хелпе ну не много тут подсказали!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Доброго времени суток...

 

Вот пробую писать пост для спрута... 

Нашел пост для хааса он не выводит Ж81, взял для фанука он выводит цикл сверления...

Пока разницу не сильно вижу, попробовал в левом верхнем окне "команды" заменить что было у фанука в команду CYCLE на хаас, все равно не выводит...

Пока не понял зависимость, с NX-ом вроде как то проще было... наверное...

 

Подскажите куда и как копать... 

добрый день 

покажите хоть в каком посте "копаете" и для какой версии SprutCAM.. если можно и проектец свой.. а вдруг товарищи подскажут да и сами научимся чему-нить новому..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прикладываю пост...

А проект с натяжкой можно считать... просто начертил окружность и сверлю ее....

 

вот что он выводит... 

 

 

%
O1111
(NoName)
G17 G90 G54 G21 G40 G80
(OBRABOTKA OTVERSTIJ)
N2 T01 M06 (2.4MM DRILL)
N3 G0 G17 X0. Y-40. S200 M03
N4 G43 Z20. H01 M08
N5 M05 M09
N6 G28 G91 Z0.
N7 M30
%
 
 
Как видите пропушен цикл G81 я разные ставил, и с ломкой стружки, и с выводом.... все равно цикл пропущен...
 
А еще вопрос?
Как мне сделать что бы M05 M09 выводил в разных кадрах...?
 
SprutCAM 9
 

 

HAAS(mill).rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Прикладываю пост...

А проект с натяжкой можно считать... просто начертил окружность и сверлю ее....

 

вот что он выводит... 

 

SprutCAM 9

 

 

Похоже постпроцессор для более ранних версий SprutCAM, или в нем не реализована команда постпроцессора ExtCycle.

Как обойти:

1) 1й  вариант - переключить тип формируемого цикла, и тогда вроде как должно все пойти.

post-16895-0-65151000-1435753709_thumb.png

 

2) реализовать работу процедуру ExtCycle - более трудоемко, но зато системно 

 

у меня M05 и M09 в разных кадрах вывелись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо...

 

Помогло с выставлением старого постпроцессора... :)

А как мне шапку поменять ?

G17 G90 G54 G21 G40 G80

 

Убрать некоторые или добавить свои ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо...

 

Помогло с выставлением старого постпроцессора... :)

А как мне шапку поменять ?

G17 G90 G54 G21 G40 G80

 

Убрать некоторые или добавить свои ?

Идеология примерно такая, за каждое слово (G17 - это одно слово, G90 - другое) отвечает свой регистр. 

у регистра есть имя KorEcv - отвечает за коррекцию (G40/g41/g42), а переменная которая ее выводит G.

 

Присваивая в регистр (допустим KorEcv) значение 40, система проверяет если значение отличается от предыдущего (хранится в KorEcv@), то значит надо выводить этот регистр в кадр.

Поэтому, строка вида

  KorEcv = 40; KorEcv@=KorEcv  

блокирует этот вывод. 

 

Принудительный вывод значения регистра возможен 

  KorEcv@= KorEcv - 1
 

Шапка обычно формируется либо в команде PartNO, либо может формироваться в PPFUN

 

есть еще такой способ:  output "G54 G17 G90" - т.е вывод на печать в кадр строки(строковой переменной), но в этом случае не учитывается состояние и формат каждого регистра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну немного понятно... Только немного...

 

А как допустим мне поменять тот же цикл сверления ?

В NX там вроде все понятно... под отдельные операции, отдельные блоки... 

А тут я полазил... Нашел вкладку ЦИКЛЫ.... но там только описание вывода G81-g85 а что в самом цикле должно быть никак не могу найти (((

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну немного понятно... Только немного...

 

А как допустим мне поменять тот же цикл сверления ?

В NX там вроде все понятно... под отдельные операции, отдельные блоки... 

А тут я полазил... Нашел вкладку ЦИКЛЫ.... но там только описание вывода G81-g85 а что в самом цикле должно быть никак не могу найти (((

описание данных в команде CYCLE доступно в справке

post-16895-0-16759800-1435845822_thumb.png

 

а описание того, что должно выводиться в цикле в описании стойки HAAS

 

в посте, который Вы выложили следующее:

 

в этом блоке идет инициализация параметров цикла, 

 

   CycleOn = 1
    KodCycle = cld[1]
    Za = cld[2]                                          <- судя по справке это глубина отверстия
    if cld[4] > 0 then begin
      if cld[3]=316 then Fr=cld[4]*S else Fr=cld[4]       ! вероятно это подача
    end
    Zf = cld[5]
    ZP_ = cld[6]
    if cld[1]=81 or cld[1]=212 or cld[1]=213
      then Dwell = cld[8] else Dwell = 0                       ! это похоже пауза на дне 
    if cld[1]=153 or cld[1]=288 then begin
      Zl = cld[6]
      Zi = cld[7]
      ZP_ = cld[8]
      Dwell = cld[10]
    end
 
дальше если цикл включен, значения данных расчетов перекладываются в соответствующие регистры...
 
 
а что должно быть в самом цикле? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я просто к примеру... Ну допустим  хочу чтобы в цикле перед G81 он переходил в подачу на оборот G95 а в конце перед G80 переходил в минутную подачу G84. И где посмотреть, как бы это назвать... "главную ветвь" где по строчкам идет программа... типа что должно вызываться и что за это отвечает ? И откуда вызывается ...

 

Может не сильно внятно объяснил... но все же.. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я просто к примеру... Ну допустим  хочу чтобы в цикле перед G81 он переходил в подачу на оборот G95 а в конце перед G80 переходил в минутную подачу G84. И где посмотреть, как бы это назвать... "главную ветвь" где по строчкам идет программа... типа что должно вызываться и что за это отвечает ? И откуда вызывается ...

 

Может не сильно внятно объяснил... но все же..

мой ответ пока немного не по теме... но нашел вот такой ролик.... так сказать по основам постпроцессирования в SprutCAM

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я просто к примеру... Ну допустим  хочу чтобы в цикле перед G81 он переходил в подачу на оборот G95 а в конце перед G80 переходил в минутную подачу G84. И где посмотреть, как бы это назвать... "главную ветвь" где по строчкам идет программа... типа что должно вызываться и что за это отвечает ? И откуда вызывается ...

 

Может не сильно внятно объяснил... но все же.. 

скажем так... в Генераторе постпроцессоров есть пошаговый отладчик (если использовать кнопку F8). В этом случае, генератор бежит по строкам CLData (постарался на схеме показать, что есть где).

post-16895-0-78710200-1435957417_thumb.png

 

синтаксис похож на язык паскаля/дельфи. Формирование обработчика определенной команды происходит в виде прописывания некоего кода, а не формируется в диалоговом режиме (в виде окон).

 

теперь, что касается примера переход в режим G95 и обратно в G94 я для сравнения приложу как было и как стало, а также картинку со сравнением текста обоих вариантов.

post-16895-0-05443000-1435957961_thumb.png

новый текст_Cycle.txtстарый текстCyclle.txt

 

PS: для нового варианта необходимо в команде Common объявить новую переменную, добавив строку   needFr_rev: integer

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо!!! 

 

Прямо доходчиво и по полочкам.

 

+1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите как мне для вывода G2 G3 использовались I J а ни R

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите как мне для вывода G2 G3 использовались I J а ни R

Добрый день, 

Если рассмотреть команду "CIRCLE     XC 150, YC -230, ZC -32.667, R 36, XE 117.924, YE -213.656, ZE -32.667", то мы увидим, что 

первые 3 координаты в этой строке (XC, YC, ZC)  (хранятся соответственно в CLD[1], CLD[2], CLD[3]) - Координаты X, Y и Z центра окружности

последние 3 (XE, YE, ZE) - координаты конечной точки дуги.

R - это радиус дуги.

 

обработчик команды может быть написан под разный формат вывода допустим XYR, или XYIJ, а может содержать оба варианта, а переменной определять выбор какой из этих способов будет работать.

Рассмотрим фрагмент команды CIRCLE для комбинированного случая из постпроцессора fanuc(30i)_Mill из ознакомительной версии.

 

  if cld[4] > 0 then INTERP_ = 3 else INTERP_ = 2   ! G3/G2
  X = cld[5]                                  ! X,Y,Z in absolutes
  Y = cld[6]
  Z = cld[7]
 
  if CirclesThroughRadius>0 then begin                  ! CirclesThroughRadius - это переменная, объявленная в секции COMMON, и проинициализированная в PartNO.  Может принимать значения 1 - вывод через                                                                                                                           ! радиус®, 0 - через IJK
    call CheckCircleAngle(RSign)                              ! это подпрограмма проверки знака радиуса в зависимости от типа обхода дуги 
    Rc = RSign*abs(CLD.R); Rc@ = MaxReal
  end else begin                               
! в этом случае будет вывод через IJK
    XC_ = cld[1] - XT_                                              ! XC_, YC_, ZC_ - регистры IJK соответственно. Если постпроцессор выводит координаты центров в относительных значениях - то формула будет XC_ = cld[1] - XT_ 
    YC_ = cld[2] - YT_                                              ! если в абсолютах - то просто XC_ = cld[1]
    ZC_ = cld[3] - ZT_
 
    XC_@ = MaxReal; ZC_@ = MaxReal  YC_@ = MaxReal         ! поскольку вывод IJK желательно делать в каждом кадре, то сбрасываем старые значения
    case Plane of                                                                            ! и в зависимости от активной плоскости блокируем ненужную координату центра 
      17: ZC_@ = ZC_;                                                                    ! например для плоскости G17  не выводит координату K
      18: YC_@ = YC_;
      19: XC_@ = XC_;
    end
  end
 
! соответственно, принудительно обеспечим вывод координат конечных точек дуг, опять же в зависимости от плоскости.
  case Plane of
    17: begin
      X@ = MaxReal;
      Y@ = MaxReal
    end
    18: begin
      X@ = MaxReal;
      Z@ = MaxReal
    end
    19: begin
      Y@ = MaxReal
      Z@ = MaxReal
    end
  end
 
  OutBlock                     ! и выведем все измененные значения в кадр
  XT_ = cld[5]                 ! сохраним координаты во внутренние переменные системы для последующих расчетов
  YT_ = cld[6]
  ZT_ = cld[7]

 

Можно скачать и рассмотреть данный пример самому.

Fanuc (30i)_Mill.rar

2 пользователям понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Нашел пост для хааса он не выводит Ж81, взял для фанука он выводит цикл сверления

Вроде бы, у HAASa нет этого цикла. Его заменяет G83 без Q

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо Dantist

 

А можно сделать так чтобы он в выбранных операциях выводил G2 G3 как круговую интерполяцию, а в остальных делил на отрезки по G1?

 

Или это надо на уровне постпроцессора?

Типа смотрел в каком положении находятся оси B и С сравнивал что они ни в нуле и тогда начинал делить на отрезки ?

 

А то я нашел галочку которая отвечает за вывод окружностей. Но если указать чтобы он делил, то он делит все перемещения вне зависимости от того как расположены оси.


Клиент 

да нет все нормально он понимает. Но смысл в том что не выводились ни один из циклов сверления растачивания и резьбонарезания...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос конечно сложный, и необычный..

А для чего так делать? 

станок работает в режиме 3+2? а в повернутой системе координат дуги не поддерживаются?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
А можно сделать так чтобы он в выбранных операциях выводил G2 G3 как круговую интерполяцию, а в остальных делил на отрезки по G1?

Со спруткамом не знаком, но, обычно, это происходит на уровне создания траекторий в программе. Постпроцессор этим не занимается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну получается что если он не стоит в плане G17 G18 или G19 

 

в каком то угле отличающимся от от этого плана, то он не понимает... ну это было выведено опытном путем... может какая то функция не включена или мы что то ни то делаем...

 

станок UMC-750 HAAS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну получается что если он не стоит в плане G17 G18 или G19 

 

в каком то угле отличающимся от от этого плана, то он не понимает... ну это было выведено опытном путем... может какая то функция не включена или мы что то ни то делаем...

 

станок UMC-750 HAAS

в фануке вроде бы функция есть  G68.2 которая обеспечивает работу станка в повернутых координатах, по аналогии с G17. а у Вас станок не поддерживает такую функцию?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да документации толком нету... А никто внятно объяснить не может...

Даже тут на форуме ХААСа спрашивал...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да документации толком нету... А никто внятно объяснить не может...

Даже тут на форуме ХААСа спрашивал...

Судя по документации надо использовать для режима 3+2 G254/255, а для режима непрерывных 5 осей - G234

 

1 пользователю понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это используется...

 

Мы повернули на угол...

Включили G254 определение расстояние от нулевой точки стола до нашей привязачной точки...

 

Но он не понимает G2 G3, а при линейных перемещениях все норм отрабатывает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

  • реклама

  • Реклама

  • Ближайшие события

    Предстоящих событий не найдено
  • Дни рождения сегодня

    1. Anki
      Anki
      (38 лет)
    2. aqwa
      aqwa
      (46 лет)
    3. biser.73
      biser.73
      (44 года)
    4. C-Cam
      C-Cam
      (32 года)
    5. helicopt
      helicopt
      (41 год)
    Просмотреть все