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

Круговая Интерполяция В G19


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

При настройке постпроцессора возникла необходимость описать в Motion NC output процедуру с таким условием:если текущая плоскость интерполяции лежит в плоскости G19,то коды G02 и G03 должны поменяться местами.Подскажите кто-нибудь,как должна выглядеть подобная запись на языке поста.Буду очень признателен за помощь.

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


Не иначе как делаешь для токарного станка с вращающтмся инструментом который должен залезть внутрь детали? Для мастеркама не делал, но встречал такой вариант в жизни, там еще обычно G41 на G42 менять надо. думаю логически операторы надо использовать IF While по твоим условиям, В мкам можно вытащить всё в пост вплоть до типа операции. Код надо смотреть так трудно сказать что то конкретное.

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

Нет,это пост не для токарного,а для фрезерного MAHO,у него вертикальный шпиндель работает в плоскости G18,а + по Х находится слева,поэтому при интерполяции в G19 происходит смена направлений вращения,а как записать это,используя какие операторы,не соображу.

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

так переменная plane отвечает за плоскость

попробуй поставь логику на plane а дальше соответственно коды G02 и G03 менять местами

главное не забыть вернуть обратно :doh:

ниже пример как выводить i, j, k в зависимость от плоскости

Mill exmaple:

parc # IJK arc center output

if plane = zero, *i, *j, k # G17 plane - force I & J output

if plane = one , i, *j, *k # G19 plane - force J & K output

if plane = two , *i, j, *k # G18 plane - force I & K output

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

Как вывести i,j,k понятно,но не понятно как должна выглядеть настройка логики на plane,да и не хочется просто тупо переименовывать коды

sg02 G03 #Circular interpolation CW G code

sg03 G02 #Circular interpolation CCW G code

Так можно сделать ,если в траектории только одна плоскость интерполяции G19,а если в одной траектории плоскости сменяются,будет ошибка.

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

Если я правильно понимаю то можно присвоить новые строчные переменные

sg02_1 G03 #Circular interpolation CW G code

sg03_1 G02 #Circular interpolation CCW G code

и вставить if plane = one, sg02_1

или что то подобное в зависимости как в посте организован вывод таких переменных

Ссылка на сообщение
Поделиться на других сайтах
bf109 , если стойка Fanuc - возми постпроцесор MPROUTER.pst из Mastercam9/router/posts каталог. Недавно колега попросил меня о решение подобной задаче - купили навесной горизонтальний шпиндель которой крепится на вертикальний можно вращать вручную и фиксировать на 360 градусов. MPROUTER.pst выводит УП в координатах деталя а не в координаках инструмента, так что при вывод программы в "Toolplane" отличным от "Top" не переводить всю обработку относительно XY plane связанном с оси фрезера.
Ссылка на сообщение
Поделиться на других сайтах

если стойка Fanuc - возми постпроцесор MPROUTER.pst

Нет, не Fanuc,a Heidenhein,но всё равно спасибо VESKO-постом поинтересуюсь.

Если я правильно понимаю то можно присвоить новые строчные переменные

sg02_1 G03 #Circular interpolation CW G code

sg03_1 G02 #Circular interpolation CCW G code

Что-то это как-то в голову сразу и не пришло,попробовал, есть изменения,но повозиться есть ещё с чем,логика не простая штука,если ею не каждый день занимаешся.Спасибо за совет,ak762.
Ссылка на сообщение
Поделиться на других сайтах

Вобщем,всё у меня получилось,присвоил новые строчные переменные:

.....

# Motion G code selection

sg00 L #Rapid

sg01 L #Linear feed

sg02 DR- #Circular interpolation CW G code

sg03 DR+ #Circular interpolation CCW G code

sg02_1 DR+ #Circular interpolation CCW G code

sg03_1 DR- #Circular interpolation CW G code

sg02_2 DR- #Circular interpolation CW G code

sg03_2 DR+ #Circular interpolation CCW G code

sg04 ?? #Dwell

sgcode #Target for string

fstrsel sg00 gcode$ sgcode 5 -1

.....

а затем добавил условные переходы в Motion NC output:

.....

parc_cntr #Select the arc center output axis

if plane$ = zero, *i$, *j$, !k$ #XY plane

if plane$ = one , !i$, *j$, *k$ #YZ plane

if plane$ = two , *i$, !j$, *k$ #XZ plane

parc_endpt #The arc endpoint axis outputs

if plane$ = zero, pfxout, pfyout #XY plane

if plane$ = one , pfyout, pfzout #YZ plane

if plane$ = two , pfxout, pfzout #XZ plan

if plane$ = one

else,sg02=sg02_1,sg03=sg03_1

if plane$ = zero | plane$ = two

else,sg02=sg02_2,sg03=sg03_2

.....

и пост заработал,как надо.Ещё раз ak762 спасибо за подсказку!

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

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

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

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

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

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

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

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

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

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

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




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