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 раз.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ngcgui
Так он хочет не только картинку, но и подпрограмму со всеми её полями ввода и т.п., и чтоб они все одновременно работали. Фактически запустить несколько таких прог в одном контексте.
P.S. Ник, самое весёлое - это когда над проектом на С работают три программера, двое из которых имеют большой опыт программирования на Tcl/Tk - так вот этот третий впринципе не втупляет в код на С, который генерят те двое, причём этот код получается гораздо эффективней и компактней.
P.P.S. А если они ещё владеют LISP'ом...
P.S. Ник, самое весёлое - это когда над проектом на С работают три программера, двое из которых имеют большой опыт программирования на Tcl/Tk - так вот этот третий впринципе не втупляет в код на С, который генерят те двое, причём этот код получается гораздо эффективней и компактней.
P.P.S. А если они ещё владеют LISP'ом...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Алексс
- Почётный участник
- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: ngcgui
nkp, спасибо за статейку!!
установил себе ngcgui, даже работает.
однако русские буковки отображаются криво - что подкрутить ??
установил себе ngcgui, даже работает.
однако русские буковки отображаются криво - что подкрутить ??
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
в теме обсуждался вопрос шрифтов
но признаться как то неоднозначно смена шрифта работает
у меня сейчас кирилица тоже в ngcgui смотрится никчемно (надо бы занятся-шрифтов в систему подкинуть- поэкспериментировать)
но признаться как то неоднозначно смена шрифта работает
у меня сейчас кирилица тоже в ngcgui смотрится никчемно (надо бы занятся-шрифтов в систему подкинуть- поэкспериментировать)
- Алексс
- Почётный участник
- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: ngcgui
ну у меня просто кракозябры показывает.
NGCGUI_FONT = Arial -10 normal писал - не помогло.
вечером еще посмотрю.
NGCGUI_FONT = Arial -10 normal писал - не помогло.
вечером еще посмотрю.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Несколько слов о таком инструменте как Truetype Tracer.
Эта программка выдает G-код текста .Может работать самостоятельно и в виде вкладки Linuxcnc.Рассмотрим оба варианта.
Сама программка (если не установлена) : В консоли пишем:
получаем ж-код нашей надписи:
добавим вывод кода в файл (в нужную директорию емс) :
вот теперь мы легко загружаем программу в емс:
Изменим внешний вид надписи прописав нужный нам шрифт:
смотрим:
Здесь общие сведения о шрифтах TrueType .
Большая коллекция шрифтов.
Можно получить на выходе dxf файл,прописав:
в дом папке смотрим dxf файл:
-----------------------------------------------------------------------------------
Теперь сделаем вкладку .
Пропишем в ini файле в секцию [DISPLAY] :
(путь к файлу пишем свой)
В емс 2.5 файлы содержаться в сборке
Вот тут я заметил (может только у меня), что вкладка truetype-tracer (ttt) не появляетс,если нет хоть одной вкладки ngcgui. Дальше пишем нужный текст, выбираем настройки,ставим галку если нам нужно будет повернуть надпись ,жмем Make.
Открывается стандартная вкладка ngcgui в которой мы можем изменять параметры: После корректировки жмем Создать-завершить :
Эта программка выдает G-код текста .Может работать самостоятельно и в виде вкладки Linuxcnc.Рассмотрим оба варианта.
Сама программка (если не установлена) : В консоли пишем:
Код: Выделить всё
truetype-tracer CNC-Club
Код: Выделить всё
truetype-tracer CNC-CLUB > /home/nkp/emc2/nc_files/20.ngc
Код: Выделить всё
truetype-tracer -f /usr/share/fonts/truetype/FezSSK-Bold.ttf CNC-CLUB > /home/nkp/emc2/nc_files/20.ngc
Большая коллекция шрифтов.
Можно получить на выходе dxf файл,прописав:
Код: Выделить всё
truetype-tracer-dxf NKP >nkp.dxf
Теперь сделаем вкладку .
Пропишем в ini файле в секцию [DISPLAY] :
Код: Выделить всё
TKAPP = /home/nkp/cnc/tcl/ngcgui_ttt.tcl
TTT = truetype-tracer
В емс 2.5 файлы содержаться в сборке
Вот тут я заметил (может только у меня), что вкладка truetype-tracer (ttt) не появляетс,если нет хоть одной вкладки ngcgui. Дальше пишем нужный текст, выбираем настройки,ставим галку если нам нужно будет повернуть надпись ,жмем Make.
Открывается стандартная вкладка ngcgui в которой мы можем изменять параметры: После корректировки жмем Создать-завершить :
- Алексс
- Почётный участник
- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: ngcgui
все просто - нужно по русски писать в unicode и тогда все показывается правильно.Алексс писал(а):ну у меня просто кракозябры показывает.
поставил себе - классная штука.nkp писал(а):Несколько слов о таком инструменте как Truetype Tracer.
единственное не понял в каких единицах масштаб задается. но можно поэкспериментировать и подобрать.
nkp - дайте ему еще медаль
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: ngcgui
nkp писал(а):Решение ошибки возможности деления на 0 :Код: Выделить всё
o124 if [#10 NE 0] #<dd>=[360/[#10]] o124 endif
не получается обойти ошибку деления на ноль
o<rezba> sub
#<Start_Dia> = #1 (=20 Диаметр Начальный)
#<Dia_rezby> = #2 (=10 Диаметр резьбы)
#<Z_Start> = #3 (=50 Z_Начальное)
#<Z_EndOfCut> = #4 (=2 Z_Конечное)
#<conus> = #5 (=0 конусность)
#<SurfSpeed> = #6 (=300 обороты)
#<Depth_Cut> = #7 (=1.5 глуб резьбы)
#<Step> = #8 (=1.5 Шаг резьбы)
#<Kon_otstup> = #9 (=50 Конечный отступ)
#<Step_cut> = #10 (=0.2 единичная глубина)
#<Smeshenee> = #11 (=0.173 смещение центра)
#<tangens> = #12 (=0.577 тангенс угла резьбы)
#<Nproh> = #13 (=3 число чист проходов)
#<nul>=0
G43
G7 G97 S#<SurfSpeed> M3
M8
G0 X#<Start_Dia> Z#<Z_Start>
#<Current_Dia>=#<Dia_rezby>
#<cotangens>=[1/#<tangens>] - на эту строку ругается типа деление на 0
o<rezba> endsub
#<cotangens>=[1/[#12]] - даже так не хочет
Если делить на какой нибудь параметр - сразу грит деление на 0
Просто стандартный цикл G76 режет резьбу по центру - а это ужасно! Так резцов не напасёшься
- Вложения
-
- rezba.ngc
- Вот так набросал файлик, надо отработать его
- (3.69 КБ) 1186 скачиваний
Последний раз редактировалось T00T 06 авг 2012, 21:30, всего редактировалось 1 раз.
Я не волшебник я пока учусь......
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Так пробовал:
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: ngcgui
Попробую, щас
Ура... работает!!
Ура... работает!!
Последний раз редактировалось T00T 06 авг 2012, 21:58, всего редактировалось 1 раз.
Я не волшебник я пока учусь......
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: ngcgui
nkp писал(а):Некоторые опции ngcgui:
NGCGUI_SUBFILE = любое_имя - содает вкладку с "любое_имя "
В файле ini NGCGUI_OPTIONS = noiframe nonew noremove
noiframe -графический файл отдельным окном: nonew - запрещает создание новых вкладок
noremove - запрещает удаление вкладок
Кнопки "Вперед" "Назад"- соотв. перемещение активной вкладки.
Содержимое файла PREAMBLE записывается в начало генерируемого файла.
Содержимое файла POSTAMBLE записывается в конце генерируемого файла.
Вместо PREAMBLE или POSTAMBLE
можно поместить команды в поле ввода.
Начинать команду с : (двоеточие) и отделять; (точка с запятой). Примеры: Вставляя в любое место подпрограммы строку:выводим его вверху вкладки.Код: Выделить всё
info: ваш_коментарий
Может это только у меня так?
А эти кнопки PREAMBLE POSTAMBLE ФАЙЛ как добавить?
И кнопка G-kode что делает?
Я не волшебник я пока учусь......
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: ngcgui
Кстати, для поклонников НЦ-31 и других станков...
Мастер по типу G77 с НЦэшки: Цикл расточки внутренней и внешней, с конусами и без
Мастер по типу G77 с НЦэшки: Цикл расточки внутренней и внешней, с конусами и без
- Вложения
-
- lathe_prod.ngc
- (4.94 КБ) 1169 скачиваний
Я не волшебник я пока учусь......
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
у меня они есть:T00T писал(а):А эти кнопки PREAMBLE POSTAMBLE ФАЙЛ как добавить?
где такая?T00T писал(а):И кнопка G-kode что делает?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Запусти так:
путь подправь
Код: Выделить всё
#!/bin/sh
ngcgui --font big --vert --cwidth 44 --vwidth 0 -D . -S /home/nkp/emc2/nc_files/arc2.ngc -a auto.ngc &
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: ngcgui
где такая?[/quote]T00T писал(а):И кнопка G-kode что делает?
В 29 посте на картинке есть.
Кстати есть такая проблема - допустим создана программа из нескольких мастеров подряд и между ними нет доп. строк. если я остановился посреди программы, то начинать прогу надо сначала, т.к. с нужного мастера не получается запустить. Т.Е. в аксисе нажимаю начать с этого кадра, а начинает всё равно сначала
Я не волшебник я пока учусь......
-
- Мастер
- Сообщения: 742
- Зарегистрирован: 16 дек 2011, 12:07
- Репутация: 100
- Контактная информация:
Re: ngcgui
Я не силён в линуксе и тикеле. Это где запустить или прописать?nkp писал(а):Запусти так:путь подправьКод: Выделить всё
#!/bin/sh ngcgui --font big --vert --cwidth 44 --vwidth 0 -D . -S /home/nkp/emc2/nc_files/arc2.ngc -a auto.ngc &
Я не волшебник я пока учусь......
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: ngcgui
интересно б кстати ncgui прикрутить не к аксису, а, скажем, к mini или gscreen
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
это пропиши в файл (допустим М133)
положи его к ж-кодам
сделать исполняемым
можно повесить на кнопку в glade или еще куда нибудь
а можно просто этот файл запускать
(не забудь путь в файле править)
положи его к ж-кодам
сделать исполняемым
можно повесить на кнопку в glade или еще куда нибудь
а можно просто этот файл запускать
(не забудь путь в файле править)
Последний раз редактировалось nkp 06 авг 2012, 22:01, всего редактировалось 1 раз.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
вот это и есть решениеLexxa писал(а):интересно б кстати ncgui прикрутить не к аксису, а, скажем, к mini или gscreen
я так сейчас и делаю
то есть ngcgui у тебя будет запускаться откуда захочешь
лишь бы емс был запущен
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
ngcgui создает auto.ngc - который как бы состоит из вызовов подпрограмм(ы) с предустановленными юзером параметрами.T00T писал(а):Кстати есть такая проблема - допустим создана программа из нескольких мастеров подряд и между ними нет доп. строк. если я остановился посреди программы, то начинать прогу надо сначала, т.к. с нужного мастера не получается запустить. Т.Е. в аксисе нажимаю начать с этого кадра, а начинает всё равно сначала
По своей сути это и не G-код
Думаю "начать с этого кадра" корректно и не отработает
-------------
А почему именно Stop ? Почему не пауза? Кнопка включения нулевой подачи(т.н. "Стоп подачи")?