Перейти к публикации

Доработка постпроцессора!


Рекомендованные сообщения

а если FEDRAT не сразу после?

насколько я помню (это в доке расписано), для поиска конкретной команды 

лучше использовать Функцию <FindCld>

N = FindCld({<StartIndex>, }<CmdName>, <Data>)

Ну т.е в Вашем случае:

  b = FindCld("FEDRAT", V)

  if b>0 then begin

    Feed = V[1]                  ! и.е возьмет только значени, без учета единиц измерения (мм/об или мм/мин), за это V[3] отвечает.. добавить надо будет разбор если надо конечно

  end

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


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

 

 

     

aa: Array of Real                        ! объявляем массив

IndF = FindCld("FedRat", aa)    ! записываем в массив параметры будущей подачи т.е. все параметры из строки  
                                                   !CLData FEDRAT, при этом, если впереди по тексту есть вывод подачи то IndF=1 ,

                                                  !  а IndF=-1 если ниже нет вывода подачи.

if IndF>0 then Feed_=Str(aa[1])  ! Если в CLD файле операции имеется задание подачи то они присваивается

                                                    !  регистру Feed_ и выводится в текущем кадре, в следующем перемещении

                                                    ! оно не будет выведено поскольку параметр модальный.

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

У нас есть древний станочек, у которого стойка  о том, что такое лук э хед понятия не имеет. Хочу сделать в постпроцессоре автоматическое регулирование скорости в углах траектории в зависимости от величины этого самого угла.
1. Есть ли в генераторе какие то переменные где хранится значение этого угла? 
2. Имеются ли какая то переменная где хранится текущий признак условия сопряжения соседних элементов контура, типа тангенциально, перпендикулярно, под углом итд ?

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

! оно не будет выведено поскольку параметр модальный.

А если в нескольких кадрах  надо? как-то сброс модальности можно осуществить? или указать, чтобы выводилось в каждом кадре ? 

 

 

Feed = V[1]                  ! возьмет только значение, без учета единиц измерения (мм/об или мм/мин), за это V[3] отвечает..

 

Добрый вечер, подскажите, а как узнать в каких единицах эта подача (в CLData выдается 315/316 - это в чем)? и как сделать пересчет? 

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

 

Feed = V[1] ;    Feed@ = maxreal  !   Символ @ обозначает что это "старое значение"   Такая конструкция позволяет отключить модальность и выводить одинаковые параметры в каждом кадре
Feed = V[1] ;    Feed@ = Feed  !   А такая конструкция позволяет невыводить параметр даже если они отличаются

 

Добрый вечер, подскажите, а как узнать в каких единицах эта подача (в CLData выдается 315/316 - это в чем)? и как сделать пересчет? 

 MMPM(315) – мм/мин,

MMPR(316) – мм/об

Например, в токарной обработке,  если значение 315 то выводим G94, если 316 то G95

У нас есть древний станочек, у которого стойка  о том, что такое лук э хед понятия не имеет. Хочу сделать в постпроцессоре автоматическое регулирование скорости в углах траектории в зависимости от величины этого самого угла.

1. Есть ли в генераторе какие то переменные где хранится значение этого угла? 

2. Имеются ли какая то переменная где хранится текущий признак условия сопряжения соседних элементов контура, типа тангенциально, перпендикулярно, под углом итд ?

<FlagIn> возвращает:
1 – если происходит внутренний обход следующего пересечения;
0 – если внешний обход;
-1 – если тип обхода невозможно определить (например, совпадение направлений соседних кадров при линейной интерполяции).
<Cross> – возвращает значение 0, если текущий элемент сопрягается с последующим, и 1 если пересекаются. В общем случае две прямые всегда пересекаются, прямая и окружность могут сопрягаться, либо пересекаются. Эта переменная может быть использована для реализации коррекции.
 
А вот величины угла нету, поэтому этих функций, не достаточно для решения вашей задачи.
Если есть желание разобраться могу выслать постпроцессор на робот Fanuc. Там эта задача решена в общем виде (без использования этих функций) т.е для пространственных углов. Поскольку плоская траектория - частный случай пространственной, то этот код можно попытаться встроить в ваш постпроцессор.
Изменено пользователем SNick
Ссылка на сообщение
Поделиться на других сайтах

Спасибо.Отредактировал.

У меня предложение, делаем отдельную тему, например, "Поспроцессор Fanuc c нуля". Если получится,можно будет продолжить Heidenhein c нуля, потом замахнуться на наших...Sinumerik,Ocuma...

Как вам такое предложение?  

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

Спасибо.Отредактировал.

У меня предложение, делаем отдельную тему, например, "Поспроцессор Fanuc c нуля". Если получится,можно будет продолжить Heidenhein c нуля, потом замахнуться на наших...Sinumerik,Ocuma...

Как вам такое предложение?  

Хорошее предложение. Только сейчас сезон отпусков. Давайте вернемся к этой теме в октябре

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

Подскажите а как в PB отредактировать пост чтобы он вместо i j писал G2 G3?
А в токарке С и R (фаска и скругление)

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

Подскажите а как в PB отредактировать пост чтобы он вместо i j писал G2 G3?

А в токарке С и R (фаска и скругление)

Я, конечно, могу написать как это делается в генераторе построцессоров SprutCAM, но вам же нужно в NX?

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

Совершенно верно
Но если  в спруте через создание нового значения и если вдруг не сложно, то напишите, а я попробую
Спасибо

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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




×
×
  • Создать...