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 раз.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: ngcgui
тагда надо экспорт в g-код прикрутить
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
Немного расширенней загрузить код галка есть: По настоящему думаю не выйдет -потому как в О-кодах используем циклы ,условия и пр.Lexxa писал(а):тагда надо экспорт в g-код прикрутить
"Начать с этого кадра" в таких условиях проблематично
- Алексс
- Почётный участник
- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: ngcgui
я вот чего подумал, nkp, не желаешь завести акаунт на github и туда синхронизировать все (ну или какие хочешь) разработки ?
удобно, отовсюду оступно, история хранится.
плюс вдруг найдутся еще желающие что дополнить/поправить ?
удобно, отовсюду оступно, история хранится.
плюс вдруг найдутся еще желающие что дополнить/поправить ?
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Гармонист
- Почётный участник
- Сообщения: 423
- Зарегистрирован: 24 апр 2011, 09:14
- Репутация: 72
- Откуда: планета Земля
- Контактная информация:
Re: ngcgui
идея сделать еще "генератор шестеренок"
на подобие GearGenerator (ссылка http://woodgears.ca) - только открытый, бесплатный и не урезанный.
Конечно это в некотором роде изобретения колеса...
но преимущества налицо: не нужно доп-редакторов(типа чернильницы), доп-плагинов к редакторам(плагин создания шестеренок), ...
G-код генерироваться будет сразу внутри программы работы правления станком!
на подобие GearGenerator (ссылка http://woodgears.ca) - только открытый, бесплатный и не урезанный.
Конечно это в некотором роде изобретения колеса...
но преимущества налицо: не нужно доп-редакторов(типа чернильницы), доп-плагинов к редакторам(плагин создания шестеренок), ...
G-код генерироваться будет сразу внутри программы работы правления станком!
http://cnc-club.ru/forum/viewtopic.php?t=1064 - домашний станок типа "рука"
http://cnc-club.ru/forum/viewtopic.php?t=1107 - быстро создать 3d образ без сканера по фоткам
http://cnc-club.ru/forum/viewtopic.php?t=1073 - прогноз станко-строения
http://livehistory.ru - мозаика складывается
http://www.economics.kiev.ua - почему все так в нашем мире
http://cnc-club.ru/forum/viewtopic.php?t=1107 - быстро создать 3d образ без сканера по фоткам
http://cnc-club.ru/forum/viewtopic.php?t=1073 - прогноз станко-строения
http://livehistory.ru - мозаика складывается
http://www.economics.kiev.ua - почему все так в нашем мире
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
Параметров будет очень много, начиная от формы зуба, кончая подачей, заглублением толщиной + нужно сделать CAM который из линии сделает Gкод. В общем геморроя выше крыши.
Проще взять inkscape, и в нем уже есть gears.
Проще взять inkscape, и в нем уже есть gears.
- Гармонист
- Почётный участник
- Сообщения: 423
- Зарегистрирован: 24 апр 2011, 09:14
- Репутация: 72
- Откуда: планета Земля
- Контактная информация:
Re: ngcgui
согласен, только в нем нет 3ей координаты, из-за чего нельзя сделать шестерни со специальной формой зуба... например со скошенной формой(говорят она более точная и уменьшает биения) или конусо-подобную шестерню... хотя эти задачи скорее для 3d, а не 2d редактора...Nick писал(а):Проще взять inkscape, и в нем уже есть gears.
http://cnc-club.ru/forum/viewtopic.php?t=1064 - домашний станок типа "рука"
http://cnc-club.ru/forum/viewtopic.php?t=1107 - быстро создать 3d образ без сканера по фоткам
http://cnc-club.ru/forum/viewtopic.php?t=1073 - прогноз станко-строения
http://livehistory.ru - мозаика складывается
http://www.economics.kiev.ua - почему все так в нашем мире
http://cnc-club.ru/forum/viewtopic.php?t=1107 - быстро создать 3d образ без сканера по фоткам
http://cnc-club.ru/forum/viewtopic.php?t=1073 - прогноз станко-строения
http://livehistory.ru - мозаика складывается
http://www.economics.kiev.ua - почему все так в нашем мире
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: ngcgui
Да-да, и самое главное расчет зуба там гораздо сложнее.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
добавление чекбоксов в ngcgui:
если используем ngcgui автономно - то изменения вносим в файл /usr/bin/ngcgui
вот сам файл: если используем ngcgui в Axis - то изменения вносим в файл /usr/lib/tcltk/linuxcnc/ngcgui.tcl
(содержимое то же)
теперь в строке ,там где хотим получить чекбокс пишем так: #<coolant> = #1 (=1 <> coolan) теперь в своих подпрограммках можно прописывать примерно так:
(info: чекбокс)
o<zew> sub
#<coolant> = #1 (=1 <> coolant)
o100 if [#<coolant> eq 1]
M8
o100 endif
o<zew> endsub
то есть - если галка стоит - выполняем M8
если используем ngcgui автономно - то изменения вносим в файл /usr/bin/ngcgui
вот сам файл: если используем ngcgui в Axis - то изменения вносим в файл /usr/lib/tcltk/linuxcnc/ngcgui.tcl
(содержимое то же)
теперь в строке ,там где хотим получить чекбокс пишем так: #<coolant> = #1 (=1 <> coolan) теперь в своих подпрограммках можно прописывать примерно так:
(info: чекбокс)
o<zew> sub
#<coolant> = #1 (=1 <> coolant)
o100 if [#<coolant> eq 1]
M8
o100 endif
o<zew> endsub
то есть - если галка стоит - выполняем M8
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
подпрограммка для сегментов:
https://www.youtube.com/watch?v=9jgT7OeaOi8
зы
подачу забыл прилепить...
Код: Выделить всё
(info: сегмент )
o<segment> sub
#<R1> = #1 (=30 R внешний)
#<r> = #2 (=10 r внутренний)
#<a> = #3 (=30 угол)
#<Coolant> = #4 (=1 <> охлаждение )
#<feed> = #5 (=400 подача)
F130 G90
G0 Y#<r>
G4 P1
#<b> = [90-[#<a>]]
G2 X [[COS[#<b>]] * [#<r>]] Y [[SIN[#<b>]] * [#<r>]] I0 J-#<r>
G1 X [[COS[#<b>]]*#<R1>] Y [[SIN[#<b>]] *#<R1>]
o<if0> if [#<a> LT 180]
#<R2> = #<R1>
o<if0> else
#<R2> =[-#<R1>]
o<if0> endif
G3 X0 Y#<R1> R#<R2>
G1 Y#<r>
o<segment> endsub
зы
подачу забыл прилепить...
- 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
тут реализация ngcgui на питоне ... (напомню - оригинал на тикле )
почти все как и было - интерфейс , функционал ...
почти все как и было - интерфейс , функционал ...
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
А как прикрутить ngcgui к MyGUI? Есть ли такая возможность?
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
http://cnc-club.ru/forum/viewtopic.php? ... 120#p33186Ворон226 писал(а):А как прикрутить ngcgui к MyGUI? Есть ли такая возможность?
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
А для более поздних версий ничего не поменялось?nkp писал(а):Установка
Для установки в EMC2 версии 2.4 нужны 4 файла:
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
в папкe bin уж eсть файл ngcgui,Ворон226 писал(а):А для более поздних версий ничего не поменялось?
eго запускаeшь при запущenом eмс2 , выбираeшь файл с подпрограммой (оnа должа лeжать в папкe с остальnывми ж-кодами)
ps
поож клава приказала долго жить))
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Если честно, то мало чего понял...nkp писал(а):eго запускаeшь при запущeнном eмс2 , выбираeшь файл с подпрограммой
Запускаю linuxcnc со своей конфигурацией и... как и где запускаю ngcgui?
Хочешь быть счастливым? Будь им!
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
просто клавиатура накрылась - писать подробней не мог...Ворон226 писал(а):Если честно, то мало чего понял...
=========
ngcgui у тебя уже есть - в папке:Ворон226 писал(а):А для более поздних версий ничего не поменялось?nkp писал(а):Установка
Для установки в EMC2 версии 2.4 нужны 4 файла:
/папка_емс_из_исходников/bin
этот файл можно запускать из консоли с нужными настройками(размер граф.окна,шрифт,и т.д.)
например у меня: ----------
а можно эту команду "упаковать" в файл ,например М133 и запускать из емс
=========
наверно можно и фильтр настроить , да , скорей всего это будет самым удобным способом(не пробовал пока)
===========
открывать новые подпрограммы можно кнопкой : файлы подпрограмм должны лежать в папке с G-кодами (указаной в ini-файле)
Последний раз редактировалось nkp 26 май 2014, 18:16, всего редактировалось 2 раза.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ngcgui
в дополнение:
Код: Выделить всё
Usage:
ngcgui --help
ngcgui [Options] -D nc_files_directory_name
ngcgui [Options] -i linuxcnc_inifile_name
ngcgui [Options]
Options:
[-S subroutine_file]
[-p preamble_file]
[-P postamble_file]
[-o output_file]
[-a autosend_file] (autosend to axis default:auto.ngc)
[--noauto] (no autosend to axis)
[--font [big|small|fontspec]] (default: "Helvetica -10 bold")
[--horiz|--vert] (default: --horiz)
[--cwidth comment_width] (width of comment field)
[--vwidth varname_width] (width of varname field)
[--quiet] (fewer comments in outfile)
[--imageframe] (default: separate widget for image)
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Спасибо - буду ночью ковырять. Задача не создать универсальный широкораскрытый инструмент, а заточенный на нужную задачу без дополнений. Думаю, что разберусь. Во всяком случае, буду разбираться. Из темы не ухожу
Хочешь быть счастливым? Будь им!
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: ngcgui
Начал пробовать.
Оказалось, что ngcgui у меня находится в /usr/bin , а сама библиотека ngcgui в /home/sun/linuxcnc/nc_files/ngcgui_lib
И у меня открылось окно с подпрограммой arc1.ngc
Но это отдельное окно - буду пытаться прикрутить его к своему MyGUI...
Оказалось, что ngcgui у меня находится в /usr/bin , а сама библиотека ngcgui в /home/sun/linuxcnc/nc_files/ngcgui_lib
Я запустил так:nkp писал(а):этот файл можно запускать из консоли с нужными настройками(размер граф.окна,шрифт,и т.д.)
например у меня:
Код: Выделить всё
$ /usr/bin/ngcgui --font big --vert --cwidth 44 --vwidth 0 -D . -S /home/sun/linuxcnc/nc_files/ngcgui_lib/arc1.ngc -a auto.ngc &
[2] 3252
[1] Готово /usr/bin/ngcgui --font big --vert --cwidth 44 --vwidth 0 -D . -S /home/sun/linuxcnc/nc_files/ngcgui_lib -a auto.ngc
sun@sun-desktop:~$
Но это отдельное окно - буду пытаться прикрутить его к своему MyGUI...
Хочешь быть счастливым? Будь им!