Как написать радиус на чпу

В этой статье объясняется использование кода G02 G03 на токарном станке G. G код G02, G03 используются для круговой интерполяции в CNC станках.

Для фрезерных станков команды G02 (Круговая интерполяция по часовой стрелке) и G03 (Круговая интерполяция против часовой стрелки) имеют несколько иное значение, не смотря на схожий принцип действия. Для того чтобы понять разницу между написанием программ для токарного и фрезерного станков, приведу несколько не сложных примеров программирования токарного станка с ЧПУ.

Пример №1 программирования токарного станка с ЧПУ Fanuc

Пример №1 программирования токарного станка с ЧПУ Fanuc
Пример №1 программирования G03 на токарном станке с ЧПУ Fanuc
N4 G00 X0 Z0
N5 G01 X1.25 F0.2
N6 G01 X4.836 Z-1.793
N7 G03 X5.422 Z-2.5 I-0.707 K-0.707
N8 G01 Z-5

Пример №2 программирования G02 G03 на токарном станке

Пример №2 программирования G02 G03 на токарном станке
Пример №2 программирования G02 G03 на токарном станке
N20 G50 S2000 T0300
G96 S200 M03
G42 G00 X35.0 Z5.0 T0303 M08
G01 Z-20.0 F0.2
G02 X67.0 Z-36.0 R16.0
G01 X68.0:
G03 X100.0 Z-52.0 R16.0
G01 Z-82.0
G40 G00 X200.0 Z200.0 M09 T0300
M30

G-код G02 G03 Пример программы I&K

G02 G03 Циклическая интерполяция G-кода может быть запрограммирована двумя способами:

G02 X... Z... R...
G02 X... Z... I... K...

Ниже представлена ​​та же программа с ЧПУ, но в этой версии используются I & K с кодом G02 G03

N20 G50 S2000 T0300
G96 S200 M03
G42 G00 X35.0 Z5.0 T0303 M08
G01 Z-20.0 F0.2
G02 X67.0 Z-36.0 I16.0 K0
G01 X68.0:
G03 X100.0 Z-52.0 I0 K-16.0
G01 Z-82.0
G40 G00 X200.0 Z200.0 M09 T0300
M30

Пример №3. Круговая интерполяция G02 G03 на токарном станке

Пример №3 программирования токарного станка с ЧПУ
Пример №3 программирования токарного станка с ЧПУ
N20 G50 S2000 T0300
N30 G96 S200 M03
N40 G00 X0 Z3.0 T0303 M08
N50 G42 G01 Z0 F0.2
N60 G03 X20.0 Z-10.0 R10.0
N70 G01 Z-50.0
N80 G02 X100.0 Z-74.385 I40.0 K20.615
N80 G01 Z-125.0
N90 G40 U2.0 W1.0
N100 G00 X200.0 Z200.0 M09 T0300
N110 M30

Вы можете использовать R или IK с G-кодами G02 / G03, см. N80 в обоих примерах программ с ЧПУ

N20 G50 S2000 T0300
N30 G96 S200 M03
N40 G00 X0 Z3.0 T0303 M08
N50 G42 G01 Z0 F0.2
N60 G03 X20.0 Z-10.0 R10.0
N70 G01 Z-50.0
N80 G02 X100.0 Z-74.385 R45.0
N80 G01 Z-125.0
N90 G40 U2.0 W1.0
N100 G00 X200.0 Z200.0 M09 T0300
N110 M30

Пример №4 программирования станка ЧПУ G-код G02

Пример №4 программирования станка ЧПУ G-код G02
Пример №4 программирования станка ЧПУ G-код G02
N10 T0101
N20 G92 S1000 M42
N30 G96 S200 M03
N40 G00 X0 Z5
N50 G01 Z0 F0.5
N60 G01 X80 F0.2
N70 G02 X100 Z-30 I50 K0
N80 G01 Z-120
N90 G00 X200 Z200
M30

Объяснение G-кода

  • G92: ограничение скорости шпинделя.
  • G96: постоянная поверхностная скорость.
  • G02: круговая интерполяция по часовой стрелке.

G02 Пояснение

G02 имеет некоторые значения в блоке программирования ЧПУ, такие как x, z, I, K.

  • X: конечная точка дуги по оси x.
  • Z: конечная точка дуги по оси z.
  • I: расстояние от начальной точки дуги до центра дуги по оси x.
  • K: расстояние от начальной точки дуги до центра дуги по оси z.

Программа №5 для токарного станка с ЧПУ. Круговая интерполяция G03

Круговая интерполяция G03 на токарном станке
Круговая интерполяция G03 на токарном станке
N1 G00 X0 Z0
N2 G01 X11
N3 G01 Z-15
N4 G03 X11 Z-27 I-8 K-6

Описание

Буквы I и K для G03.

I Расчет для круговой интерполяции G03

I — это расстояние от начальной точки дуги до центра дуги по оси x. Это значение указывается не в диаметре, а в качестве значения радиуса, поэтому

  • Найдите начальный диаметр, он равен 11
  • Теперь сделайте значение радиуса, разделив его на 2, например, 11/2 = 5,5.
  • Это простой пример того, как расстояние от центра дуги до центра детали задается, иначе мы должны его вычислить.
  • Итак, теперь просто добавьте 2,5 к 5,5, рассчитанным ранее: 2,5 + 5,5 = 8.
  • Это значение I 8, это расстояние от начальной точки дуги до центральной точки туза.

Расчет K для круговой интерполяции G03

K — расстояние от начальной точки дуги до центра дуги по оси z.

  • В этом примере это просто, вам просто нужно вычесть 21 из 15, например 21-15 = 6.
  • Таким образом, значение от начальной точки дуги до центральной точки дуги по оси Z равно 6.

Круговая интерполяция G02 G03 на токарном станке


Программирование радиусов скруглений



Dmitriy_86

  • Ответить в тему

  • Создать тему

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


Dmitriy_86

Dmitriy_86

0


    • Жалоба
    • Рассказать

Здравствуйте, уважаемые коллеги! Подскажите, пожалуйста, как правильно писать при программировании код с радиусом скруглений кромок как на наружном диаметре так и на внутреннем (по G2 и G3). Например, сопряжение (радиус 0,2 мм) торца и наружного диаметра 50 мм пластиной радиусом 0,2, получается что-то вроде:

G1 X49.8 Z0.

G2 X50. Z-0.2 R0.2?

Спасибо.

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


zloyuri

zloyuri

283


    • Жалоба
    • Рассказать

Вы вроде CAM-ами владеете? Сделайте там и посмотрите,как правильно…

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


Dmitriy_86

Dmitriy_86

0


  • Автор
    • Жалоба
    • Рассказать

Я имею ввиду, если вручную писать код, то по какой формуле как считать координаты правильно?

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


Bully

Bully

1 095


    • Жалоба
    • Рассказать

тут движение будет по сложной траектории, поскольку точка контакта меняется. Вручную замучаешься считать. Делай в САМ

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


A_1

A_1

146


    • Жалоба
    • Рассказать

Нет, не по сложной, по дуге окружности, уже обсуждалось
 

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


Bully

Bully

1 095


    • Жалоба
    • Рассказать

по дуге окружности, уже обсуждалось

 Это если внести поправку на радиус закругления инструмента и использовать коррекцию. Без коррекции будет сложная траектория перехода (т.е. если за ноль инструмента взять касание).

PS Речь про токарку, ежли шо.

PPS Или вы имеете ввиду дугу большего радиуса с произвольным расположением центра (который считать надо т.е.)? Тогда возможно

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


A_1

A_1

146


    • Жалоба
    • Рассказать

PPS Или вы имеете ввиду дугу большего радиуса с произвольным расположением центра (который считать надо т.е.)? Тогда возможно

этот PPS  не понял)

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


Bully

Bully

1 095


    • Жалоба
    • Рассказать

этот PPS  не понял)

Да вот, что имел ввиду:

post-25558-0-35570200-1384951868_thumb.jpg

А если в таком случае взять за ноль  просто касание по Z и по Х, то контур не получится.

post-25558-0-47658800-1384952152.jpg

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


Dmitry_utyos

Dmitry_utyos

5


    • Жалоба
    • Рассказать

Здравствуйте, уважаемые коллеги! Подскажите, пожалуйста, как правильно писать при программировании код с радиусом скруглений кромок как на наружном диаметре так и на внутреннем (по G2 и G3). Например, сопряжение (радиус 0,2 мм) торца и наружного диаметра 50 мм пластиной радиусом 0,2, получается что-то вроде:

G1 X49.8 Z0.

G2 X50. Z-0.2 R0.2?

Спасибо.

Вам это надо для притупления острых кромок? На фануке можно выполнять радиусы/ фаски без G2/G3, просто указывая в кадре R (радиус) или C (фаска) и размер. Если работаете без коррекции, то для Вашего случая (пластина радиусом 0,2 ) будет так:

N005  G1X49.Z0.

N010  X50.R0.4

N015  Z-1.  (значение должно быть больше чем величина радиуса в кадре 010 )

P.S. Если станок с приводом то перед R0.4 ставится запятая

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


A_1

A_1

146


    • Жалоба
    • Рассказать

А если в таком случае взять за ноль просто касание по Z и по Х, то контур не получится.

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

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


Bully

Bully

1 095


    • Жалоба
    • Рассказать

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

 То, что по дуге, это понятно. А вот составить вручную координаты и центр этой дуги затруднительно. И дуга будет разной в зависимости от нуля инструмента (вернее, точки, на которую рассчитывается траектория). Говоря «сложный контур», я это имел ввиду. Прошу прощения, если непонятно написал. Поправляюсь (PS поста № 13). При 90гр вручную легко.

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


Metal_Cutter

Metal_Cutter

109


    • Жалоба
    • Рассказать

G1 X49.8 Z0. G2 X50. Z-0.2 R0.2?

Вместо G2 скорее всего должно быть G3. По X нужно учитывать 2 радиуса (он же задается в диаметральном выражении). Так же Вы не учитываете радиус кромки. 

Например: при радиусе пластины 0.8.

G1 X48 Z0. 

G3 X50. Z-1 R1

В результате получаем R0.2

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


Bully

Bully

1 095


    • Жалоба
    • Рассказать

На фануке можно выполнять радиусы/ фаски без G2/G3, просто указывая в кадре R (радиус) или C (фаска) и размер. Если работаете без коррекции, то для Вашего случая (пластина радиусом 0,2 ) будет так:   N005  G1X49.Z0. N010  X50.R0.4 N015  Z-1.  (значение должно быть больше чем величина радиуса в кадре 010 )

Радиус скругления инструмента тут как учитывается?

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

Например: при радиусе пластины 0.8.

G1 X48 Z0. 

G3 X50. Z-1 R1

В результате получаем R0.2

Вот это уже похоже на правду. Я так понимаю, в качестве точки траектории взят центр радиуса скругления инструмента?

PS Прошу прощения, кажется, без разницы. Какая бы точка не участвовала, значения R и «Z-» будут равны сумме радиусов скругления контура и вершины инструмента. При обработке наружного скругления. При обработке внутренних углов же — радиус контура минус радиус инструмента. Это при 90гр. При меньших  или бо’льших надо считать через синусы/косинусы

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


A_1

A_1

146


    • Жалоба
    • Рассказать

Это при 90гр. При меньших или бо’льших надо считать через синусы/косинусы

При таких углах особенно удобно использовать способ, описанный @@Dmitry_utyos, через R

Вообще, я не знаю случаев, когда токарке сильно нужен CAM

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


Bully

Bully

1 095


    • Жалоба
    • Рассказать

При таких углах особенно удобно использовать способ, описанный @Dmitry_utyos, через R

Да, но в кадрах до него и после координаты надо считать через синусы/косинусы все равно. Чтобы не было ни недорезов, ни недообработки

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


ss_162

ss_162

31


    • Жалоба
    • Рассказать

При таких углах особенно удобно использовать способ, описанный @Dmitry_utyos, через R

Да, но в кадрах до него и после координаты надо считать через синусы/косинусы все равно. Чтобы не было ни недорезов, ни недообработки

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

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


Bully

Bully

1 095


    • Жалоба
    • Рассказать

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

 Я как раз эти кадры и имею ввиду. Их-то считать надо все равно. А чтобы радиус добавить, дополнительно, получается, считать не надо, это понятно.

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


ss_162

ss_162

31


    • Жалоба
    • Рассказать

Вообще, я не знаю случаев, когда токарке сильно нужен CAM

Это если Вы во времени не ограничены. А если программу нужно сделать быстро и быстро же в ней стратегию обработки изменить, то никакой супер-пупер программер за простеньким «камом» не угонится. Да и вдарится 100% не сегодня, так завтра. 

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


Dmitry_utyos

Dmitry_utyos

5


    • Жалоба
    • Рассказать

На фануке можно выполнять радиусы/ фаски без G2/G3, просто указывая в кадре R (радиус) или C (фаска) и размер. Если работаете без коррекции, то для Вашего случая (пластина радиусом 0,2 ) будет так:   N005  G1X49.Z0. N010  X50.R0.4 N015  Z-1.  (значение должно быть больше чем величина радиуса в кадре 010 )

Радиус скругления инструмента тут как учитывается?

Прибавляется к радиусу на детали. В кадре 010 указан радиус 0,4 — 0,2радиус инструмента+0,2 требуемый радиус.  Если бы инструмент имел радиус 0,8, то в 10-ом  кадре стоял бы радиус R1.

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

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

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

Если у вас есть аккаунт, войдите в него для написания от своего имени.

Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

  • Сейчас на странице

      0 пользователей

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

  • Сообщения


    • Александр1979

      Автор:

      Александр1979 · Опубликовано: 40 минут назад

      Благодарю за файл, сегодня попробую его загрузить.

      В параметрах  SKT100 и в этом файле разный коэффициент редукции (N105), также разное направление вращения (N031).

      Я только не понимаю — в руководстве B-65395EN/01 сказано что в параметре N125 должен быть код мотора (motor id num), а в параметре N030 должен быть 0. 

      В присланном же файле от SKT300 строки   N030P034      N125P00000


    • ГЕЛА


    • ГЕЛА

      Автор:

      ГЕЛА · Опубликовано: 54 минуты назад

      Посмотрите в правый нижний угол . Там за словом конфигурация выбрано 01. Это значит что сейчас заполняюся свойства для 01 исполнения. Свойства нужно заполнять для каждого исполнения отдельно  , чего судя по всему вы не делаете.


    • maxx2000

      Автор:

      maxx2000 · Опубликовано: 1 час назад

      @NGM многа букав, неосилил.

      Если в кратце.

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


    • AlexKaz

      Автор:

      AlexKaz · Опубликовано: 3 часа назад

      Ну да. Компас/APM FEM — это хорошо, но не достаточно для полноценной работы с расчётными случаями сложнее где-то уровня 1950-х гг. Поэтому, например, сабж начал устанавливаться в ВУЗах:

       

       

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

       

      Ну а я продолжаю думать, что сегодня OpenSource полноценно конкурирует с обеими софтинами. Для многих задач как хватало FreeCAD + CalculiX, так и продолжает хватать. Ну а OpenRadioss, несмотря на блобы, просто подарок.


    • a_schelyaev


    • статист

      Автор:

      статист · Опубликовано: 9 часов назад

      Посмотри в этой книжке про капилярные силы (стр 53).

      https://www.researchgate.net/profile/Valentin-Popov-2/publication/303589902_Mehanika_kontaktnogo_vzaimodejstvia_i_fizika_trenia_Ot_nanotribologii_do_dinamiki_zemletrasenij/links/5749764608ae5bf2e63f0c18/Mehanika-kontaktnogo-vzaimodejstvia-i-fizika-trenia-Ot-nanotribologii-do-dinamiki-zemletrasenij.pdf

      Там про углы смачивания для жидкостей сказано, что они выглядят так:

       

       

       

      Я не углублялся. Почитай, может полезное чего будет.


    • NGM

      Автор:

      NGM · Опубликовано: 9 часов назад

      То, что вы хотите, называется вариантное конфигурирование сборок и (обычно) реализуется средствами PDM-системы.
      По ссылке найдёте руководство ПСС по аналогичному функционалу. Ознакомьтесь и решите, нужно ли оно вам. Если вдруг решите, что «слишком сложно, надо что-то средствами Компаса» — поверьте, оно вам не надо.


    • gudstartup


    • boomeeeer

снятия
фасок под углом 45

При
программировании обработки конических
поверхностей линейные перемещения по
осям Х и Z задают в одном кадре. В этом
кадре управляющей программы указывают
координаты конечной точки перемещения
вершины резца с учетом знаков. Такой
способ программирования обработки
конических поверхностей, включая и
обработку фасок, является наиболее
универсальным, так как позволяет
программировать обработку с любым углом
конусности.

Если
резец имеет радиусную вершину, то при
переходе от цилиндрической к конической
поверхности по осям Х и Z необходима
коррекция на координаты конечной опорной
точки.

Управляющая
программа для обработки детали с прямым
и обратным конусом (рис. 22) имеет вид:

Рис.
22.
Программирование
обработки конических поверхностей

N001
Т1 S3 600 F0,25

Резец
Т1, третий диапазон, n
= 600 об/мин, s
= 0,25 мм/об.

N002
Х40 Z5 E

Подход
резца к точке 1 с координатами Х = 40, Z
= 5 ускорено.

N003
Z0

Перемещение
резца на рабочей подаче в точку с
координатами Х = 40, Z = 0.

N004
Х52 Z-30

Точение
прямого конуса на рабочей подаче.

N005
U-12
W-30

Точение
обратного конуса на рабочей подаче,
перемещение по координатам Х и Z задано
в относительной системе отсчета.

N006
Х54 Е

Отвод
резца до диаметра 54 мм ускорено.

N007
M02

Конец
управляющей программы; возвращение
резца в И.Т.

Для
снятия фасок под углом 45° можно
использовать и другой способ
программирования. При этом способе
обработку фаски под углом 45° задают
кадром, в котором указывают следующие
данные: одну из координат, по которой
идет обработка до фаски (X или Z); числовое
значение этой координаты, соответствующее
конечной точке перемещения с учетом
фаски со знаком, определяющим направление
перемещения; адрес С и число, определяющее
величину фаски. Знак перед числом под
адресом С соответствует знаку обработки
по координате X. Направление по координате
Z
задается только в отрицательную сторону.

Примеры
программирования снятия фасок в
абсолютной и относительной системах
отсчета приведены на рис. 23 и рис. 24.

Рис.
23.
Пример
записи в кадрах управляющей программы
обработки

фасок
при наружном точении: 1– движение,
предшествующее

обработке
фасок; 2– направление движения по
оси Х при обработке фаски

Рис.
24.

Примеры записи в кадрах управляющей
программы растачивания

фасок:
1– направление движения,
предшествующее обработке фаски,

2– направление движения по оси Х при
обработке фаски

2.6. Программирование обработки по дуге окружности

Кадр
управляющей программы, по которому
программируют обработку галтели и
скругления (дуга окружности с углом
90о),
содержит следующие данные: обозначение
координаты, по которой идет обработка
детали перед галтелью или скруглением
(X или Z); числовое значение координаты
конечной точки перемещения с учетом
галтели или скругления со знаком,
указывающим направление перемещения;
адрес Q и числовое значение радиуса
галтели или скругления. Знак перед
числовым значением под адресом Q должен
совпадать со знаком обработки по
координате X. Направление по координате
Z задают только в отрицательную сторону.

Примеры
записи обработки галтелей и скруглений
в абсолютной и относительной системе
отсчета приведены на рис. 25.

Рис.
25.
Примеры
записи в кадрах управляющей программы
обработки

галтелей
и скруглений: 1– направление
движения до галтели

или
скругления; 2– направление галтели
или скругления по оси X

Кадр
управляющей программы, которым
программируют обработку дуг окружности
в пределах угла до 90°, содержит обозначение
координат конечной точки дуги (X и Z),
числовые значения координат конечной
точки дуги в абсолютной или относительной
системах, адрес R и числовое значение
радиуса дуги со знаком плюс при обработке
по часовой, минус – против часовой
стрелки.

Примеры
записи кадров управляющей программы
для обработки дуг окружности приведены
на рис. 26 и рис. 27.

Рис.
26.
Примеры
записи обработки наружных поверхностей

по
дуге окружности (в пределах угла до 90°)

Рис.
27.
Примеры
записи обработки внутренних поверхностей

по
дуге окружности (в пределах угла до 90°)

Для
составления управляющей программы
чистовой обработки фасонной поверхности
детали (рис. 28) контурным резцом необходимо
определить отрезок ОВ
= ОА
АВ
= 80 – 20 = 60 мм;
= 52,9 мм.

Рис.
28.
Эскиз
детали и циклограмма движения инструмента

при
обработке фасонной (радиусной) поверхности

Управляющая
программа в абсолютной системе отсчета
имеет вид:

N001
T1 S2 372 F0,2

Резец
Т1, второй диапазон, n
= 372 об/мин, s
= 0,2 мм/об.

N002
X70 Z2 Е

Подвод
к точке 2 ускорено.

N003
Z-12,1

Перемещение
в точку 3 на рабочей подаче.

N004
Х30 Z-65 R-80 G05

Перемещение
по R80 мм из точки 3 в точку 4, отмена
торможения в точке сопряжения дуг.

N005
Х70 Z-117,9 R-80

Перемещение
по R80 мм из точки 4 в точку 5.

N006
Х74

Перемещение
в точку 6.

N007
М02

Конец
управляющей программы, отход в И.Т.
(7).

Управляющую
программу для обработки этой же детали
в относительной системе отсчета можно
записать следующим образом:

N001
T1 S2 372 F0,2

Резец
Т1, второй диапазон, n
= 372 об/мин, s
= 0,2 мм/об.

N002
U-50
W-18
E

Подвод
резца к точке 2 ускорено.

N003
W-14,
1

Перемещение
в точку 3 на рабочей подаче.

N004
U-40
W-52,9
R-80
G05

Перемещение
по R80 мм из точки 3 в точку 4, отмена
торможения в точке сопряжения дуг.

N005
U40 W-52,9
R-80

Перемещение
по R80 мм из точки 4 в точку 5.

N006
U4

Перемещение
в точку 6.

N007
М02

Конец
управляющей программы, отход в И.Т.
(7).

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


Рис.
29.
Эскиз
детали и циклограмма движения инструмента

при
обработке детали с двумя сферическими
поверхностями:

а– схема детали;б– геометрическое
построение для определения размераδ

Из
прямоугольного треугольника 01
(рис. 29, б)
находим:

мм;

δ
= R –
19,6
=
22
19,6
=
2,4
мм.

Управляющая
программа имеет вид:

N001
T1 S3 600 F0,25

Резец
Т1, третий диапазон, n=
600 об/мин, s
= 0,25 мм/об.

N002
X0 Z3 Е

Подход
к точке 1 ускорено.

N003
Z0

Перемещение
резца к точке 2 на рабочей подаче.

N004
Х20 W-2,4 R22

Точение
по дуге R22 мм (дуга 2-3) по часовой стрелке.

N005
Z-32

Точение
шейки ø20 мм на длину 32 мм (точки 3-4).

N006
Х35 Z-42 R-30

Точение
по дуге R30 мм (дуга 4-5) против часовой
стрелки.

N007
M02

Конец
управляющей программы, отход в И.Т.

Соседние файлы в папке Учебники

  • #
  • #
  • #
  • #
  • #

    13.06.20149.39 Mб140Численные методы в Excel.xls

Introduction: How to Program Arcs and Linear Movement in G-Code Manually

Introduction

G-code is used in a lot of automated manufacturing processes. For example, CNC machines and 3D printers use G-code to make parts. Programming arcs and linear movement in G-code can be a little tricky. I’ve noticed that there aren’t many sources on the internet that address this topic. So, I decided to make my own guide. I will be presenting basics steps and tips in programming arcs and linear movement in G-code. This will only include movement on a 2D plane and is designed to give a general overview of programming. The instructable will not take into account material properties, tool diameter, speeds, and feeds. I do encourage you to do all the calculations yourself as you go through my instructable. This will give you a better understanding of the code and remember a tool can become a crutch. Don’t forget to use the tool path dimenisions .pdf as a reference.

Materials

— Paper
— Writing Utensil
— Scientific Calculator
— .pdf file of supplied technical drawing
-Time-approximately 60 min

Terminology

Absolute— A series of numerical positions that are calculated from a fixed point of origin.
Clearance Plane— A plane designated for safe tool travel in between cutting functions.
End point-The point where an arc ends
F variable— Feed rate (inches per minute)
G00— Rapid linear movement
G01— Linear interpolation
G02— Clockwise circular interpolation
G03— Counter Clockwise circular interpolation
I variable— Incremental coordinate used to define a point in the X direction.
Incremental— A series of numerical positions that is referenced from a previous position and is independent of absolute origin.
IPM-A unit of velocity used to determine feed rate. (inches per minute)
J variable— Incremental coordinate used to define a coordinate in the Y direction. 
Origin— The fixed, central point in the Cartesian coordinate system. The origin has a numerical value of zero.
Start point- The point where an arc begins.
X variable— Absolute coordinate used to define a point in the X direction.
Y variable— Absolute coordinate used to define a point in the Y direction.

Formulas

1) Xs=Xc+(R*cos(Theta1))
2) Ys=Yc+(R*sin(Theta1))
3) Xe=Xc+(R*cos(Theta2))
4) Ye=Yc+(R*sin(Theta2))
5) I=(Xc-(R*cos(Theta1)))-Xc
6) J=(Yc-(R*sin(Theta1)))-Yc 

Step 1: Program Requirements

Before we begin, I will be designating a few requirements for the program. All units are in United States customary units. Z=0 will be the top face of the part. A clearance plane of .5000″ will be used and a feed rate of 20 IPM. A depth cut of .1250″ will also be needed.

The next few slides will be addressing the general structure of g-code commands we’ll be using.

Step 2: G00 Structure

G00 commands the machine to move to a designated position at maximum feed rate.

GeneralStructure
G00 X#.#### Y#.#### Z#.####

Step 3: G01 Structure

G01 commands the machine to move at a specific feed rate to a designated position.

General Structure
G01 X#.#### Y#.#### Z.#.#### F#.####

Step 4: G02 and G03 Structure

G02 commands the machine to move in a clockwise direction to a designated point at a specific feed rate.

General Structure
G02 X#.#### Y#.#### I#.#### J#.#### F#.####

G03 commands the machine to move in a counter clockwise direction to a designated point at a specified feed rate.

General Structure
G03 X#.#### Y#.#### I#.#### J#.#### F#.####

Note

I and J define the location of the center of rotation  — RELATIVE TO THE CURRENT (STARTING) POINT
X and Y are the end point coordinates of the arc.

Step 5: Designating the Origin

The very first thing you should do is designate your part origin. The origin is the point where all absolute coordinates are referenced from. I will be using the center of the part as the origin.

Step 6: Designate and Order Points

Points are defined as places where a change in translation occurs. For example, a point would be where an x direction movement changes to a y direction movement or the start and endpoints of an arc. In the part I’m presenting, there are a total of 22 points. Each point has a unique set of coordinates that will translate into movement via g-code. Ordering the points will ultimately determine the structure of your program. For this example, I’ll be initiating my cut at point 1 and continue in a clockwise direction around the part.

Step 7: Designate Arc Centers

Finding the arc centers can be derived from the the technical drawing I supplied. There are a total of 6 arcs in the part. The arc centers are essential for finding the start and end points of the arcs, and the I and J variables.

Step 8: Calculating Start and End Points of Arcs

Calculating start and end points of arcs can be accomplished by designating the coordinates for the center point of the arc. Using the formulas I have supplied, just plug in the corresponding values for the variables. I encourage you to go through these calculations yourself. This will help understand the concept.

Defining Variables

R=Radius of arc
Theta1=angle of the position of the start point relative to the X axis
Theta2=angle of the position of the end point relative to the X axis
Xc=X coordinate of arc center
Yc=Y coordinate of the arc center
Xs=X coordinate of arc start point
Ys=Y coordinate of arc start point
Xe=X coordinate of arc end point
Ye=Y coordinate of arc end point
I=Incremental X coordinate of start point
J=Incremental Y coordinate of start point

Formulas

1) Xs=Xc+(R*cos(Theta1))
2) Ys=Yc+(R*sin(Theta1))
3) Xe=Xc+(R*cos(Theta2))
4) Ye=Yc+(R*sin(Theta2))
5) I=(Xc-(R*cos(Theta1)))-Xc
6) J=(Yc-(R*sin(Theta1)))-Yc

Step 9: Calculating Values for Arc 1

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 90
Theta2=angle of the position of the end point relative to the X axis = 0
Xc=X coordinate of arc center = 2.25
Yc=Y coordinate of the arc center = 3

Formulas

1) Xs=Xc+(R*cos(Theta1)) = 2.25
2) Ys=Yc+(R*sin(Theta1)) = 3.5
3) Xe=Xc+(R*cos(Theta2)) = 2.75
4) Ye=Yc+(R*sin(Theta2)) = 3
5) I=(Xc-(R*cos(Theta1)))-Xc = 0
6) J=(Yc-(R*sin(Theta1)))-Yc = -.5

Step 10: Calculating Values for Arc 2

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 0
Theta2=angle of the position of the end point relative to the X axis = 270
Xc=X coordinate of arc center = 2.25
Yc=Y coordinate of the arc center = -3

Formulas

1) Xs=Xc+(R*cos(Theta1)) = 2.75
2) Ys=Yc+(R*sin(Theta1)) = -3
3) Xe=Xc+(R*cos(Theta2)) = 2.25
4) Ye=Yc+(R*sin(Theta2)) = -3.5
5) I=(Xc-(R*cos(Theta1)))-Xc = -.5
6) J=(Yc-(R*sin(Theta1)))-Yc =0

Step 11: Calculating Values for Arc 3

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 0
Theta2=angle of the position of the end point relative to the X axis = 180
Xc=X coordinate of arc center = 0
Yc=Y coordinate of the arc center = -2

Formulas

1) Xs=Xc+(R*cos(Theta1)) = .5
2) Ys=Yc+(R*sin(Theta1)) = -2
3) Xe=Xc+(R*cos(Theta2)) = -.5
4) Ye=Yc+(R*sin(Theta2)) = -2
5) I=(Xc-(R*cos(Theta1)))-Xc = -.5
6) J=(Yc-(R*sin(Theta1)))-Yc = 0

Step 12: Calculating Values for Arc 4

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 270
Theta2=angle of the position of the end point relative to the X axis = 180
Xc=X coordinate of arc center = -2.25
Yc=Y coordinate of the arc center = -3

Formulas

1) Xs=Xc+(R*cos(Theta1)) = -2.25
2) Ys=Yc+(R*sin(Theta1)) = -3.5
3) Xe=Xc+(R*cos(Theta2)) = -2.75
4) Ye=Yc+(R*sin(Theta2)) = -3
5) I=(Xc-(R*cos(Theta1)))-Xc = 0
6) J=(Yc-(R*sin(Theta1)))-Yc = .5

Step 13: Calculating Values for Arc 5

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 180
Theta2=angle of the position of the end point relative to the X axis = 90
Xc=X coordinate of arc center = -2.25
Yc=Y coordinate of the arc center = 3

Formulas

1) Xs=Xc+(R*cos(Theta1)) = -2.75
2) Ys=Yc+(R*sin(Theta1)) = 3
3) Xe=Xc+(R*cos(Theta2)) = -2.25
4) Ye=Yc+(R*sin(Theta2)) = 3.5
5) I=(Xc-(R*cos(Theta1)))-Xc = .5
6) J=(Yc-(R*sin(Theta1)))-Yc = 0

Step 14: Calculating Values for Arc 6

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 180
Theta2=angle of the position of the end point relative to the X axis = 0
Xc=X coordinate of arc center = 0
Yc=Y coordinate of the arc center = 2.5

Formulas

1) Xs=Xc+(R*cos(Theta1)) = -.5
2) Ys=Yc+(R*sin(Theta1)) = 2.5
3) Xe=Xc+(R*cos(Theta2)) = .5
4) Ye=Yc+(R*sin(Theta2)) = 2.5
5) I=(Xc-(R*cos(Theta1)))-Xc = .5
6) J=(Yc-(R*sin(Theta1)))-Yc =0

Step 15: Assign Coordinates to Each Point

An easy way to do this would to recreate your intended part in a CAD system. This method would allow the computer to make all the calculations. If you are doing this by hand just assign your calculated values to the points on the arc. The coordinates of straight lines can be derived from the technical drawing I supplied. An easy way to keep track of all your coordinates and points is to keep a table of all the points.

Step 16: Beginning the Program

So, in order to program this part you have to think of where the initiating cut will be and which direction the tool will be moving. In this case, we will initiate the cut at point 1 and continue around the perimeter of the part in a clockwise direction. The last command used should bring you back to the start point.

Step 17: Moving to Point 1

So for the Initiating cut, we need to tell the machine to go to point 1 at the designated clearance plane of .5000″ above the top face of the part. To do this we will need to use a G00 command to move to the required coordinate. 

This is what the first line should look like
(I will continue to add lines of code to the first line to help guide you)

G00 X.5 Y3.5 Z.5

(At this point there is no cutting happening as the tool is still .5000″ above the part)

Step 18: Moving to Cut Depth

Now that were are centered at point 1, we need to feed down to .1250″ below the top of the face, to the cut depth. Since the tool is already at point 1, only a Z variable will need to be defined using the G01 command at 20 IPM.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20

Step 19: Moving to Point 2

Now the tool needs to move to Point 2. Since Point 1 and 2 are at the same Y value only an X value will be needed to command a horizontal move.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25

Step 20: Moving to Point 3 Along Arc 1

This is the first arc. Since this the tool will sweep along the arc in a clockwise direction, a G02 command will need to be used. This arc will only take one line of code. Just plug in the numbers that you calculated for arc one.
(Remember the X and Y coordinates of an arc command is the end point of the arc. Plug in the calculated I and J values for Arc 1)

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5

Step 21: Moving to Point 4

Since this is linear movement a G01 command will need to be inserted in the next line of the code along with the new Y coordinate.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75

Step 22: Moving to Point 5

The path from point 4 to point 5 is a diagonal path, but is still linear so it can be still defined with a G01. With a diagonal line an X coordinate and Y coordinate need to be defined.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0

Step 23: Moving to Point 6

The path from point 5 to point 6 is another diagonal move, so an X variable and Y variable will need to be defined.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75

Step 24: Moving to Point 7

This is a linear move down along the Y axis. It can still be defined under the G01 command.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75
         Y-3

Step 25: Move to Point 8 Along Arc 2

Arc 2 is another clockwise arc so a G02 command will need to be used.This arc will only take one line of code. Just plug in the numbers that you calculated for Arc 2.
(Remember the X and Y coordinates of an arc command is the end point of the arc. Plug in the calculated I and J values for Arc 2)

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75
         Y-3
G02 X2.25 Y-3.5 I-.5 J0

Step 26: Move to Point 9

The move to point 9 is a horizontal move in the X direction. A G01 command will need to be inserted into the code and an X variable will need to be defined.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75
         Y-3
G02 X2.25 Y-3.5 I-.5 J0
G01 X.5

Step 27: Move to Point 10

The move to point 10 is vertical move along the Y axis. A Y variable will need to be defined on a new line under the current G01 command.

Now the code should look like this

G00 X.5 Y.3 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75
         Y-3
G02 X2.25 Y-3.5 I-.5 J0
G01 X.5
         Y-2

Step 28: Move to Point 11 Along Arc 3

The move to point 11 is a counter clockwise move. A G03 command will need to be inserted into the code. Just plug in the numbers that you calculated for Arc 3.
(Remember the X and Y coordinates of an arc command is the end point of the arc. Plug in the calculated I and J values for arc 3)

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75
         Y-3
G02 X2.25 Y-3.5 I-.5 J0
G01 X.5
         Y-2
G03 X-.5 Y-2 I-.5 J0

Step 29: Your Program Is Now Halfway Done!

This marks the half way point of the code. To finish the second half of the code, use the same techniques I presented in the previous steps. Before you move on to the next step, finish the second half of the code and compare your code to the master code. Remember, your last line of code should bring you back to point 1 to finish the cut.

Step 30: The Master Code

This is what the finished code should look like. I will also include a copy of my .txt file of the completed functional code for those of you using a CNC simulator.

Step 31: Here’s a Video Simulation

Step 32: Conclusion

Congratulations! You have created a G-code program. By completing this instructable, I hope it has given you some insight in programming. Programming arcs can be a little tough at first, but with practice it get’s easier. Please feel free to leave any comments. Thank you for taking the time to use my instructable.

2 People Made This Project!

Recommendations

Introduction: How to Program Arcs and Linear Movement in G-Code Manually

Introduction

G-code is used in a lot of automated manufacturing processes. For example, CNC machines and 3D printers use G-code to make parts. Programming arcs and linear movement in G-code can be a little tricky. I’ve noticed that there aren’t many sources on the internet that address this topic. So, I decided to make my own guide. I will be presenting basics steps and tips in programming arcs and linear movement in G-code. This will only include movement on a 2D plane and is designed to give a general overview of programming. The instructable will not take into account material properties, tool diameter, speeds, and feeds. I do encourage you to do all the calculations yourself as you go through my instructable. This will give you a better understanding of the code and remember a tool can become a crutch. Don’t forget to use the tool path dimenisions .pdf as a reference.

Materials

— Paper
— Writing Utensil
— Scientific Calculator
— .pdf file of supplied technical drawing
-Time-approximately 60 min

Terminology

Absolute— A series of numerical positions that are calculated from a fixed point of origin.
Clearance Plane— A plane designated for safe tool travel in between cutting functions.
End point-The point where an arc ends
F variable— Feed rate (inches per minute)
G00— Rapid linear movement
G01— Linear interpolation
G02— Clockwise circular interpolation
G03— Counter Clockwise circular interpolation
I variable— Incremental coordinate used to define a point in the X direction.
Incremental— A series of numerical positions that is referenced from a previous position and is independent of absolute origin.
IPM-A unit of velocity used to determine feed rate. (inches per minute)
J variable— Incremental coordinate used to define a coordinate in the Y direction. 
Origin— The fixed, central point in the Cartesian coordinate system. The origin has a numerical value of zero.
Start point- The point where an arc begins.
X variable— Absolute coordinate used to define a point in the X direction.
Y variable— Absolute coordinate used to define a point in the Y direction.

Formulas

1) Xs=Xc+(R*cos(Theta1))
2) Ys=Yc+(R*sin(Theta1))
3) Xe=Xc+(R*cos(Theta2))
4) Ye=Yc+(R*sin(Theta2))
5) I=(Xc-(R*cos(Theta1)))-Xc
6) J=(Yc-(R*sin(Theta1)))-Yc 

Step 1: Program Requirements

Before we begin, I will be designating a few requirements for the program. All units are in United States customary units. Z=0 will be the top face of the part. A clearance plane of .5000″ will be used and a feed rate of 20 IPM. A depth cut of .1250″ will also be needed.

The next few slides will be addressing the general structure of g-code commands we’ll be using.

Step 2: G00 Structure

G00 commands the machine to move to a designated position at maximum feed rate.

GeneralStructure
G00 X#.#### Y#.#### Z#.####

Step 3: G01 Structure

G01 commands the machine to move at a specific feed rate to a designated position.

General Structure
G01 X#.#### Y#.#### Z.#.#### F#.####

Step 4: G02 and G03 Structure

G02 commands the machine to move in a clockwise direction to a designated point at a specific feed rate.

General Structure
G02 X#.#### Y#.#### I#.#### J#.#### F#.####

G03 commands the machine to move in a counter clockwise direction to a designated point at a specified feed rate.

General Structure
G03 X#.#### Y#.#### I#.#### J#.#### F#.####

Note

I and J define the location of the center of rotation  — RELATIVE TO THE CURRENT (STARTING) POINT
X and Y are the end point coordinates of the arc.

Step 5: Designating the Origin

The very first thing you should do is designate your part origin. The origin is the point where all absolute coordinates are referenced from. I will be using the center of the part as the origin.

Step 6: Designate and Order Points

Points are defined as places where a change in translation occurs. For example, a point would be where an x direction movement changes to a y direction movement or the start and endpoints of an arc. In the part I’m presenting, there are a total of 22 points. Each point has a unique set of coordinates that will translate into movement via g-code. Ordering the points will ultimately determine the structure of your program. For this example, I’ll be initiating my cut at point 1 and continue in a clockwise direction around the part.

Step 7: Designate Arc Centers

Finding the arc centers can be derived from the the technical drawing I supplied. There are a total of 6 arcs in the part. The arc centers are essential for finding the start and end points of the arcs, and the I and J variables.

Step 8: Calculating Start and End Points of Arcs

Calculating start and end points of arcs can be accomplished by designating the coordinates for the center point of the arc. Using the formulas I have supplied, just plug in the corresponding values for the variables. I encourage you to go through these calculations yourself. This will help understand the concept.

Defining Variables

R=Radius of arc
Theta1=angle of the position of the start point relative to the X axis
Theta2=angle of the position of the end point relative to the X axis
Xc=X coordinate of arc center
Yc=Y coordinate of the arc center
Xs=X coordinate of arc start point
Ys=Y coordinate of arc start point
Xe=X coordinate of arc end point
Ye=Y coordinate of arc end point
I=Incremental X coordinate of start point
J=Incremental Y coordinate of start point

Formulas

1) Xs=Xc+(R*cos(Theta1))
2) Ys=Yc+(R*sin(Theta1))
3) Xe=Xc+(R*cos(Theta2))
4) Ye=Yc+(R*sin(Theta2))
5) I=(Xc-(R*cos(Theta1)))-Xc
6) J=(Yc-(R*sin(Theta1)))-Yc

Step 9: Calculating Values for Arc 1

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 90
Theta2=angle of the position of the end point relative to the X axis = 0
Xc=X coordinate of arc center = 2.25
Yc=Y coordinate of the arc center = 3

Formulas

1) Xs=Xc+(R*cos(Theta1)) = 2.25
2) Ys=Yc+(R*sin(Theta1)) = 3.5
3) Xe=Xc+(R*cos(Theta2)) = 2.75
4) Ye=Yc+(R*sin(Theta2)) = 3
5) I=(Xc-(R*cos(Theta1)))-Xc = 0
6) J=(Yc-(R*sin(Theta1)))-Yc = -.5

Step 10: Calculating Values for Arc 2

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 0
Theta2=angle of the position of the end point relative to the X axis = 270
Xc=X coordinate of arc center = 2.25
Yc=Y coordinate of the arc center = -3

Formulas

1) Xs=Xc+(R*cos(Theta1)) = 2.75
2) Ys=Yc+(R*sin(Theta1)) = -3
3) Xe=Xc+(R*cos(Theta2)) = 2.25
4) Ye=Yc+(R*sin(Theta2)) = -3.5
5) I=(Xc-(R*cos(Theta1)))-Xc = -.5
6) J=(Yc-(R*sin(Theta1)))-Yc =0

Step 11: Calculating Values for Arc 3

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 0
Theta2=angle of the position of the end point relative to the X axis = 180
Xc=X coordinate of arc center = 0
Yc=Y coordinate of the arc center = -2

Formulas

1) Xs=Xc+(R*cos(Theta1)) = .5
2) Ys=Yc+(R*sin(Theta1)) = -2
3) Xe=Xc+(R*cos(Theta2)) = -.5
4) Ye=Yc+(R*sin(Theta2)) = -2
5) I=(Xc-(R*cos(Theta1)))-Xc = -.5
6) J=(Yc-(R*sin(Theta1)))-Yc = 0

Step 12: Calculating Values for Arc 4

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 270
Theta2=angle of the position of the end point relative to the X axis = 180
Xc=X coordinate of arc center = -2.25
Yc=Y coordinate of the arc center = -3

Formulas

1) Xs=Xc+(R*cos(Theta1)) = -2.25
2) Ys=Yc+(R*sin(Theta1)) = -3.5
3) Xe=Xc+(R*cos(Theta2)) = -2.75
4) Ye=Yc+(R*sin(Theta2)) = -3
5) I=(Xc-(R*cos(Theta1)))-Xc = 0
6) J=(Yc-(R*sin(Theta1)))-Yc = .5

Step 13: Calculating Values for Arc 5

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 180
Theta2=angle of the position of the end point relative to the X axis = 90
Xc=X coordinate of arc center = -2.25
Yc=Y coordinate of the arc center = 3

Formulas

1) Xs=Xc+(R*cos(Theta1)) = -2.75
2) Ys=Yc+(R*sin(Theta1)) = 3
3) Xe=Xc+(R*cos(Theta2)) = -2.25
4) Ye=Yc+(R*sin(Theta2)) = 3.5
5) I=(Xc-(R*cos(Theta1)))-Xc = .5
6) J=(Yc-(R*sin(Theta1)))-Yc = 0

Step 14: Calculating Values for Arc 6

To calculate the needed arc values, just plug the numbers into the formulas for the respective variables. These values will be needed later to be input into the code.

Defining Variables

R=Radius of arc = .5
Theta1=angle of the position of the start point relative to the X axis = 180
Theta2=angle of the position of the end point relative to the X axis = 0
Xc=X coordinate of arc center = 0
Yc=Y coordinate of the arc center = 2.5

Formulas

1) Xs=Xc+(R*cos(Theta1)) = -.5
2) Ys=Yc+(R*sin(Theta1)) = 2.5
3) Xe=Xc+(R*cos(Theta2)) = .5
4) Ye=Yc+(R*sin(Theta2)) = 2.5
5) I=(Xc-(R*cos(Theta1)))-Xc = .5
6) J=(Yc-(R*sin(Theta1)))-Yc =0

Step 15: Assign Coordinates to Each Point

An easy way to do this would to recreate your intended part in a CAD system. This method would allow the computer to make all the calculations. If you are doing this by hand just assign your calculated values to the points on the arc. The coordinates of straight lines can be derived from the technical drawing I supplied. An easy way to keep track of all your coordinates and points is to keep a table of all the points.

Step 16: Beginning the Program

So, in order to program this part you have to think of where the initiating cut will be and which direction the tool will be moving. In this case, we will initiate the cut at point 1 and continue around the perimeter of the part in a clockwise direction. The last command used should bring you back to the start point.

Step 17: Moving to Point 1

So for the Initiating cut, we need to tell the machine to go to point 1 at the designated clearance plane of .5000″ above the top face of the part. To do this we will need to use a G00 command to move to the required coordinate. 

This is what the first line should look like
(I will continue to add lines of code to the first line to help guide you)

G00 X.5 Y3.5 Z.5

(At this point there is no cutting happening as the tool is still .5000″ above the part)

Step 18: Moving to Cut Depth

Now that were are centered at point 1, we need to feed down to .1250″ below the top of the face, to the cut depth. Since the tool is already at point 1, only a Z variable will need to be defined using the G01 command at 20 IPM.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20

Step 19: Moving to Point 2

Now the tool needs to move to Point 2. Since Point 1 and 2 are at the same Y value only an X value will be needed to command a horizontal move.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25

Step 20: Moving to Point 3 Along Arc 1

This is the first arc. Since this the tool will sweep along the arc in a clockwise direction, a G02 command will need to be used. This arc will only take one line of code. Just plug in the numbers that you calculated for arc one.
(Remember the X and Y coordinates of an arc command is the end point of the arc. Plug in the calculated I and J values for Arc 1)

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5

Step 21: Moving to Point 4

Since this is linear movement a G01 command will need to be inserted in the next line of the code along with the new Y coordinate.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75

Step 22: Moving to Point 5

The path from point 4 to point 5 is a diagonal path, but is still linear so it can be still defined with a G01. With a diagonal line an X coordinate and Y coordinate need to be defined.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0

Step 23: Moving to Point 6

The path from point 5 to point 6 is another diagonal move, so an X variable and Y variable will need to be defined.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75

Step 24: Moving to Point 7

This is a linear move down along the Y axis. It can still be defined under the G01 command.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75
         Y-3

Step 25: Move to Point 8 Along Arc 2

Arc 2 is another clockwise arc so a G02 command will need to be used.This arc will only take one line of code. Just plug in the numbers that you calculated for Arc 2.
(Remember the X and Y coordinates of an arc command is the end point of the arc. Plug in the calculated I and J values for Arc 2)

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75
         Y-3
G02 X2.25 Y-3.5 I-.5 J0

Step 26: Move to Point 9

The move to point 9 is a horizontal move in the X direction. A G01 command will need to be inserted into the code and an X variable will need to be defined.

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75
         Y-3
G02 X2.25 Y-3.5 I-.5 J0
G01 X.5

Step 27: Move to Point 10

The move to point 10 is vertical move along the Y axis. A Y variable will need to be defined on a new line under the current G01 command.

Now the code should look like this

G00 X.5 Y.3 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75
         Y-3
G02 X2.25 Y-3.5 I-.5 J0
G01 X.5
         Y-2

Step 28: Move to Point 11 Along Arc 3

The move to point 11 is a counter clockwise move. A G03 command will need to be inserted into the code. Just plug in the numbers that you calculated for Arc 3.
(Remember the X and Y coordinates of an arc command is the end point of the arc. Plug in the calculated I and J values for arc 3)

Now the code should look like this

G00 X.5 Y3.5 Z.5
G01 Z-.1250 F20
         X2.25
G02 X2.75 Y3 I0 J-.5
G01 Y.75
         X1.451 Y 0
         X2.75 Y-.75
         Y-3
G02 X2.25 Y-3.5 I-.5 J0
G01 X.5
         Y-2
G03 X-.5 Y-2 I-.5 J0

Step 29: Your Program Is Now Halfway Done!

This marks the half way point of the code. To finish the second half of the code, use the same techniques I presented in the previous steps. Before you move on to the next step, finish the second half of the code and compare your code to the master code. Remember, your last line of code should bring you back to point 1 to finish the cut.

Step 30: The Master Code

This is what the finished code should look like. I will also include a copy of my .txt file of the completed functional code for those of you using a CNC simulator.

Step 31: Here’s a Video Simulation

Step 32: Conclusion

Congratulations! You have created a G-code program. By completing this instructable, I hope it has given you some insight in programming. Programming arcs can be a little tough at first, but with practice it get’s easier. Please feel free to leave any comments. Thank you for taking the time to use my instructable.

2 People Made This Project!

Recommendations

Главная / ЧПУ станок / Автоматизация производства / Вершина резца: программирование и коррекция радиуса

Вершина резца: программирование и коррекция радиуса

Рабочая вершина резца Рi токарного станка является его программной точкой. Однако реальная рабочая вершина резца не может быть абсолютно острой; она может быть выполнена с некоторым радиусом скругления. При движении резца параллельно осям X и Z обработка детали осуществляется точками на рабочей вершине, координаты которых определены значениями W`xi и W`zi. Однако при обработке поверхностей, расположенных под некоторыми углами к осям X и Z, резец осуществляет касание контура некоторой плавающей точкой, лежащей на скруглении его рабочей вершины. Таким образом, возникает погрешность между теоретической траекторией и реальным контуром обработки.

С целью устранения геометрических погрешностей вершины резца при обработке контурных поверхностей в систему ЧПУ станка вводится поправка, переносящая программную точку Рi непосредственно на скругленную поверхность вершины резца. Эта поправка называется корректором радиуса рабочей вершины резца или (сокращенно) корректором радиуса. Корректировка делает точку Рi «плавающей», перемещающейся вдоль радиуса рабочей вершины резца. Эта точка располагается непосредственно напротив контура обработки (в плане X-Z) в каждый текущий момент времени. Величина радиуса скругления обозначается Rs и вносится в таблицу параметров инструментов.

На рис. 1 приведена графическая интерпретация механизма возникновения погрешности вершины резца. Как видно из приведенной схемы обработки наружного и внутреннего сегментов окружности, геометрическая погрешность при обработке контура может быть весьма существенной. Погрешность эта тем больше, чем больше радиус скругления рабочей вершины резца Rs.

Рис. 1. Погрешность при токарной обработке контура: а – обработка контура обточным резцом; б – обработка контура расточным резцом; пунктирные линии – теоретические контуры обработки; сплошные утолщенные линии – реально выполняемые контуры

Корректор радиуса обычно вводится в действие командой управляющей программы в момент подвода резца к контуру обработки. Для этого применяются функции:

  • G41, когда контур обработки расположен справа от резца;
  • G42, когда контур обработки расположен слева от резца.

Отключение корректора радиуса производится функцией G40 в момент отвода инструмента от контура обработки.

При программировании станков традиционных конструктивных схем, таких как (см. «Токарно фрезерный центр«) сторона обработки детали справа или слева определяется с точки взгляда оператора на деталь (принцип определения стороны обработки аналогичен описанному выше принципу определения направления циркуляции). Варианты кодирования стороны обработки приведены на рис. 2. Ввод в действие корректора радиуса осуществляется системой ЧПУ станка по следующим параметрам резца:

  • радиус скругления рабочей вершины резца Rs;
  • сторона обработки контура (справа по G41 или слева по G42);
  • код А расположения рабочей вершины резца в плане X-Z (см. выше).

Рис. 2. Варианты кодирования коррекции радиуса рабочей вершины резца

В станках с двумя инструментальными блоками (рис. 3) координатные оси Х разнонаправлены. Как уже отмечалось, координатная ось X станка токарной группы направлена от детали. Соответственно ось X считается направленной вверх по отношению к инструментам револьверной головки 1 (рис. 3,а); обозначим ее Х(1). Одновременно с этим, ось X считается направленной вниз по отношению к инструментам револьверной головки 2 (рис. 3,б); обозначим ее Х(2). По правилу правой руки (подробнее см. в статье «Обрабатывающий центр с ЧПУ«) ось Y для револьверной головки 1 [обозначим ее Y(1)] направлена на оператора, а для револьверной головки 2 [обозначим ее Y(2)] внутрь станка.

Рис. 3. Структурная схема токарно-фрезерного многофункционального центра с двумя инструментальными блоками: 1 – шпиндель; 2 – деталь; 3 – револьверная головка №1 (РГ1); 4 – револьверная головка №2 (РГ2); 5 — токарный обточной резец; 6 — токарный расточной резец; 7 — сверло для выполнения центрального отверстия; 8 — фрезерный блок для обработки детали в плане X-Y с закрепленным инструментом; 9 – фрезерный блок для обработки детали в плане Y-Z с закрепленным инструментом; X, Y, Z – обозначения координатных осей: а – расположение осей по отношению к револьверной головке 1; б – расположение осей по отношению к револьверной головке 2

Таким образом, в процессе программирования станков с двумя инструментальными блоками имеет место проблема в определении стороны обработки контура и направления циркуляции для каждого из блоков. Поэтому при расчете траекторий движения инструментов, размещенных в револьверной головке 2, ее координатную систему целесообразно совместить с координатной системой револьверной головки 1. Это достигается условным разворотом координатной системы револьверной головки 2 на 180° относительно оси вращения шпинделя Z.

Статьи по станкам ЧПУ

Более 1000 статей о станках и инструментах, методах обработки металлов на станках с ЧПУ.

Остались вопросы?

Заполните форму и наши менеджеры свяжутся с вами

Итак, мы продолжаем говорить о программи­ровании в G-кодах. В сегодняшнем уроке мы подробнее рассмотрим основные коды, поговорим о компенсации на радиус инструмента и применим знания на практике.

Для успешного освоения материала рекомендуем вам изучить следующие понятия:

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

Согласованное движение механизмов по круговой траектории относительно двух осей

Условное именование языка программирования устройств с числовым программным управлением

Разберем синтаксис кадров перемещения режущего инструмента. Будем использовать в качестве основной плоскость XY.

За выбор плоскости отвечают следующие коды:

  • G17 — плоскость XY,
  • G18 — плоскость ZX,
  • G19 — плоскость YZ.

Данный выбор определяет плоскость для задания круговой интерполяции и компенсации на радиус инструмента.

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

  • В кадре указывается сам код G0, а также координаты конечной точки перемещения, когда действует код G90.
  • Расстояние относительно текущей позиции при использовании кода G91.

Это справедливо и для кодов линейной и круговой интерполяции, которые мы рассмотрим далее.

Пример
Зададим текущее положение инструмента X12; Y22 и рассмотрим два случая.

1. Активен G90
G90
G0 X48.5 Y43
Перемещение ускоренного хода произойдет в координату X48.5 и Y43.

2. Активен G91
G91
G0 X48.5 Y43
Перемещение ускоренного хода произойдет на 18,5 мм в положительном направлении оси X и 43 мм в отрицательном направление оси Y, т. е. в координаты X60.5 и Y65.

Далее будем использовать перемещения с кодом G90, с заданием координат от нулевой точки заготовки.

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

G1 — линейная интерполяция со скоростью подачи.

  • В кадре указываются код G1, координаты конечной точки перемещения, скорость подачи.
  • Скорость подачи может быть задана как в мм/мин при использовании G94, так и в мм/об при G95. Так как частота вращения при работе на фрезерном обрабатывающем центре неизменна, чаще подачу задают в мм/мин.


Пример

G94
G1 X25 Y17 F200
Линейное перемещение в координату X25; Y17 с подачей 200 мм/мин.

Коды перемещения. Круговая интерполяция

  • G2 — круговая интерполяция по часовой стрелке со скоростью подачи.
  • G3 — круговая интерполяция против часовой стрелки со скоростью подачи.

Задать круговое перемещение возможно двумя способами:

1. Используя радиус дуги CR.

2. Используя координаты центра дуги (I, J, K по осям X, Y и Z).

  • G4 — выдержка/пауза. Задается код G4 и F — время паузы в секундах.
  • G4 F10 — выдержка в течение 10 секунд.

Часто требуется удалить материал снаружи или изнутри контура, сформировав при этом тот или иной элемент. Чтобы не нарушить границы контура, необходимо учитывать радиус инструмента. Другими словами, необходимо, чтобы траектория перемещения оси инструмента была смещена, или эквидистантна, обрабатываемому контуру.

Вручную необходим пересчет каждой вводимой в программу координаты с учетом радиуса инструмента. Чтобы автоматизи­ровать процесс, существует набор кодов G40/G41/G42. При этом в программе указание траектории совпадает с координатами контура, а эквидистантную траекторию перемещения станок создает на основе заданного в параметрах инструмента радиуса на стойке ЧПУ. D вызывает конкретное значение радиуса.

  • G41 — смещение инструмента относительно направления перемещения влево.
  • G42 — смещение инструмента относительно направления перемещения вправо.
  • G40 — отключение смещения.


Особенности работы с компенсацией

1. Компенсация может быть включена/отключена только при прямолинейном движении.

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

Рассмотрим смещения на примере обработки контура квадрата 90 × 90 мм.

1. Начало системы координат в центре.

2. Глубина фрезерования — 5 мм.

3. Обработка будет проводиться фрезой диаметром 10 мм с частотой вращения 10 000 об/мин и подачей 500 мм/мин.

4. Материал заготовки — сплав Д16Т.

Программирование. G1
1.
Подвод:
D1
G0 X−51 Y−51
G0 Z−5

2. Компенсация и перемещение линейно в первую точку:
G1 G41 X−45 Y−45 F500

3. Оставшаяся часть:
G1 Y45
G1 X45
G1 Y−45
G1 −45

4. Отвод инструмента и выключение коррекции:
G1 G40 X−51 Y−51

Программирование. G42
D1
G0 X−51 Y−51
G0 Z−5
G1 G42 X−45 Y−45
G1 Y45
G1 X45
G1 Y−45
G1 X−45
G1 G40 X−51 Y−51

В написании программы разница незначительна, но результат будет сильно отличаться.

В начале программы укажем стандартную «шапку», известную из прошлого урока.

1. G40 G17 G94 G90
В кадре отключается компенсация на радиус инструмента, плоскость XY выбирается как основная, в качестве единиц измерения скорости подачи задаются мм/мин, перемещения по координатам осуществляются в абсолютной системе координат от нулевой точки заготовки.

2. G0 G90 G153 D0 Z−1
Включается ускоренное перемещение, отменяется смещение машинной системы координат, отключается коррекция на длину и радиус инструмента, происходит перемещение по оси Z к координате, близкой к верхнему пределу рабочей зоны станка.

Эскиз

  • Выберем нулевую точку, расположив оси X и Y системы координат.
  • Глубина фрезерования — 5 мм.
  • Обработка будет проводиться фрезой диаметром 10 мм с частотой вращения 10 000 об/мин и подачей 500 мм/мин.


3.
Вызовем инструмент T =»FREZA_D10″.

4. Активируем систему координат заготовки, записанную в строку G54 установок станка.

5. Выбираем коррекцию на длину и радиус инструмента, записанную в соответствующую строку данных инструмента в установках станка.

6. Задаем частоту вращения шпинделя и направление по часовой стрелке.

7. Спозиционируем инструмент на ускоренном ходу в соответствующую координату с учетом подвода при включении компенсации радиуса инструмента: по 6 мм на оси X и Y.

8. Переместим инструмент на ускоренном ходу в соответствующую координату:
G0 X18.5 Y−6

9. Опускаем на заданную глубину:
G0 Z−2

10. Осуществим подвод и включение компенсации в данном случае слева от направления перемещения:
G1 G41 X24.5 Y6 F500

11. Далее перемещаемся в точку 2:
G3 X3 Y27.5 CR21.5

12. Следующий кадр — линейное перемещение:
G1 Y61

13. Далее перемещение по часовой стрелке в точку 4:
G2 X19 Y77 CR16
G1 X72
G1 X77 Y72
G3 X97 Y50 CR18

14. Линейная интерполяция:
G1 X80.47 Y6

15. Заканчиваем программу и замыкаем контур.

16. Отведем инструмент и завершим программу:
G0 G90 G153 D0 Z−1
G0 G153 X−499 Y−1 (по осям X и Y)
M30

Посмотрим, как это выглядит на станке.

На этом завершается программирование в G‑кодах. Мы познакомились с синтаксисом написания основных кодов перемещений инструмента, заданием компенсации на радиус инструмента и запрограммировали фрезерование контура со смещением инструмента. Предлагаем вам выполнить несколько заданий, чтобы закрепить полученные знания!

Для закрепления полученных знаний пройдите тест

Какой код задает работу в плоскости XY?

Какой код управляющей программы отвечает за линейное перемещение со скоростью подачи?

Какой код включает компенсацию на радиус инструмента слева от направления перемещения?

К сожалению, вы ответили неправильно на все вопросы

Прочитайте лекцию и посмотрите видео еще раз

К сожалению, вы ответили неправильно на большинство вопросов

Прочитайте лекцию и посмотрите видео еще раз

Но можно лучше. Прочитайте лекцию и посмотрите видео еще раз

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

Понравилась статья? Поделить с друзьями:
  • Как написать радзинскому
  • Как написать рабочую программу педагога психолога
  • Как написать работу чтобы пройти антиплагиат
  • Как написать работу на категорию фельдшера смп
  • Как написать работу на категорию фельдшера скорой помощи