Страница 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 прописать, чтобы все изменения туда вносить... просто будешь вести отдельную ветку, и потом все будем мержить в основную.