ngcgui
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
ngcgui
NGCGUI - установка, настройка, описание, примеры.
Примеры
Файлы подпрограмм
NGCGUI это утилита для использования в EMC2 подпрограмм,т.н. мастеров.
Ссылки
http://www.youtube.com/watch?v=Bn8T5Fw0ISs
http://www.linuxcnc.org/docs/2.5/html/g ... ha:O-Codes - О-коды
Установка
Для установки в EMC2 версии 2.4 нужны 4 файла: Положить файлы в папку с конфигурацией станка.
Более удобным будет поместить в отдельную папку,тогда можно их использовать для разных кофигураций.
Прописать в ini файле в секции [DISPLAY] пути к этим файлам:
(пример из моего ini файла) Обратите внимание: : ngcgui_app.tcl должен предшествовать ngcgui_ttt.tcl
Теперь создаем нашу первую вкладку следующей строкой - пока без названия: Запускаем,проверяем: Настройка
Теперь создаем сам файл подпрограммы для нашей вкладки.
Он должен быть такого вида: имя- имя подпрограммы,имя файла и название нашей вкладки.
тело подпрогр- g-код, который мы напишем.
Назовем файл lathe (пример будет из токарной обработки): Окончание файлов должно быть .ngc
Помещаем наш файл lathe.ngc в папку прописанную в ini [DISPLAY]PROGRAM_PREFIX и прописываем путь к ней там же: Проверяем: Кстати,загружаемый по умолчанию EMC файл можно изменить в ini [DISPLAY]
если прописать так
не загр. ничего.(как на скриншоте выше.)
Напишем тело нашей подпрограммы.
Его надо начинать с набора инструкций, которые определяют параметры : Смотрим: Каждая строка появилась во вкладке с возможностью редактировать данные.
Теперь мы в нашей подпрограмме (в g-коде) можем (и будем) использовать переменные.
Например,вмето T1M6 пишем T#<RToolNumber> M6
После набора инструкций (их может быть до 30) непосредственно сам G-код: Сам файл: Запускаем,на вкладке нажимаем "Create feature" ,потом "Finalize"
Получаем запрограммированную траекторию: Описание
Примеры
Как объеденить несколько подпрограмм
В программу могут быть объеденены несколько копий как одной подпрограммы, так и разные подпрограммы.
Как это выглядит на практике:
у нас есть 6 вкладок с подпрограммами для фрезерной обработки: Объеденим их все в одну программу. Открываем первую вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
Этим мы передали наши параметры в создаваемый ngcgui файл auto.ngc. Изменим некоторые параметры(например координаты начала обработки) Нажмем еще раз "CreateFeature".В файл auto.ngc передались также и новые параметры.Нажимаем "Finalize"-загружаем готовый файл с двумя подпрограммами: Чтобы объеденить подпрограммы с разных вкладок :
1.Открываем первую вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
2.Переходим на нужную вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
3.Повторяем,если необходимо.
4.Нажимаем "Finalize".
5. Соглашаемся создать из всех вкладок. Удобней объеденять несколько одинаковых контуров так:
1.создаем из требуемой вкладки копию нажатием кнопки "new"
2.нажимаем "Subfile" ,открываем файл(в нашем случае тот же,что и на первой вкладке)
3.повторяем необходимое число раз
4.корректируем параметры для каждой копии
5.объеденяем все,соблюдая нужную нам последовательность обработки. 5. Соглашаемся создать из всех вкладок. Файлы подпрoграмм
для токарной обработки шаблон цикла
сфера
конус по его длине
обработка наружной цилиндрической поверхности
расточка для фрезерной обработки цилиндрический карман
Примеры
Файлы подпрограмм
NGCGUI это утилита для использования в EMC2 подпрограмм,т.н. мастеров.
Ссылки
http://www.youtube.com/watch?v=Bn8T5Fw0ISs
http://www.linuxcnc.org/docs/2.5/html/g ... ha:O-Codes - О-коды
Установка
Для установки в EMC2 версии 2.4 нужны 4 файла: Положить файлы в папку с конфигурацией станка.
Более удобным будет поместить в отдельную папку,тогда можно их использовать для разных кофигураций.
Прописать в ini файле в секции [DISPLAY] пути к этим файлам:
(пример из моего ini файла) Обратите внимание: : ngcgui_app.tcl должен предшествовать ngcgui_ttt.tcl
Теперь создаем нашу первую вкладку следующей строкой - пока без названия: Запускаем,проверяем: Настройка
Теперь создаем сам файл подпрограммы для нашей вкладки.
Он должен быть такого вида: имя- имя подпрограммы,имя файла и название нашей вкладки.
тело подпрогр- g-код, который мы напишем.
Назовем файл lathe (пример будет из токарной обработки): Окончание файлов должно быть .ngc
Помещаем наш файл lathe.ngc в папку прописанную в ini [DISPLAY]PROGRAM_PREFIX и прописываем путь к ней там же: Проверяем: Кстати,загружаемый по умолчанию EMC файл можно изменить в ini [DISPLAY]
если прописать так
не загр. ничего.(как на скриншоте выше.)
Напишем тело нашей подпрограммы.
Его надо начинать с набора инструкций, которые определяют параметры : Смотрим: Каждая строка появилась во вкладке с возможностью редактировать данные.
Теперь мы в нашей подпрограмме (в g-коде) можем (и будем) использовать переменные.
Например,вмето T1M6 пишем T#<RToolNumber> M6
После набора инструкций (их может быть до 30) непосредственно сам G-код: Сам файл: Запускаем,на вкладке нажимаем "Create feature" ,потом "Finalize"
Получаем запрограммированную траекторию: Описание
Примеры
Как объеденить несколько подпрограмм
В программу могут быть объеденены несколько копий как одной подпрограммы, так и разные подпрограммы.
Как это выглядит на практике:
у нас есть 6 вкладок с подпрограммами для фрезерной обработки: Объеденим их все в одну программу. Открываем первую вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
Этим мы передали наши параметры в создаваемый ngcgui файл auto.ngc. Изменим некоторые параметры(например координаты начала обработки) Нажмем еще раз "CreateFeature".В файл auto.ngc передались также и новые параметры.Нажимаем "Finalize"-загружаем готовый файл с двумя подпрограммами: Чтобы объеденить подпрограммы с разных вкладок :
1.Открываем первую вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
2.Переходим на нужную вкладку,корректируем ,если нужно параметры,нажимаем "CreateFeature".
3.Повторяем,если необходимо.
4.Нажимаем "Finalize".
5. Соглашаемся создать из всех вкладок. Удобней объеденять несколько одинаковых контуров так:
1.создаем из требуемой вкладки копию нажатием кнопки "new"
2.нажимаем "Subfile" ,открываем файл(в нашем случае тот же,что и на первой вкладке)
3.повторяем необходимое число раз
4.корректируем параметры для каждой копии
5.объеденяем все,соблюдая нужную нам последовательность обработки. 5. Соглашаемся создать из всех вкладок. Файлы подпрoграмм
для токарной обработки шаблон цикла
сфера
конус по его длине
обработка наружной цилиндрической поверхности
расточка для фрезерной обработки цилиндрический карман
Последний раз редактировалось nkp 20 июл 2012, 06:57, всего редактировалось 45 раз.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Решение ошибки возможности деления на 0 :
Код: Выделить всё
o124 if [#10 NE 0]
#<dd>=[360/[#10]]
o124 endif
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Вот доработанный вариант:
для подобных изделий.
Из недоделанного-чистовые проходы.
Хотя такого рода детали как правило фрезерованием не изготавливаются-все же примененная концепция (угловой поворот координат) , может быть взята за основудля подобных изделий.
Из недоделанного-чистовые проходы.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
Чего-то я не догоняю, как ты положение окружностей определяешь без синусов и косинусов?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Nick писал(а):Чего-то я не догоняю, как ты положение окружностей определяешь без синусов и косинусов?
Код: Выделить всё
o103 repeat [#10]
G10 L2 R[#<aa>] P0
G02 X[#<cc>] Y0 Z-[#2] I#9 J0 P[#11]
#<aa>=[[#<aa>]+[#<dd>]]
o103 endrepeat
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Цитата из соседней темы :
"система координат "подстраивается" под заготовку. То есть нам нужно раскроить лист на полоски. Мы ложим лист на стол и выравниваем его перпендикулярно оси. А в хороших стойках лист бросается на стол измеряют 3 угловых точки листа и система координат словно повернется относительно листа."
Реализация может выглядеть так :
Допустим имеем заготовку ,расположенную произвольно Указываем на заготовке первую точку-это будет 0 координат
Смещаем координаты Теперь укажем вторую точку - она (впоследствии) будет лежать на оси
Поворачиваем оси на необходимый угол Практически это две кнопки:
1. Установка 0
2. Поворот
А вот зачем третью точку указывать???
"система координат "подстраивается" под заготовку. То есть нам нужно раскроить лист на полоски. Мы ложим лист на стол и выравниваем его перпендикулярно оси. А в хороших стойках лист бросается на стол измеряют 3 угловых точки листа и система координат словно повернется относительно листа."
Реализация может выглядеть так :
Допустим имеем заготовку ,расположенную произвольно Указываем на заготовке первую точку-это будет 0 координат
Смещаем координаты Теперь укажем вторую точку - она (впоследствии) будет лежать на оси
Поворачиваем оси на необходимый угол Практически это две кнопки:
1. Установка 0
2. Поворот
А вот зачем третью точку указывать???
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ngcgui
Чтобы понять в какую сторону поворачивать систему координат.nkp писал(а):А вот зачем третью точку указывать???
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Тут коорд точки А по x положительна-поворот + Тут коорд точки А по x отрицательна-поворот -s3301 писал(а): Чтобы понять в какую сторону поворачивать систему координат.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
Третья точка нужна для отражений. Поворот, масштаб и перенос на плоскости можно задать двумя точками, а вот для контроля отражений нужна третья.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Что за отражения - можно чуть подробней?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
Обычное отражение относительно прямой. Такое преобразование нельзя задать двумя точками, нужна третья. Более того не уверен, что его можно реализовать на чистом Gкоде, т.к. это преобразование должно менять G02 на G03 и наоборот.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Но решается вот такая задача:
Идем далее: нормальная стойка что плазма что проволочновырезные могут исползовать коры(надеюсь правилно напсал). Это когда система координат "подстраивается" под заготовку. То есть нам нужно раскроить лист на полоски. Мы ложим лист на стол и выравниваем его перпендикулярно оси. А в хороших стойках лист бросается на стол измеряют 3 угловых точки листа и система координат словно повернется относительно листа.
Думаю для Мач и ЕМС это сложновато
Отражение вроде здесь не нужно.
Хотя заманчиво-надо подумать
Идем далее: нормальная стойка что плазма что проволочновырезные могут исползовать коры(надеюсь правилно напсал). Это когда система координат "подстраивается" под заготовку. То есть нам нужно раскроить лист на полоски. Мы ложим лист на стол и выравниваем его перпендикулярно оси. А в хороших стойках лист бросается на стол измеряют 3 угловых точки листа и система координат словно повернется относительно листа.
Думаю для Мач и ЕМС это сложновато
Отражение вроде здесь не нужно.
Хотя заманчиво-надо подумать

- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
То-то и оноnkp писал(а):Хотя заманчиво-надо подумать

- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ngcgui
А если "брошенная" заготовка повёрнулась относительно исходной системы координат не на 15 градусов (например), а на 105 (90+15)?..nkp писал(а):Тут коорд точки А по x положительна-поворот +s3301 писал(а): Чтобы понять в какую сторону поворачивать систему координат.
Тут коорд точки А по x отрицательна-поворот -
Вариантов только два:
1. Задать 2 точки и направление поворота.
2. Задать 3 точки.
Второй способ универсальнее.

А если в условии будет щуп, то тоже три точки, точнее 3 касания - два на одной грани и третье на перпендикулярной.
Последний раз редактировалось Serg 10 май 2012, 13:43, всего редактировалось 1 раз.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
Если есть 2 точки, то они однозначно задают поворот. Разве нет?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Не согласен. Важно выровнять этих 15 градусов, а уж потом (без всяких измерений и щупов) мы "разворачиваем" (легким движением рукиs3301 писал(а): А если "брошенная" заготовка повёрнулась относительно исходной системы координат не на 15 градусов (например), а на 105 (90+15)?..
Вариантов только два

- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ngcgui
Возможно третья точка ещё позволяет исключить человеческий фактор, типа не в ту сторону координаты повернул и испортил заготовку/станок.
А по количеству операций одинаково: сначала указываем две точки, а потом либо "разворачиваем в ручную, если с похмелья не перепутаем куда", либо "указываем третью точку, а остальное сделает сам станок".
А по количеству операций одинаково: сначала указываем две точки, а потом либо "разворачиваем в ручную, если с похмелья не перепутаем куда", либо "указываем третью точку, а остальное сделает сам станок".
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Разворачиваем вручную- это в нашем случае нажатие одной кнопки (вечером выложу практически)s3301 писал(а):разворачиваем в ручную
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Вот для примера,чтоб каждый раз не вводить mdi команды:
из стандартного примера
мы хотим так
переходим в нужную нам точку
создаем auto файл и выполняем его (этим мы перемещаем нач координат
с поворотом) Теперь загружаем наш файл Выбирая 0 и выполняя код-возвращаемся в исходную.
с поворотом) Теперь загружаем наш файл Выбирая 0 и выполняя код-возвращаемся в исходную.
Последний раз редактировалось nkp 10 май 2012, 23:09, всего редактировалось 1 раз.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Вот сделал поворот по 2 точкам,пока не кнопками ,а ngcgui:
http://www.youtube.com/watch?v=MI2GS6m3hzo
Там всего одно поле,может принимать значения 0,1,2.(по умолчанию-1)
Находим первую точку - перемещаем в нее 0.
Находим вторую-поворот.
Вводим в поле 0 - в исходную.
http://www.youtube.com/watch?v=MI2GS6m3hzo
Там всего одно поле,может принимать значения 0,1,2.(по умолчанию-1)
Находим первую точку - перемещаем в нее 0.
Находим вторую-поворот.
Вводим в поле 0 - в исходную.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Подниму обсуждавшийся вопрос "обратной" отработки программы.Как это вижу практически:
Остановилась(остановили) программа на кадре Nx
Копируется файл программы с покадровой обработкой начиная с Nx в temp.ngc
Загружается temp.ngc , исполняется.
Покадровая обработка:
Рультат обработчика строки Nx,записываемый в новую строку в temp, зависит от "содержимого" строки N(x-1), а именно:
могут быть 4 варианта комбинаций G1(0) и G2(3) то есть чередование линейных перемещений и перемещ по дуге.
Вот эти варианты: G1-G1 , G1-G2 , G2-G1 , G2-G2 (первая команда из Nx, вторая- из N(x-1) )
Соответственно в первых двух случаях результат G1 и координаты (x;y) из N(x-1)
во вторых двух - G2 и координаты (x;y) со словами( I;J) или R из N(x-1)
Для начала G0==G1 и F=const
Остановилась(остановили) программа на кадре Nx
Копируется файл программы с покадровой обработкой начиная с Nx в temp.ngc
Загружается temp.ngc , исполняется.
Покадровая обработка:
Рультат обработчика строки Nx,записываемый в новую строку в temp, зависит от "содержимого" строки N(x-1), а именно:
могут быть 4 варианта комбинаций G1(0) и G2(3) то есть чередование линейных перемещений и перемещ по дуге.
Вот эти варианты: G1-G1 , G1-G2 , G2-G1 , G2-G2 (первая команда из Nx, вторая- из N(x-1) )
Соответственно в первых двух случаях результат G1 и координаты (x;y) из N(x-1)
во вторых двух - G2 и координаты (x;y) со словами( I;J) или R из N(x-1)
Для начала G0==G1 и F=const