Ug_user

3D-коррекция при многоосевой обработке

Для какой системы управления Вы хотели бы реализовать 3D-коррекцию?   65 пользователей проголосовало

  1. 1. Для какой системы управления Вы хотели бы реализовать 3D-коррекцию?

    • Heidenhain iTNC 430(530)
      25
    • Siemens Sinumeric 840D
      11
    • FANUC
      21
    • Другая
      8

Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.
117 сообщений в этой теме

Пока летел в самолете из Перми - набросал схему 3d-коррекции для концевых фрез со скруглением. Скоро проверю на станке!

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


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


У этой темы 10000 просмотров, видимо - тема популярная. Неужели это такая насущная задача - получить программу на фрезу д32, а реально зарядить д20? Согласен, задачка 3д припуска достаточно интересна, но вот насколько востребован "переточенный" инструмент? 

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


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

почему сразу с 32 на 20??? переточили на 31 и что программу пересчитывать? а с 3-д коррекцией самое то! 

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


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

У этой темы 10000 просмотров, видимо - тема популярная. Неужели это такая насущная задача - получить программу на фрезу д32, а реально зарядить д20? Согласен, задачка 3д припуска достаточно интересна, но вот насколько востребован "переточенный" инструмент? 

Ну, если рассуждать чисто теоретически, когда сам пишешь программу и сам на станке обрабатываешь, то смысл есть. Прошёл, например, фрезой d20 чистовую, а у тебя её отогнуло, или подсела она, или люфты вмешались, ты прямо на станке коррекцию ввёл и в размер попал (хотя в такой ситуации недолго с другим размером инструмента всё на компе перегенерировать). Но! В реальности, если ты только пишешь программу, а обрабатывает станочник или наладчик я бы такую программу отдавать в работу не рискнул бы. Во-первых, действительно, а если вместо d20 поставят d10? Подачу и обороты поменять не долго, а если я шаг дал на дватцатку миллиметров по 10? Там же десятка просто развалится на фиг. А во-вторых, представьте себе ситуацию: у станочника размер не вышел и он в коррекциях значения набавил, после обработки замерил, а у него деталь из допуска выпала соток на 5. Что ему помешает вернуть все значения коррекций взад и обвинить во всех грехах программиста, дабы прикрыть свою задницу? На кого тогда спишут небольшую плиту пресс-формы, ну где-нибудь метр на метр?

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

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


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

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

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


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

Для NULL_TAG - приведенный пример перехода с фрезы D20 на D16 - конечно же, утрированный. Хотя - на обработанной детали разница в обработке этими разными фрезами практически не была заметна.

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


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

Да все это понятно.. В конце концов все сводится к математике. А эту математику можно реализовать и в Фануке, и в Синумерике, и в ХХ?

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


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

Спасибо уважаемому Ug_user за схему! я наконец то понял смысл! до поста в NX мне далеко, а программку в С++ реализую чтобы получить программы с 3д-коррекцией!  :biggrin:  :clap_1:

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


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

Умница!

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


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

Хотелось бы показать что получилось у меня! 

сильно не пинайте!  :smile:

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

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


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

Молодца! Очень утомительно было писанину читать.

А программу в Vericut очень просто "отматать", сделай ненужную неактивной, и все.

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


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

Спасибо!

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


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

Мутно как-то.. Откуда взялись A5 B5 C5, в смысле что это такое?  Зачем программа на С++ ? Она делает другую ЧПУ программу? 

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


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

Я так понял, что на C++ просто происходит преобразование УП после стандартного поста на уже нормальную. Подставляются шапки/корректора и т.п...

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


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

NULL_TAG A5, B5, C5 это координаты вектора нормали, они нужны для расчета смещения при коррекции! С++ как правильно заметил Dimasik-ola действительно нужен для преобразования УП после стандартного поста, и она действительно делает другую программу! Я прекрасно понимаю что программу нужно получить после постпроцессора, но пока ума не хватает на это! Пока реализовал так, траектория-постпроцессор - промежуточная УП - приложение на С++ - окончательная УП с 3д- коррекцией!

Извиняюсь за долгую писанину в ролике, и за отсутствие музыки о которой упомянул в конце ролика! :)

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


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

Все можно через постпроцессор сделать. mom - переменные вектора нормали в точке контакта, в системе имеются. В чем у Вас проблема не пойму, зачем через С++ пытаться что то реализовывать?

 

Вот мои примеры отработанные года 2 назад, все сделано через обычный постпроцессор NX:

 

5 осевая, инструмент сферическая фреза

 

N9 ;5AXIS_3DF_ANGLE
N10 T="FREZA_D10" ;(TOOL FREZA_D10 D=10.000 Z=3 r=5.000)
N11 M6
N12 D1
N13 G0 G153 Z-1 D0
N14 G0 G153 X-450 D0
N15 D1
N16 M11
N17 M23
N18 G0 C179.153
N19 G0 B-51.522
N20 TRAORI
N21 G0 X50.004 Y-.696 S5000 M3
N22 Z-2.716
N23 G0 X50.004 Y-.696 Z-2.716 B-51.522 C179.153
N24 X45.989 Y1.71 Z-7.968
N25 CUT3DF
N26 G41 A5=+.923212 B5=0.0 C5=+.38429
N27 G1 X34.99 Y-.368 Z-10. C177.746 A5=+.922934 B5=-.022657 C5=+.38429 F1000. M8
N28 X34.976 Y-.736 C176.34 A5=+.9221 B5=-.0453 C5=+.38429
N29 X34.954 Y-1.103 C174.934 A5=+.920711 B5=-.067916 C5=+.38429
N30 X34.922 Y-1.47 C173.528 A5=+.918767 B5=-.090491 C5=+.38429

 

Или тоже самое в векторном формате, отрабатывалось традиционно для синумерика с более благоприятной динамикой осей (плавнее)

 

N9 ;5AXIS_3DF_VECTOR
N10 T="FREZA_D10" ;(TOOL FREZA_D10 D=10.000 Z=3 r=5.000)
N11 M6
N12 D1
N13 G0 G153 Z-1 D0
N14 G0 G153 X-450 D0
N15 D1
N16 M11
N17 M23
N18 G0 C179.153
N19 G0 B-51.522
N20 TRAORI
N21 G0 X50.004 Y-.696 S5000 M3
N22 Z-2.716
N23 G0 X50.004 Y-.696 Z-2.716 A3=+.570751 B3=-.34202 C3=+.746502
N24 X45.989 Y1.71 Z-7.968 A3=+.570751 B3=-.34202 C3=+.746502
N25 CUT3DF
N26 G41 A3=+.570751 B3=-.34202 C3=+.746502 A5=+.923212 B5=0.0 C5=+.38429
N27 G1 X34.99 Y-.368 Z-10. A3=+.562186 B3=-.355924 C3=+.746502 A5=+.922934 B5=-.022657 C5=+.38429 F1000. M8
N28 X34.976 Y-.736 A3=+.553282 B3=-.369614 C3=+.746502 A5=+.9221 B5=-.0453 C5=+.38429
N29 X34.954 Y-1.103 A3=+.544044 B3=-.38308 C3=+.746502 A5=+.920711 B5=-.067916 C5=+.38429
N30 X34.922 Y-1.47 A3=+.534479 B3=-.396317 C3=+.746502 A5=+.918767 B5=-.090491 C5=+.38429
 

Частный случай для 3 - осевой обработки (с фиксированной осью), инструмент сферическая фреза

 

N9 ;3AXIS_3DF_2
N10 T="FREZA_D10" ;(TOOL FREZA_D10 D=10.000 Z=3 r=5.000)
N11 M6
N12 D1
N13 G0 G153 Z-1 D0
N14 G0 G153 X-450 D0
N15 D1
N16 M11
N17 M23
N18 G0 C284.323
N19 G0 B-56.805
N20 TRAORI
N21 G0 X-24.206 Y54.03 S4000 M3
N22 Z-50.97
N23 G0 X-24.206 Y54.03 Z-50.97 B-56.805 C284.323
N24 X-27.326 Y41.518 Z-63.482
N25 CUT3DF
N26 G41 A5=0.0 B5=+1. C5=0.0
N27 G1 X-23.15 Y30. Z-60. A5=0.0 B5=+1. C5=0.0 F500. M8
N28 X-19.843 A5=0.0 B5=+1. C5=0.0
N29 X-16.536 A5=0.0 B5=+1. C5=0.0
N30 X-13.229 A5=0.0 B5=+1. C5=0.0
 

Обработка с 3-D коррекцией концевой цилиндрической фрезой по профилю (наклонных стенок кармана) - Это частный случай:

 

N9 ;5AXIS_3DC_ANGLE
N10 T="FREZA_D20" ;(TOOL FREZA_D20 D=20.000 Z=3 r=0.200)
N11 M6
N12 D1
N13 G0 G153 Z-1 D0
N14 G0 G153 X-450 D0
N15 D1
N16 M11
N17 M23
N18 G0 C230.829
N19 G0 B-28.342
N20 TRAORI
N21 G0 X31.226 Y-42.154 S3000 M3
N22 Z20.
N23 G0 X31.226 Y-42.154 Z20. B-28.342 C230.829
N24 X20. Y-44.852 Z-7.019
N25 CUT3DC
N26 OFFN=-10.
N27 G42 G1 Y-24.951 Z-9.006 F1000. M8
N28 X21.245 Y-24.937 Z-9.202 B-27.766 C231.398
N29 X22.49 Y-24.857 Z-9.39 B-27.187 C231.992

 

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

Изменено пользователем Vladislav-dobrynin

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


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

Все можно через постпроцессор сделать. mom - переменные вектора нормали в точке контакта, в системе имеются. В чем у Вас проблема не пойму, зачем через С++ пытаться что то реализовывать?

 

Так человек вроде предельно ясно, четко и честно написал - "Я прекрасно понимаю что программу нужно получить после постпроцессора, но пока ума не хватает на это!"

А вообще тема затевалась несколько в ином ключе. А что буде, если нету в станочке опции CUT3DF и иже? .....

То-то!!!!!

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


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

 

На Sinumerik присутствие этих команд - стандарт. Для станков Mazak аналогичные команды - скорее всего дополнительная опция.

Тема была в ключе как работать с 3D коррекцией без функции 3D коррекции на станке? Вы считаете это возможным? ну и как же?)

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


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

 

А вообще тема затевалась несколько в ином ключе. А что буде, если нету в станочке опции CUT3DF и иже? ..... То-то!!!!!

 

На Sinumerik присутствие этих команд - стандарт. Для станков Mazak аналогичные команды - скорее всего дополнительная опция.

Тема была в ключе как работать с 3D коррекцией без функции 3D коррекции на станке? Вы считаете это возможным? ну и как же?)

 

Ага, стандарт.... А вот занесет нелегкая на Мотор-Сич - спроси у них про этот стандарт на Хермле. По теме - да, мы считаем это возможным и реализовали это. А как - это ноухау.

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


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

 

На декелях в сименсе присутствует, на хермле в хайденхайне - не проверял. Ноухау это хорошо). Возможно к значению каждой линейной координаты в кадре прибавляются переменные, пересчитываемые для каждого кадра - грубо говоря как произведение соответствующего компонент-вектора на переменную активной величины коррекции из таблицы инструмента станка. Ваше ноухау в этом?)

Изменено пользователем Vladislav-dobrynin

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


Ссылка на сообщение
Поделиться на других сайтах
А что буде, если нету в станочке опции CUT3DF и иже? ..... То-то!!!!!

 

А если не будет, то пойду следующим путем:

Трассировка по точке контакта в NX, На станке привязка сферической фрезы по центру ее радиуса

 

N9 ;5AXIS_3DF_ANGLE

N10 T2 ;(TOOL FREZA_D10 D=10.000 Z=3 r=5.000)

N11 M6

N12 D1

R800=$TC_DP6(2,1)

N13 G0 G153 Z-1 D0

N14 G0 G153 X-450 D0

N15 D1

N16 M11

N17 M23

N18 G0 C179.153

N19 G0 B-51.522

N20 TRAORI

N21 G0 X50.004 Y-.696 S5000 M3

N22 Z-2.716

N23 G0 X50.004 Y-.696 Z-2.716 B-51.522 C179.153

N24 X45.989 Y1.71 Z-7.968

; Начало 3D коррекции

N27 G1 X[34.99 + [0.92293*R800]]  Y[-0.368+[-0.022657*R800]]  Z[-10.+[0.38429*R800]]  C177.746 F1000. M8

N28 X[34.976+[0.9221*R800]]  Y[-0.736 + [-0.0453*R800]]  Z[-10.+[0.38429*R800]]  C176.34

и.т.д.

 

где:

номер инструмента

активная режущая кромка инструмента (номер корректора)

машинная переменная, хранящая значение коррекции на радиус

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

x y z компоненты вектора нормали в точке контакта

Изменено пользователем Vladislav-dobrynin

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


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

Да, таким образом (как впрочем и стандартными CUT3DF и др ) можно получить именно коррекцию. То есть отодвинуть или придвинуть инструмент от поверхности (к поверхности) на величину коррекции. А как быть с переточенным инструментом? Или программа посчитана на фрезу сферическую, а есть желание пройти концевой со скруглением?

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


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

Доброго времени суток! Я тоже считаю что тема была создана как сделать 3д-коррекцию без использования  специальных средств системы ЧПУ! По поводу ноу-хау, никаких ноу-хау, по крайней мере я, точно не создал, обычная математика! В своем ролике я просто показал что получилось у меня! Я понимаю что это далеко от идеала, но так сделал я, кто-то другой сделает по другому - сколько людей столько и мнений! Много высказываний при чем здесь С++? Отвечу просто - я пока плохо знаком с языком TCL  и с генератором постпроцессоров NX, в чем смог в том и реализовал!

Ув. Vladislav-dobrynin  в приведенном вами примере программы, формулы как то маловаты, похоже что они для концевой фрезы, и хорошо что вы можете все это реализовать используя только NX, я же пытаюсь изучить NX дома, поэтому пока все это выглядит коряво и через всякие сторонние программы, а на работе используют совсем другой CAM! И еще, не все CAMы вроде выводят точку контакта при 5-осевой обработке, некоторые выводят центр кончика инструмента (в этом конечно могу ошибаться) вот и выходит плюс моего скромного приложения в том что оно работает с любым САМом! 

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

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


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

Проверил, вот что получается при замене шаровой фрезы на концевую со скруглением, по одной и той же программе! Не красиво в местах где фреза меняет направление движения, если конечно их заблаговременно вывести за пределы детали, тогда будет наверно все красиво! 

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


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

 

А пройти каким образом хотите, "колоколом"? т.е закатать поверхность качанием фрезы и при этом есть вероятность что контакт будет как с дном, так и с радиусом скуления, так и с торцем инструмента ? Если это имеете ввиду, то вопрос более интересный! Подумаю скажу.

 

 

 

Ув. Vladislav-dobrynin  в приведенном вами примере программы, формулы как то маловаты, похоже что они для концевой фрезы, и хорошо что вы можете все это реализовать используя только NX, я же пытаюсь изучить NX дома, поэтому пока все это выглядит коряво и через всякие сторонние программы

 

Как раз таки я привел пример для "закатки" сферической фрезой, как в 3 так и в 5 осях будет работать. Точку трассировки нужно выводить по контакту с поверхностью, NX позволяет это сделать. Формулы короткие! 7 класса школьного курса геометрии, в данном примере все предельно просто! Если САМ не выводит векторов нормали точек контакта то боюсь увы, минимальных достаточных данных не хватит для 3d коррекции.

Посмотрел ролик, а где у Вас происходит сам расчет величин смещения? 

Изменено пользователем Vladislav-dobrynin

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


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

Все понял почему у меня для шаровой фрезы поболее формула, у вас для центра шарика а у меня для кончика!

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


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

 

Возьмите стандартный постпроцессор для sinumerik из библиотеки, там есть полезные процедуры где происходит пересчет траектории с кончика на контакт при помощи использования готовых функций. В исходную CLS всегда выводиться трассировка кончиком, только при включенном флажке "вывод трассировки по контакту" постпроцессор включает эти функции и производит пересчет на контакт.

Расчет величин смещений для коррекции, происходит в разработанной Вами утилите или непосредственно на станке?

Изменено пользователем Vladislav-dobrynin

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


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

Формулы вставляет утилита, а считает станок! Иначе то нет смысла если смещения будет считать утилита!

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


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

Просто я не увидел формул на ролике (ну возможно Вы их скрыли, не захотели показывать), и еще не увидел программных средств смещения траектории, значения в ХУZ постоянные передаются, при помощи чего траектория по рассчитанным данным корректируется, какой командой?

Изменено пользователем Vladislav-dobrynin

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


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

Никаких специальных команд, только формулы! Хотя одна команда есть TRAORI но к коррекции она не относится!

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


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

Понятно. Формул не будет.

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


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

 

В компенсации изменения геометрической формы инструмента (расчет траектории был для сферы а на станке стал использоваться тороид) я смысла не вижу никакого! Вовсе не в этом смысл использования 3D коррекции! А вот конкретно для цилиндрической концевой фрезы с радиусом, я сделал бы следующим образом: Имеем три возможных случая контакта: 1 - по периферии, 2 - по радиусу скругления, 3 - по торцу. Для коррекции в этом случае целесообразно брать соответственно 3 величины, пусть это будут соответствующие величины износа указываемые в таблице инструмента станка. Если таких на конкретной стойке не имеется, то можно воспользоваться соответствующими разностями фактических величин параметров описания инструмента в стойке с величинами параметров заданных для инструмента в NX. В УП эти величины положим в любые 3 локальные переменные пользователя. 

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

1) Если угол между вектором(1) оси инструмента и вектором(2) нормали его контакта с обрабатываемой поверхностью равен 90град {пример: вектор(1) +0,5, +0,5, +0,5    вектор(2) -0.5, -0.5, +0,5}, то используем величину коррекции "1 - по периферии"

2) Если угол между вектором(1) оси инструмента и вектором(2) нормали его контакта с обрабатываемой поверхностью строго больше 0 но строго меньше 90 {пример: вектор(1) +0,0, +0,0, +1,0     вектор(2) +0.5, +0.5, +0,5}, то используем величину коррекции "2 - по радиусу скругления"

3) Если угол между вектором(1) оси инструмента и вектором(2) нормали его контакта с обрабатываемой поверхностью равен 0град {пример: вектор(1) +0,5, +0,5, +0,5    вектор(2) +0.5, +0.5, +0,5}, то используем величину коррекции "3 - по торцу"

 

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

 

G1 X[34.99 + [0.92293*R800]]  Y[-0.368+[-0.022657*R800]]  Z[-10.+[0.38429*R800]]  C177.746 - случай контакта по периферии фрезы, R800 - величина износа фрезы по радиусу.

 

G1 X[34.99 + [0.92293*R801]]  Y[-0.368+[-0.022657*R801]]  Z[-10.+[0.38429*R801]]  C177.746 - случай контакта по радиусу скругления фрезы, R801 - величина износа фрезы по радиусу скругления главной и вспомогательной режущих кромок. 

 

G1 X[34.99 + [0.92293*R802]]  Y[-0.368+[-0.022657*R802]]  Z[-10.+[0.38429*R802]]  C177.746  - случай контакта по торцу фрезы, R802  - величина износа фрезы по ее длине.

 

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

Изменено пользователем Vladislav-dobrynin

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


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

Попробуем... 

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


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

Вот такой интерфейс моего скромного приложения 3Д-коррекция!

 

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


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

УХ ТЫ  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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


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

Смеетесь? Ну ладно!

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


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

Смеетесь? Ну ладно!

Да не смеюсь.. Тебя про формулы спрашивают, а ты фантики показываешь.

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


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

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

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

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

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


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

Войти

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


Войти сейчас

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

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