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 раз.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
А вот такую штуку пробовал?
noiframe -- put image inside a toplevel instead of a frame so all controls are available
noiframe -- put image inside a toplevel instead of a frame so all controls are available
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
Похоже, что этот код загружает картинки:
И, возможно, код чуть ниже этого...
И, возможно, код чуть ниже этого...
Код: Выделить всё
3739 proc ::ngcgui::image_init {hdl} {
3740 set ::ngc($hdl,img,status) new
3741 if [info exists ::ngc(embed,axis)] {
3742 set ::ngc($hdl,img,top) .$::ngc(any,app)-$hdl
3743 } else {
3744 set ::ngc($hdl,img,top) .$::ngc(any,app)
3745 }
3746 if [winfo exists $::ngc($hdl,img,top)] return
3747 wm withdraw [toplevel $::ngc($hdl,img,top)]
3748 wm protocol $::ngc($hdl,img,top) WM_DELETE_WINDOW \
3749 [list wm withdraw $::ngc($hdl,img,top)]
3750
3751 if {$::ngc(opt,noinput) && !$::ngc($hdl,chooser)} {
3752 pack forget $::ngc($hdl,iframe) ;# wI remove the Input frame
3753 }
3754 if { (!$::ngc(opt,noiframe) && !$::ngc($hdl,chooser) )\
3755 || (!$::ngc(opt,noiframe) && $::ngc($hdl,standalone) )\
3756 } {
3757 # use a frame for image
3758 set p [winfo parent $::ngc($hdl,iframe)]
3759 set w $p.[qid] ;# name of frame
3760 set ::ngc($hdl,img,widget) [image_widget $hdl $w]
3761 set ::ngc($hdl,img,type) frame
3762 } else {
3763 # use a toplevel for image
3764 set ::ngc($hdl,img,widget) [image_widget $hdl $::ngc($hdl,img,top).i]
3765 set ::ngc($hdl,img,type) toplevel
3766 }
3767 # note: new_image packs $::ngc($hdl,img,widget)
3768 } ;# image_init
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
В свете описания ngcgui хотел бы предложить высказаться всем заинтерисованным в усовершенствовании ,модернизации оного.
Может быть не столько ngcgui конкретно,а вцелом интерфейса т.н. мастеров.
Мне уже после первого знакомства с решением в виде вкладок подумалось,что увеличение их количества,ну скажем до нескольких десятков ,приведет
к неразберихе. Посмотрел как это выглядит в маче.Может что то подобное применить и в емс? Первая вкладка-кнопки :общий выбор обработки.
Выбираем-сл.вкладка: выбор подпрограммы.
Кнопки с графикой.
Кнопка вызавает соответствующую вкладку мастера.
Может быть не столько ngcgui конкретно,а вцелом интерфейса т.н. мастеров.
Мне уже после первого знакомства с решением в виде вкладок подумалось,что увеличение их количества,ну скажем до нескольких десятков ,приведет
к неразберихе. Посмотрел как это выглядит в маче.Может что то подобное применить и в емс? Первая вкладка-кнопки :общий выбор обработки.
Выбираем-сл.вкладка: выбор подпрограммы.
Кнопки с графикой.
Кнопка вызавает соответствующую вкладку мастера.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
Разумно. Если все структурировать в виде дерева, то будет просто здорово.
А ты не раздирался, в ngcgui можно объединять несколько обработок в последовательность?
А ты не раздирался, в ngcgui можно объединять несколько обработок в последовательность?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Да.Описано в шапке. Как объеденить несколько подпрограммNick писал(а): в ngcgui можно объединять несколько обработок в последовательность?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
О, круто! Я в тайне надеялся, но был не уверен
Re: ngcgui
nkp, в твоем архиве есть threadx.ngc подцепил его, но резьбу нарезает не с тем шагом, задавал 1,5 на деле нарезал 15)) вот что получается:
Код: Выделить всё
g18 (xz plane)
g21 (20=inches, 21=mm)
g40 (cancel cutter radius compensation)
g49 (cancel tool lengthoffset)
g90 (absolute distance mode)
g94 (units/min feedrate)
g54 (Coordinant system 1 default)
(ngcgui: call subroutine file: /home/user16k30/emc2/configs/16k30/testsuite_lathe/threadx.ngc)
(ngcgui: positional parameters:)
( #1 = diameter = 40)
( #2 = startz = 15)
( #3 = pitch = 1.5)
( #4 = endz = -15)
( #5 = peakoffset = -1)
( #6 = cutdepth = 0.1)
( #7 = regression = 1.0)
( #8 = threaddepth = 1.5)
( #9 = angle = 0)
( #10 = springpass = 2)
( #11 = taperamount = 0)
( #12 = tapertype = 0)
( #13 = coolant = 7)
( #14 = rpm = 200)
o<threadx> call [40][15][1.5][-15][-1][0.1][1.0][1.5][0][2][0][0][7][200]
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Этот архив выкладывал по просьбе из-за панельки pyVCP.Файлы в папке ngcgui - каша -все в т.с. в процессе...
Вот откуда threadx.ngc : На основе этих о-кодов хочу сделать мастера поудобней.
Вот откуда threadx.ngc : На основе этих о-кодов хочу сделать мастера поудобней.
Re: ngcgui
да нашел этот файликnkp писал(а):Этот архив выкладывал по просьбе из-за панельки pyVCP.Файлы в папке ngcgui - каша -все в т.с. в процессе...
Вот откуда threadx.ngc : На основе этих о-кодов хочу сделать мастера поудобней.
Re: ngcgui
наверное проблема не в threadx.ngc, оказывается у меня нет синхронизации подачи с оборотами шпинделя. уменьшаю обороты, а подача та же самая
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Такую концепцию мастеров легче реализовать с решением такого плана: Разработка на gladenkp писал(а): Посмотрел как это выглядит в маче.Может что то подобное применить и в емс? Первая вкладка-кнопки :общий выбор обработки.
Выбираем-сл.вкладка: выбор подпрограммы.
Кнопки с графикой.
Кнопка вызавает соответствующую вкладку мастера.
http://www.linuxcnc.org/index.php/engli ... 5&start=18
Для "попробовать" скачиваем: запускаем ваш emc2
запускаем gscreen.py
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Кстати, поднимался вопрос отображения 4 знаков после запятой.
Здесь как раз так.
Здесь как раз так.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
А чем он выгодно отличается от Axis?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Ну выгода пока что для таких как я (кто недавно пополнил свой лексикон словами "питон","тикль", и т.д.)
То есть работа с glade довольно простыми средствами получить свой экран.
А это просто пример реализации-не более.Так что про конкретные удобства,кроме как вышеуказанной гибкости в наполнении нужными элементами,речь не идет.
То есть работа с glade довольно простыми средствами получить свой экран.
А это просто пример реализации-не более.Так что про конкретные удобства,кроме как вышеуказанной гибкости в наполнении нужными элементами,речь не идет.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
Так Gscreen написан на питоне? Что-то мне тикль не нравится - мутный он какой-то и не понятный ...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
На питоне.Но мне от этого не легче-добавился еще один пункт в мой План:
выучить ангельский язык и языки программирования питон ,тикль и др.
написать свой экран для емс потом и свой "емс"
ну и что уж там-написать свой windows=>завоевать весь финанс.мир
выучить ангельский язык и языки программирования питон ,тикль и др.
написать свой экран для емс потом и свой "емс"
ну и что уж там-написать свой windows=>завоевать весь финанс.мир
Re: ngcgui
А приблизительно по времени сколько у вас ушло на освоение ngcgui?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Вы установите ngcgui.Настроить тут помогут.Там все не так сложно
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Навеяно темой http://cnc-club.ru/forum/viewtopic.php? ... 801#p23771
Решил сделать отдельный мастер для подобных деталей загвоздка в обработке исключений( деление на 0)
думаю решим
Решил сделать отдельный мастер для подобных деталей загвоздка в обработке исключений( деление на 0)
думаю решим
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Вот тот же код , но без ngcgui:
Код: Выделить всё
F80 G17
G00 X-6 Y0
G01 z0
G02 X-6 Y0 I6 J0
G00 z3
#<dd>=60
#<aa>=0
o103 repeat [6]
G10 L2 R[#<aa>] P0
G00 X-11 Y0
G01 z0
G02 X-11 Y0 I2 J0
G00 z3
#<aa>=[[#<aa>]+[#<dd>]]
o103 endrepeat
G00 X-16 Y0
G01 z0
G02 X-16 Y0 I16 J0
G00 z3
M2