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

Вопросы по Pm-post.


dtsyplov

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

Доброго времени суток всем, прошу помощи!!! Я уже не знаю что делать, начал изучать обработку по 4-ой оси вдоль оси Х в Powermill (Обработать с одной стороны, а после перевернуть на 180 градусов и обработать с другой стороны). Но каждый раз получаю сообщение "Направление оси Z траектории изменилось." Изучал по видео уроку сия процесс, там делали все просто, а это меняли направление оси Z на противоположный, а у меня он ругается на такие действия. Помогите кто чем может, прошу!(

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


Подскажите пожалуйста как через постпроцессор можно вывести в карту наладки на какой угол повернется ось В или допустим какой цикл будет работать (например haidenhain Q202-сверление) или включена коррекция на радиус или нет?

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

Вопрос знатокам можно ли создать файл карты наладки в самом постпроцессоре? Если можно то как это сделать?

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

Всем день добрый кому то вечер добрый! Приобрели чпу фрейзер ручного изготовления рабочим полем 205 по Х и 305 по Y, шильдик на нем Авиор-15М. и вот дошла очередь работать на 4 оси, расположили ее вдоль оси Y. Четвертая ост полноценная, УП делал в PowerMill 2019. Дошла очередь до записи НЦ и понял что нету постпроцессора под 4 ось повермил со станком была папка с файлами но там постпроцессоры для арткам. Второй день ползаю по интернету скачиваю разные файлы которые предлогают на форумах но при записи выдает ошибку!) кто нибуть может помоч, с чего начать куда плясать может быть как то можно написать свой! Я уверен каждый из вас это проходил!)

1 минуту назад, Woost сказал:

Всем день добрый кому то вечер добрый! Приобрели чпу фрейзер ручного изготовления рабочим полем 205 по Х и 305 по Y, шильдик на нем Авиор-15М. Плата кправления матч3!и вот дошла очередь работать на 4 оси, расположили ее вдоль оси Y. Четвертая ост полноценная, УП делал в PowerMill 2019. Дошла очередь до записи НЦ и понял что нету постпроцессора под 4 ось повермил со станком была папка с файлами но там постпроцессоры для арткам. Второй день ползаю по интернету скачиваю разные файлы которые предлогают на форумах но при записи выдает ошибку!) кто нибуть может помоч, с чего начать куда плясать может быть как то можно написать свой! Я уверен каждый из вас это проходил!)

 

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

Вы можете объяснить, почему я пытаюсь присвоить переменной значение : SetParam("%p(Machine C)%",c_ax);

SetParam("%p(Last_C)%", last);

и это не работает?

Ошибку выдает или в УП не выводит?

И если использовать Ваш совет, то что подставлять в переменную res? Вычисленные координаты оси С? И куда они дальше будут идти в самом постпроцессоре? Я не понимаю как это работает, и поэтому спрашиваю.

Зависит от вашего желания. 2 варианта:

1. Вы пишете:

SetParam("%p(Last_C)%", last);
Значит ничего в res писать не надо. В функции вы присвоили результат параметру Last_C, значит в блоке перемещений нужно этот параметр вставить. И этот вариант для вас лучше, т.к. в функции у вас вычисляется два параметра.

2. Вы присваиваете функции результат ваших вычислений. Тогда у вас

res = ...
Затем в блоке выводите параметр, далее "назначить" => "функция", и выбираете нужную. Результат функции присваивается параметру. Но тогда для каждого параметра нужно иметь свою функцию.

Как это должно выглядеть, так: (т.е. делаем вычисления и говорим возвратить эти вычисления в постпроцессор)?

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

Показываю скрипт, он пока что не работает, хотя что-то выводит.

Я хочу сделать вычисления, и занести результат вычислений в Machine C и в Last_C.

Создана пользовательская переменная Last_C. Ей присвоен тип действительный, доступ чтение-запись.

function ControlC ( )
{
var res = "";
res += StandardResponse();

 var a1 = 0.0;
 var a2 = 0.0;
 var cw = 0.0;
 var sw = 0.0;
 var last = 0.0;
 var c_ax = 0.0;
      c_ax = GetParam("%p(Machine C)%");
     last = GetParam("%p(Last_C)%");

if ( c_ax > last )
  {
    cw = 1;
    sw = 1;
  }                                         
  else
  {
     if ( c_ax == last )
       {
       if ( sw == 1 ) cw = 1; else cw = -1; 
       }
     else
       {
       cw = -1 ; sw = -1 ;
       }
  }

if ( ( c_ax > 360.0 ) || ( c_ax < -360.0 ) )
{
a1 = c_ax % 360.0;
}
else
{ 
a1 = c_ax ;
}

if ( a1 < 0.0 ) a2 = a1 + 360 ; 
else 
 {
 if ( a1 == 0.0 && sw == -1 ) a2 = a1 + 360.0; else a2 = a1 ;
 }
 last = c_ax ;
 c_ax = a2 * cw ;
SetParam("%p(Machine C)%",c_ax);
SetParam("%p(Last_C)%", last);

return res ; 
}

Запускается он отсюда (на картинке скрипт не подключён):

post-443-1317975718_thumb.jpg

Скрипт пока что не совсем верный, но подразумевается, что он вычисляет угол и заносит его сразу в Machine C ну, и соответственно, выводит в программу.

Выводит пока что совсем не то, что нужно.

Вопрос: правильно ли построение кода?

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

Что за параметр А2 в кадре? Если подразумевается, что его значение берется из скрипта, то это неверно. Переменная А2 и параметр А2 - это разные вещи. Как я уже писал, либо присваиваем параметру значение функции непосредственно в блоке, либо в описании функции присваиваем параметру какое-то значение, при этом оставляя значение самой функции пустым (как делаете вы).

В кадре есть Machine C - он должен выводиться в блоке так, как рассчитан скрипте.

Зачем нужна пользовательская функция Last_C - неясно, ведь в блоке ее нет.

По поводу построения кода - надо вникнуть, подумать, с ходу не скажу.

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

А2 - она во первых не выводится, а во вторых, я на неё назначил комментарии для отладки (выводятся).

Насчёт построения кода - вникать не стоит, т.к. ошибки в логике, это сам разгребу.

Ну, пока что понял, как выводить.

Но, не понял, почему нужно было объявить переменную res , и вернуть её в конце скрипта чтобы он заработал.

Куда, кстати в моём варианте она возвращается?

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

Но, не понял, почему нужно было объявить переменную res , и вернуть её в конце скрипта чтобы он заработал.

Куда, кстати в моём варианте она возвращается?

Потому что функция всегда должна возвращать какое-то значение. Вначале пишем

res += StandardResponse();
(кстати, есть второй вариант - AdvancedResponce).

Тем самым определяем, что результатом функции является значение переменной res.

У нас функция возвращает пустое значение. Получается, что таким образом мы используем функцию как процедуру (последовательность выполняемых команд).

Результат функции у вас никуда не возвращается, т. к. вы из описанных мною вариантов используете вариант №2.

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

Спасибо за помощь, скрипт заработал.

Больше скажу: большое спасибо.

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

неужели так жалко постпроцессор ? мне в качестве учебного примера он нужен!! блин ведь форумы и создаются с целью обмена опытом и информацией!

Изменено пользователем torrent.uf
Ссылка на сообщение
Поделиться на других сайтах

Тестировал готовый пост, и нашёл проблему, решить которую не знаю как. И не понимаю, почему она происходит.

На картинке простая обработка цилиндра по спирали, центр фрезы направлен к оси вращения, наклон фрезы 30 градусов.

post-443-1318178608_thumb.jpg

Программа выводится правильно:

G16 X Y
(UOT,1, X0 , Y0 , Z0 )
N10 ; ================= 
N20 ;  TOOLPATH : 0_degree  
N30 ;  STRATEGY USED : Surface_proj  
N40 ;  TOOLPATH WP : 2_1  
N50 ; ================= 
N60 ;  TOOL TYPE : BALLNOSED
N70 ;  TOOL NAME : D19SFER  
N80 ;  TOOL DIA.: 19  &  TIP RAD.: 9.5  & LENGTH : 115  
N90 G0 G79 Z0
N100 T1 M6
N110 G300
N120 h1
N130 (TCP,1) 
N140 (UIO,Z-278.25)
N150 S20000 M3
N160 G1 G90 X6.063 Y0 F15000
N170 C0
N180 B30.
N190 Z70.
N200 X-1.249 Z57.335
N210 X-4.749 Z51.273 F2000
N220 Z51.272 F5000
N230 C-359.088
N240 Z51.273 C-358.475
N250 C-357.248

Если поворачиваем эту обработку на 180 градусов относительно оси вращения,post-443-1318178901_thumb.jpg

и пытаемся постпроцессировать, то код выводится не правильно, ось Z в минусе зеркально, оси С и В тоже не верно (должно быть С180 В30):

G16 X Y
(UOT,1, X0 , Y0 , Z0 )
N10 ; ================= 
N20 ;  TOOLPATH : 180_degree  
N30 ;  STRATEGY USED : Surface_proj  
N40 ;  TOOLPATH WP : 2_2_1  
N50 ; ================= 
N60 ;  TOOL TYPE : BALLNOSED
N70 ;  TOOL NAME : D19SFER  
N80 ;  TOOL DIA.: 19  &  TIP RAD.: 9.5  & LENGTH : 115  
N90 G0 G79 Z0
N100 T1 M6
N110 G300
N120 h1
N130 (TCP,1) 
N140 (UIO,Z-278.25)
N150 S20000 M3
N160 G1 G90 X6.063 Y0 F15000
N170 C0
N180 B150.
N190 Z-70.
N200 X-1.249 Z-57.335
N210 X-4.749 Z-51.273 F2000
N220 Z-51.272 F5000
N230 C-359.088
N240 Z-51.273 C-358.475
N250 C-357.248

Причём, если поворачивать на 179 или 181 градус, то всё в порядке:

G16 X Y
(UOT,1, X0 , Y0 , Z0 )
N10 ; ================= 
N20 ;  TOOLPATH : 181_degree  
N30 ;  STRATEGY USED : Surface_proj  
N40 ;  TOOLPATH WP : 0_degree_1_2  
N50 ; ================= 
N60 ;  TOOL TYPE : BALLNOSED
N70 ;  TOOL NAME : D19SFER  
N80 ;  TOOL DIA.: 19  &  TIP RAD.: 9.5  & LENGTH : 115  
N90 G0 G79 Z0
N100 T1 M6
N110 G300
N120 h1
N130 (TCP,1) 
N140 (UIO,Z-278.25)
N150 S20000 M3
N160 G1 G90 X6.063 Y0 F15000
N170 C0
N180 B30.
N190 Z70.
N200 X-1.249 Z57.335 C179.
N210 X-4.749 Z51.273 F2000
N220 Z51.272 F5000
N230 C-178.088

Что пропустил?

В постпроцессоре насчёт кода есть только линейные перемещения и быстрые и движение после взятия инструмента.

Эта проблема возникает только при стартовом положении инструмента на 180 градусов относительно СК, от которой постпроцессируем. Если вставить промежуточную СК, то проблема исчезает. Можно, конечно, в уме держать это и не допускать , но всё таки, это не есть хорошо. Лучше пофиксить это.

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

неужели так жалко постпроцессор ? мне в качестве учебного примера он нужен!!

В качестве учебного примера на форуме есть отличная документация, и даже на русском (!!!) и даже для многоосевой обработки. Возьмите эту документацию, любой пост, добавьте в кинематику ещё одну ось, и пробуйте. Сложного нет ничего.

Форумы предназначены для задания вопросов и получения ответов. А Вы просите готовое решение на блюдечке. Что Вам не понятно в создании поста? Как добавить ось?

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

Тестировал готовый пост, и нашёл проблему, решить которую не знаю как. И не понимаю, почему она происходит.

Заданный вектор инструмента при пятиосевой обработке может быть достигнут двумя различными положениями осей станка, что мы и видим. Вы хотите, чтобы угол B был 30 градусов и положительный Z, постпроцессор рассчитал 150 градусов и отрицательный Z. При этом результат один и тот же - фреза придет в нужную точку при требуемой ориентации относительно детали.

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

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

Да, я пробовал играться с разными опциями в раздере "Конфигурация многоосевой". Не получилось. При установке пределов перемещения тех, что мне нужно (для оси В это -15/+30) , пост пишет такие ошибки: Can't reset axis limit B=150.000 degrees during reconfiguration without a retract procedure as the interval between the limits is too narrow., или : Retract and Reconfigure cannot be processed.

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

Я понимаю, что с точки зрения логики ориентация инструмента относительно детали правильная, но заставить пост сделать это при помощи опций Rezet angles only, Retract and Reconfigure - не удалось. Пост хочет вращать ось В, но не трогает ось С. Хотя, с точки зрения человека провернуть ось токарки - более логично.

Там есть ещё настройка ручная, но насколько я понимаю, там описывается порядок команд при отводе/подводе инструмента вручную, как хочет пользователь. Но как описать какую ось вращать - нет.

Я в тупике.

Ведь пост делает правильную реконфигурацию, когда поворот на 179 или 181 градус. Но, не хочет это делать, когда ровно 180. Тут вроде как в другом проблема. А?

Пока что не вникал в команды в постпроцессоре в разделе "Режимы контроллера". Вкл/выкл мультиакцис, вкл/выкл рабочую плоскость, настройки рабочей плоскости. Может, там собака порылась?

Или это просто глюк софта? Тоже запросто может быть. (PMPost4800).

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

Попробуйте в разделе "конфигурация многоосевой" поставить "при достижении угловых пределов" - "перемещения".

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

Пробовал разные варианты.

Хотите посмотреть пост?

Не откажусь, вместе с постпроцессируемой CL-Data.
Ссылка на сообщение
Поделиться на других сайтах

Каким-то чудесным образом, но проблема с поворотом на 180 градусов (<noindex>здесь писал</noindex>) решилась. Вроде ничего нового не вводил в пост, но проблема исчезла, делает всё как нужно.

Сейчас жду от производителя станка правильных программ с режимом RTCP, чтобы включить этот режим. Но они что-то тупят...

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

У ПоверМИЛЛа есть одна интересная "фишка". То, что он показывает красным цветом - это перемещения по G0, а то,что показано сиреневым цветом (напр. относительные перемещения) - это перемещения по G1 с подачей быстрых перемещений. В ПМ-Посте такая фишка исправляется только скриптом.

Подключите следующий скрипт к команде "Move Linear" и все будет исправлено.

function Moving_Correct()

{

var res = "";

var mt = GetParam("%p(Move Type)%");

var fr = GetParam("%p(Feed Rate)%")

var mr = GetParam("%p(Skim Rate)%")

if (mt == "LINK" && fr == mr)

{ res += StandardResponse("%b(Move Rapid)%")}

else { res += StandardResponse("%b(Move Linear)%")};

return res;

}

Спасибо !

У меня нет опыта работы на многоосевой машине и написания УП для нее ,

поэтому такой вопрос .

Какие могут быть неприятности , если упростить скрипт ?

{

var res = "";

var fr = GetParam("%p(Feed Rate)%")

var mr = GetParam("%p(Skim Rate)%")

if (fr == mr)

{ res += StandardResponse("%b(Move Rapid)%")}

else { res += StandardResponse("%b(Move Linear)%")};

return res;

}

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

Благодарю !

Дело в том , что пока у меня все траектории выводятся как :

APPROACH->CUT/LINK/...CUT->RETRACT

и при условии LINK начало и конец программы выводятся в G1 .

Не очень принципиально , конечно , но для единообразия

хотелось бы G0 при fr==mr .

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

Уважаемые господа заседатели!

немогли бы вы помочь, намекнуть, где в дакпосте исправить что бы получить сторочки в программе

N 23 x15;y15;I=AC(12);J=AC(12)

символы I=AC, J=AC и скобки вокруг значения

зараннее благодарен

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • maxx2000
      Подушную малость. Чё там. Уже в упор научились резьбу резать без выходной канавки?
    • ispite
      Здравствуйте, не могу построить стандартную сетку, что не позволяет дальше провести расчёт. Получается сделать сетку "на основе кривизны", но солид отказывается считать, после нажатия кнопки "запустить исследование" происходит сбой. https://disk.yandex.ru/d/D8wvRbYMW1lWjQ
    • ddm
      изготовить по чертежу с последующим покрытием,цинкование ,по 1000 шт каждой позиции ,предложение отправить на почту qwer463@yandex.ru
    • sklide008
      И еще можно ли задать горчие клавиши на кнопки открыть, скрыть и тд?
    • sklide008
      Подскажите, пожалуйста, в инвенторе есть такой пункт упорядочи по алфавиту дерево. Здесь найти такого не могу, пытался treesorter ставить но он добавляет просто в папку а не сортирует в дереве. Есть ли такой макрос чтобы все детали в дереве по порядку и алфавиту шли?
    • stanislavz
      Есть станок с данным контроллером. Все работает. Недавно была проблема с передачей данных - установил запасной контроллер. А запасной контроллер сказал нет работе. Проблема была в программе компьютера для передачи данных. Грустно, досадно, контроллер был куплен как рабочий. Как бы и не горит, но необходимо поправить. Плата управления с процессором mc68020, память hm628128-10. Память буферным питанием от 3 батареек + 0,5 Фарада на плате как буфер для замены батареек на 1 сутки. Лежало долго, без батареек. Симптомы: После первого включения, в памяти были и программы и параметры (0 странность). Честно, удивило. Но - система жутко тормозит, отклик на нажатие кнопки 3-5 секунд. В таком режиме сумел закачать машинные параметры под свой станок. Но это заняло час.. 4 строки и ждет секунд 10 итд. Есть видео. Перекинул с рабочего контроллера, БП, плату плц, ээпром плц - все то же. Проверил осциллографом кварцы живые , частота есть, амплитуда хорошая. 1 странность - после манипуляций по замене батарейки, старые записи из памяти исчезли. Ничего не коротнул. Возможно 0,5 Ф был не заряжен. Там тоже необходимы сутки для зарядки. Но как оно было запечатоно до этого - мистика. 2 странность. Если плата лежит ночь без питания, только с буфером - потом 2-3 минуты работает хорошо. 3 аналогично работает 2-3 минуты если питание отключить и очистить питание памяти (выпаял 0,5 Ф буфер с платы) Проверка памяти на старте есть. Проходит хорошо. На зависает, на холодную пайку не похоже. Шевелил / двигал все. Да и не виснет, именно тормозит. При том если оставить на час - тоже все стабильно плохо. Если набрать быстро 5 символей- экран сразу пуст, но после задержки символы будут на экране. Заказал второй процессор и память. 10 штук. Подавал прямо 5 вольт на память - все так же. Токи потребления между плохой и хорошей платой смогу проверит.    
    • brigval
    • Ветерок
      "увеличение оптимизации". Оптимизацию невозможно ни увеличить, ни уменьшить.
    • gudstartup
      @boomeeeer может от страны зависит
    • david1920
      нет время нет заниматься да и информации новой нет Это я на других станках делал
×
×
  • Создать...