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 раз.
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Так как у меня ngcgui уже установлено, то нужно ли прописывать и что прописывать в INI (прописал только NGCGUI_SUBFILE ="" - никакого результата)?nkp писал(а):Прописать в ini файле в секции [DISPLAY] пути к этим файлам:
(пример из моего ini файла)
(для просмотра содержимого нажмите на ссылку)
Код: Выделить всё • Развернуть
[DISPLAY]
USER_COMMAND_FILE = /home/nkp/emc2/ngcgui/ngcgui_tst/tkapp.py
NGCGUI = /home/nkp/emc2/ngcgui/ngcgui_tst/ngcgui.tcl
TKAPP = /home/nkp/emc2/ngcgui/ngcgui_tst/ngcgui_app.tcl
TKAPP = /home/nkp/emc2/ngcgui/ngcgui_tst/ngcgui_ttt.tcl
Обратите внимание: : ngcgui_app.tcl должен предшествовать ngcgui_ttt.tcl
Хочешь быть счастливым? Будь им!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ngcgui
А YourGUI умеет запускать Tk-приложения внутри себя в соотв. окошке? Axis это делать умеет именно посредством параметров TKAPP, но хитрость в том что эти параметры понимает только axis и никт о кроме него...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Так я и спрашиваю... Если никак, то буду переделывать AXIS...
Хочешь быть счастливым? Будь им!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ngcgui
а в отдельном окошке чем плохо? Оно ведь нужно только на момент задания шага сетки.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Кнопок - меньше двух десятков... Зачем это все распихивать по окошкам? ИМХО, удобство и эстетика - близнецы сестры
Хочешь быть счастливым? Будь им!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ngcgui
Ничего не понял. Какие кнопки?
Кнопка нужна ровно одна - запуск ngcgui. А уже внутри можно выбрать нужную фичу и т.п.
Кнопка нужна ровно одна - запуск ngcgui. А уже внутри можно выбрать нужную фичу и т.п.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Ты сказал про задание шага сетки чуть выше, и я сразу включился в свою задачу... Но это разговор отдельной темы. Для универсального станка широкая библиотека (даже в отдельном окошке) вполне даже симпатична и нужна.UAVpilot писал(а):Ничего не понял. Какие кнопки?
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Вот хочу я использовать подпрограмму в ngcgui. Настраиваю INI, кладу файл с описанием переменных <имя_1>.ngc в папку /nc_files . Туда же файл auto.ngc...
Получаю вкладку с окошками для ввода значений переменных и кнопки для формирования G-кода.
Но не понял КАК организовать ДВЕ вкладки? Понятно, что в INI , скорее всего, нужно написать:
А что делать с файлом auto.ngc ? Неужели в него прописывать ВСЕ переменные из первой и второй подпрограммы?
Возьмем, для примера, что в подпрограмме 1 будет три переменных, а во второй - 4 переменные. И имена этих переменных будут разные.
Что делать?
Получаю вкладку с окошками для ввода значений переменных и кнопки для формирования G-кода.
Но не понял КАК организовать ДВЕ вкладки? Понятно, что в INI , скорее всего, нужно написать:
Код: Выделить всё
[DISPLAY]
DISPLAY = axis
EDITOR = gedit
GLADEVCP = mygui.ui
...
NGCGUI_SUBFILE =/home/sun/linuxcnc/nc_files/<имя_1>.ngc
NGCGUI_SUBFILE =/home/sun/linuxcnc/nc_files/<имя_2>.ngc
...
Возьмем, для примера, что в подпрограмме 1 будет три переменных, а во второй - 4 переменные. И имена этих переменных будут разные.
Что делать?
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
файл auto.ngc никуда "ложить" не требуется...(на то он и "auto")
он автоматически создается из вызова подпрограммы (или нескольких сразу)
поэтому в данном случае просто удали файл auto.ngc и всё...
он автоматически создается из вызова подпрограммы (или нескольких сразу)
поэтому в данном случае просто удали файл auto.ngc и всё...
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
А в INI прописывать ДВА файла?
И изначально нет нужды создавать файл auto.ngc ???
И изначально нет нужды создавать файл auto.ngc ???
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
да ,два(или сколько необходимо)Ворон226 писал(а):А в INI прописывать ДВА файла?
точно - не нужноВорон226 писал(а):И изначально нет нужды создавать файл auto.ngc ???
==================
кстати - можно "задействовать" сразу несколько вкладок :
открываем первую вкладку - нажимаем "Create Feature" - открываем вторую - опять жмём "Create Feature" - .......-
"Finalize" - соглашаемся "сбить всё в кучу" , и получаем auto.ngc с вызовом подпрограмм из соответствующих вкладок
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Это уже понятно. Спасибо!nkp писал(а):кстати - можно "задействовать" сразу несколько вкладок :
открываем первую вкладку - нажимаем "Create Feature" - открываем вторую - опять жмём "Create Feature" - .......-
"Finalize" - соглашаемся "сбить всё в кучу" , и получаем auto.ngc с вызовом подпрограмм из соответствующих вкладок
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Возникли вопросы:
1. Как передать значение переменной в HAL?
Например, в ngcgui у нас есть переменная <Step>. Можно ли её значение присвоить параметру в HAL? Допустим подать на вход mux2.0.in1 ? И как?
2. Как присвоить переменной в ngcgui значение параметра из HAL ?
Например, мы получаем на выходе mux2.0.out некоторое значение, которое нужно присвоить переменной ngcgui <Speed>. И как?
1. Как передать значение переменной в HAL?
Например, в ngcgui у нас есть переменная <Step>. Можно ли её значение присвоить параметру в HAL? Допустим подать на вход mux2.0.in1 ? И как?
2. Как присвоить переменной в ngcgui значение параметра из HAL ?
Например, мы получаем на выходе mux2.0.out некоторое значение, которое нужно присвоить переменной ngcgui <Speed>. И как?
Хочешь быть счастливым? Будь им!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ngcgui
Типа тонкий намёк.
Код: Выделить всё
$ tclsh
% package require Linuxcnc
1.0
% hal getp ini.0.max_limit
1000
% hal setp ini.0.max_limit 500
setting parameter 'ini.0.max_limit' to '500'
Pin 'ini.0.max_limit' set to 500
% hal getp ini.0.max_limit
500
%
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
Или через inline python, на подобие:
(только для последних релизов)
О или вообще через прямой доступ к пинам в Gкоде (тоже вроде только в новых релизах):
http://www.linuxcnc.org/docs/devel/html ... al_items_a
Код: Выделить всё
;py,interpreter.this.params['draw_param_g']=g
О или вообще через прямой доступ к пинам в Gкоде (тоже вроде только в новых релизах):
http://www.linuxcnc.org/docs/devel/html ... al_items_a
To read arbitrary HAL pins, signals and parameters from G-code, use the following named parameter syntax:
#<_hal[hal_name]>
where hal_name may be a pin, parameter or signal name.
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Сегодня пытался сделать такой мастер:
есть файл сложной обработки поверхности на фрезере ("сложной" - это такой обработки, которую нет нужды или возможности запихивать в отдельный мастер). Нужно отфрезеровать на заготовке несколько штук этого элемента.
По аналогии со сверловкой сделал "рыбу":
Но есть одно БОЛЬШОЕ но... Обычно программа обработки не предусматривает относительные координаты, т.е. в соответствии с "мастером" мы переместимся на место следующей детали, но программа обработки этой детали вернет нас на место первой детали, если...
Если мы не воспользуемся G-кодом временного отступа G92, т.е. после переезда на место фрезеровки следующей детали мы установим
G92 X0 Y0
А в конце работы "мастера" не забываем отменить значения G92 командой G92.2
Проверил - работает.
Вот и подошел я к самому вопросу:
Как просто вставить в "мастер" программу обработки детали? (самый простой способ при помощи Ctrl-C и Ctrl-V я уже знаю )
Нет ли способа в меню "мастера" сделать окошко для вызова внешней программы обработки, которую "мастер" мультиплицирует?
есть файл сложной обработки поверхности на фрезере ("сложной" - это такой обработки, которую нет нужды или возможности запихивать в отдельный мастер). Нужно отфрезеровать на заготовке несколько штук этого элемента.
По аналогии со сверловкой сделал "рыбу":
Код: Выделить всё
o<sverlo> sub
#<Num_X> = #1 (=3 кол-во элементов по X)
#<Step_X> = #2 (=10 шаг по X, мм)
#<Num_Y> = #3 (=3 кол-во элементов по Y)
#<Step_Y> = #4 (=10 шаг по Y, мм)
#<Max_RPM> = #9 (=5000 обороты шпинделя)
#<Start_X> = #10 (=0 нач.координата по X, мм)
#<Start_Y> = #11 (=0 нач.координата по Y, мм)
G0 Z5.0
G0 X0 Y0 S#<Max_RPM> M3
#<Current_Y> = #<Start_Y>
o100 repeat [#<Num_Y>]
#<Current_X> = #<Start_X>
o101 repeat [#<Num_X>]
G0 X#<Current_X> Y#<Current_Y>
(тут должна быть программа фрезеровки элемента)
G0 Z5.0
#<Current_X> = [#<Current_X> + #<Step_X>]
o101 endrepeat
#<Current_Y> = [#<Current_Y> + #<Step_Y>]
o100 endrepeat
G0 Z5.0 M5
G0 X0 Y0
M9
o<sverlo> endsub
Если мы не воспользуемся G-кодом временного отступа G92, т.е. после переезда на место фрезеровки следующей детали мы установим
G92 X0 Y0
А в конце работы "мастера" не забываем отменить значения G92 командой G92.2
Проверил - работает.
Вот и подошел я к самому вопросу:
Как просто вставить в "мастер" программу обработки детали? (самый простой способ при помощи Ctrl-C и Ctrl-V я уже знаю )
Нет ли способа в меню "мастера" сделать окошко для вызова внешней программы обработки, которую "мастер" мультиплицирует?
Хочешь быть счастливым? Будь им!
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: ngcgui
Почему бы просто не сместить ось через G10 ?
Вставить программу можно оформив её как вызываемую из мастера внешнею суброутину
Вставить программу можно оформив её как вызываемую из мастера внешнею суброутину
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
А почему не G92?torvn77 писал(а):Почему бы просто не сместить ось через G10 ?
И как?torvn77 писал(а):Вставить программу можно оформив её как вызываемую из мастера внешнею суброутину
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Так и не нашел как картинку вставить...nkp писал(а):В файле ngcgui.tcl
ограничение на размер png здесь
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
o<cod> callВорон226 писал(а):Как просто вставить в "мастер" программу обработки детали?
=========
сам код положить в файл cod.ngc и его в папку с остальными программами...
файл cod.ngc оформить в виде:
o<cod>sub
...
...
o<cod>endsub