Страница 20 из 38
					
				LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 22 май 2013, 18:07
				 Nick
				
Как некоторые уже заметили я пропал на недельку. И пропадал я не зря. Наконец-то решил сделать достойную замену ngcgui.
LinuxCNC Features это тулкит для создания "мастеров". Точнее это тулкит самих "мастеров". В общем и целом LinuxCNC Features работает схоже с ngcgui, но  с некоторыми отличиями. Честно говоря, с ngcgui я до конца так и не разобрался, поэтому это я считаю, что он работает схоже  

. (Название Features взято от кнопки в ngcgui - add feature.)
Текущий статус разработки
- Дописать обработки.
 
- Отловить баги  
 . 
Возможности (для просмотра содержимого нажмите на ссылку)Что может LinuxCNC Features:
- Добавлять features - простые обработки
  
- Менять их порядок
 
- Группировать обработки
 
- Делать линейные и круговые массивы
  
- Встраиваться в axis LinuxCNC или работать как отдельной приложение
 
- Просматривать резултьтат в axis в редиме реального времени
 
- Сохранять шаблоны обработок
 
Это только пока 

.
 
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 19 июн 2014, 20:15
				 Nick
				Надо line-to, arc-to, может еще move-to. 
И заглубление. И... что-нибудь еще 

.
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 19 июн 2014, 20:22
				 verser
				Вот по этому
http://cnc-club.ru/wiki/index.php/Linux ... subroutine есть тоже мнение. 
Когда я вижу в окне исполнения g-coda такую строчку
Код: Выделить всё
	;py,milldraw.line_to(interpreter.this.params['draw_tmp_x'],interpreter.this.params['draw_tmp_y'])
трудно определить что за команда выполняется? не очень наглядно. Макросы еще куда бы ни шло, но inline python - не очень. ИМХО. Или я чего то недопонимаю?
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 19 июн 2014, 20:22
				 verser
				Nick писал(а):Надо line-to, arc-to, может еще move-to. 
И заглубление. И... что-нибудь еще 

.
 
Я помогу.
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 19 июн 2014, 20:28
				 verser
				это мелочь, по сравнению с тем что уже работает.
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 19 июн 2014, 23:26
				 Nick
				verser писал(а):Вот по этому
http://cnc-club.ru/wiki/index.php/Linux ... subroutine есть тоже мнение. 
Когда я вижу в окне исполнения g-coda такую строчку
Код: Выделить всё
	;py,milldraw.line_to(interpreter.this.params['draw_tmp_x'],interpreter.this.params['draw_tmp_y'])
трудно определить что за команда выполняется? не очень наглядно. Макросы еще куда бы ни шло, но inline python - не очень. ИМХО. Или я чего то недопонимаю?
 
Долго думал, без него практически никак. Суть какая, чтобы сделать заглубление  под углом, надо делать разворот траектории.  Без разворота можно сделать только для замкнутых контуров. Для ломаных я в принципе сделал, но выглядит это не лучше inline питона, т.к. синтаксис gкода сильно ограничен. 
Второй довод к такому поведению - один и тот же код может выполняться несколько раз, например, в цикле. И каждый раз значения переменных могут быть разными, значит каждый раз внешний скрипт надо запускать заново.
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 21 июн 2014, 18:36
				 verser
				Вник в суть.
Внес лепту :
- добавил новую группу "мастеров" Lines, в ней 5 "мастеров" - Line cartesian, Line polar, Arc 2 points + center, Arc 2 points + radius, Arc 3 points, все с пошаговым заглублением.
- учитывая что Draws и спиральное заглубление пока у Nicka в активной разработке - временно убрал из меню mill.xml
- добавил пошаговое заглубление к n-gon и hexagon 
- применил фиксы с патча UAVpilot (ему +1)
- подчистил несколько мелких нюансов
- обновил дополнение Features для интерфейса gmoccapy, подключается просто, работает на ура!
http://cnc-club.ru/forum/viewtopic.php? ... 75#p110897 
Все добавления делал в полном соответствии с довольно элегантной концепцией Nicka (в смысле рабочей, той что пока без заглублений по спирали), надеюсь он их примет.
Здесь выкладываю вариант без адaптации под gmoccapy - проверьте как пойдет под Axis. Как подключать объяснял nkp (ему +1) тут 
http://cnc-club.ru/forum/viewtopic.php? ... 140#p72441 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 21 июн 2014, 23:00
				 Serg
				verser писал(а):Здесь выкладываю вариант без адaптации под gmoccapy - проверьте как пойдет под Axis.
Features ведь читает конфиг станка - пусть само автоматом адаптируется под прописанный там интерфейс.
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 22 июн 2014, 10:01
				 verser
				UAVpilot писал(а):
Features ведь читает конфиг станка - пусть само автоматом адаптируется под прописанный там интерфейс.
После последних изменений единственное отличие features.py для gmoccapy - это отсутствие всего одной строчки
Код: Выделить всё
			subprocess.call(["axis-remote",PROGRAM_PREFIX + "/features.ngc"])
так что можно заявлять, что features - универсальное дополнение для linuxcnc для любых интерфейсов  

 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 22 июн 2014, 10:07
				 nkp
				verser писал(а):После последних изменений единственное отличие features.py для gmoccapy - это отсутствие всего одной строчки
ну тогда можно добавить проверку :
Код: Выделить всё
если Axis:
   subprocess.call(["axis-remote",PROGRAM_PREFIX + "/features.ngc"])
для полной "универсальности" 

 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 22 июн 2014, 10:16
				 verser
				может, кстати и не нужна она, после добавления этих
self.linuxcnc.wait_complete()
выглядит как дублирование этого
self.linuxcnc.program_open(PROGRAM_PREFIX + "/features.ngc")
но у меня не настроен Axis, чтобы проверить.
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 22 июн 2014, 10:59
				 nkp
				verser писал(а):может, кстати и не нужна она, после добавления этих
self.linuxcnc.wait_complete()
выглядит как дублирование этого
self.linuxcnc.program_open(PROGRAM_PREFIX + "/features.ngc")
но у меня не настроен Axis, чтобы проверить.
как я это понимаю:
inuxcnc.program_open(файл)  - команда открыть файл в емс 
но если не ошибаюсь - эта команда не всегда "загружает"  файл непосредственно в Axis(то есть  - в саму отрисовку)
и если включить емс на выполнение  - то все будет работать правильно(то есть - файл загрузился в интерпретатор , а в Axis  - нет)
для этого юзают 
axis-remote
---------
linuxcnc.wait_complete() возвращает -1  -если предыдущая команда не выполнена
 (для просмотра содержимого нажмите на ссылку)Код: Выделить всё
static int emcWaitCommandComplete(int serial_number, RCS_STAT_CHANNEL *s, double timeout) {
    double start = etime();
    do {
        double now = etime();
        if(s->peek() == EMC_STAT_TYPE) {
           EMC_STAT *stat = (EMC_STAT*)s->get_address();
//           printf("WaitComplete: %d %d %d\n", serial_number, stat->echo_serial_number, stat->status);
           if (stat->echo_serial_number == serial_number &&
               ( stat->status == RCS_DONE || stat->status == RCS_ERROR )) {
                return s->get_address()->status;
           }
        }
        esleep(fmin(timeout - (now - start), EMC_COMMAND_DELAY));
    } while (etime() - start < timeout);
    return -1;
}
 
вот здесь непонятно  :
выглядит как дублирование этого
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 22 июн 2014, 11:41
				 verser
				nkp писал(а):linuxcnc.wait_complete() возвращает -1  -если предыдущая команда не выполнена
и, что особо важно, ставит на паузу процесс ( в течении EMC_COMMAND_DELAY похоже), без этой команды в gmoccapy глючит обновление.
nkp писал(а):вот здесь непонятно  :
выглядит как дублирование этого
 
я имел ввиду что как бы дублируется в def refresh(self, *arg ) открытие features.ngc 
Код: Выделить всё
self.linuxcnc.program_open(PROGRAM_PREFIX + "/features.ngc")
Код: Выделить всё
subprocess.call(["axis-remote",PROGRAM_PREFIX + "/features.ngc"])
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 22 июн 2014, 13:16
				 nkp
				verser писал(а):я имел ввиду что как бы дублируется в def refresh(self, *arg ) открытие features.ngc
может и да:
self.linuxcnc.program_open(PROGRAM_PREFIX + "/features.ngc")
"загружает" файл в интерпретатор
------------
subprocess.call(["axis-remote",PROGRAM_PREFIX + "/features.ngc"])
обновляет в т.ч. отрисовку  Axis
("в т.ч." - потому как для Axis  , вроде бы , должно быть достаточно subprocess.call(["axis-remote",PROGRAM_PREFIX + "/features.ngc"]))
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 22 июн 2014, 14:08
				 verser
				Есть такие мысли-сомнения-хотелки еще (как у фрезеровщика, а не как у программиста  

  )
1. Нужно ли плавное заглубление на незамкнутых контурах? типа line , arc ?
2. Хочется lines и arcs "сцеплять", чтобы шаг заглубления делался после прохождения всей цепочки, а не по-элементно как сейчас, например когда помещаешь lines в общую группу - они "сцепляются".
3. Плавно заглубиться на 
замкнутом  контуре  
g-codом  довольно легко. Можно во все "мастера" с замкнутым контурами добавить доп. способ заглубления - плавный (по спирали).
 Если сделать в Features эти пп.2-3 тогда, Nick, что еще будет уметь новый подход Draw чего не будет в Features? с точки зрения фрезеровщика?
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 22 июн 2014, 15:11
				 verser
				verser писал(а):3. Плавно заглубиться на замкнутом  контуре  g-codом  довольно легко. Можно во все "мастера" с замкнутым контурами добавить доп. способ заглубления - плавный (по спирали).
Вот например быстренько сделал рабочий вариант "мастера" circle с плавным заглублением(потребовалось минимальное изменение g-code в обычном circle)
расчет траектории делает сам linuxcnc.
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 22 июн 2014, 16:37
				 verser
				Вот тоже самое для rect (лишь немного сложнее):
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 23 июн 2014, 14:33
				 verser
				verser писал(а):
2. Хочется lines и arcs "сцеплять", чтобы шаг заглубления делался после прохождения всей цепочки, а не по-элементно как сейчас, например когда помещаешь lines в общую группу - они "сцепляются".
Представляю реально крутую группу "мастеров" - Chain, включающую видоизмененные lines, arcs и "соединитель" Link up.
Теперь можно резать довольно сложные (замкнутые и незамкнутые) контуры с пошаговым заглублением:
Пользоваться просто - заходим "плюсиком" в Chain,  добавляем новую группу LinkUp и заполняем ее понятные параметры, набираем кривую из linked lines и arcs,закидываем в LinkUp все эти lines и arcs - готово.
Примечание, если концы соседних линий не совпадают, то они автоматически соединяться доп. прямым отрезком. Вот например что получиться если всего  две arc разместить друг напротив друга:
Выкладываю папку subrotines (изменилась только она) со всеми подключенными новшествами.
для интерфейса gmoccapy обновленная сборка здесь 
http://cnc-club.ru/forum/viewtopic.php? ... 75#p110897 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 23 июн 2014, 16:13
				 Nick
				Супер! 
Про linkup по подробнее можешь написать? 
ИМХО Depth, Depth step, Surface, Final, Rappid  лучше убрать из обработок, и поставить в отдельный set cutting parameters... 
Ну разве что Depth и  Surface оставить, остальное для всех обработок будет одинаковым, а зависит только от инструмента.
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 23 июн 2014, 16:24
				 verser
				Nick писал(а):Супер! 
ИМХО Depth, Depth step, Surface, Final, Rappid  лучше убрать из обработок, и поставить в отдельный set cutting parameters... 
Ну разве что Depth и  Surface оставить, остальное для всех обработок будет одинаковым.
Согласен, сделаю.
Link up это типа группа, в которую встроил multipass, и однопроходный(one pass) контур построенный из lines и arcs, этим multipass-ом заглубляется. Параметры заглубления прямо в Link up прописываются.
 
			 
			
					
				Re: LinuxCNC Features - набор мастеров для LinuxCNC
				Добавлено: 23 июн 2014, 16:33
				 Nick
				ммм просто я его на скриншотах не увидел... 
ЗЫ надо тебя в git прописать, чтобы все изменения туда вносить... просто будешь вести отдельную ветку, и потом все будем мержить в основную.