LinuxCNC Features - набор мастеров для LinuxCNC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

Снимок-features.ngc - AXIS 2.6.0-pre0-4385-g9c95855 on LinuxCNC-HAL-SIM-AXIS.png (215417 просмотров) <a class='original' href='./download/file.php?id=15468&mode=view' target=_blank>Загрузить оригинал (153.61 КБ)</a>
Как некоторые уже заметили я пропал на недельку. И пропадал я не зря. Наконец-то решил сделать достойную замену ngcgui.
LinuxCNC Features это тулкит для создания "мастеров". Точнее это тулкит самих "мастеров". В общем и целом LinuxCNC Features работает схоже с ngcgui, но с некоторыми отличиями. Честно говоря, с ngcgui я до конца так и не разобрался, поэтому это я считаю, что он работает схоже :freak:. (Название Features взято от кнопки в ngcgui - add feature.)
В wiki cnc-club добавлена страница о LinuxCNC Features, давайте вместе ее наполнять документацией, видео и прочими полезными материалами.
http://cnc-club.ru/wiki/index.php/LinuxCNC_Features

Текущий статус разработки

  • Дописать обработки.
  • Отловить баги :freak: .
Возможности (для просмотра содержимого нажмите на ссылку)
Что может LinuxCNC Features:
  1. Добавлять features - простые обработки
  2. Менять их порядок
  3. Группировать обработки
  4. Делать линейные и круговые массивы
  5. Встраиваться в axis LinuxCNC или работать как отдельной приложение
  6. Просматривать резултьтат в axis в редиме реального времени
  7. Сохранять шаблоны обработок
Это только пока :).
Скриншоты (для просмотра содержимого нажмите на ссылку)
Пара примеров обработки, созданной за 20 сек:
LinuxCNC-Features1.png (215706 просмотров) <a class='original' href='./download/file.php?id=14825&mode=view' target=_blank>Загрузить оригинал (158.39 КБ)</a>
LinuxCNC-Features.png (215706 просмотров) <a class='original' href='./download/file.php?id=14826&mode=view' target=_blank>Загрузить оригинал (166.41 КБ)</a>

Скрины предыдущих версий

Саме начало
LinuxCNC Features.png (215710 просмотров) <a class='original' href='./download/file.php?id=14824&mode=view' target=_blank>Загрузить оригинал (68.04 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

Остается самый главный вопрос, выполянется ли скритп M100 при предпросмотре, или только при выполнении программы?
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Сергей Саныч »

У меня через М100 делаются запросы оператору. Судя по тому, что при предпросмотре никаких запросов нет - не выполняется.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

хммм... хреново... надо что-то придумывать...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Сергей Саныч »

я больше скажу, похоже, при предпросмотре M-коды вообще никакие не выполняются. M0 и M1 - так уж точно.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

надо поковырять код предпросмотрщика....
кто занет, где он находится? Там же где и интерпретатор?

ЗЫ вроде была какая-то фишка по интеграции питона в Gкод... может оно сработает?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

Ага! http://www.linuxcnc.org/docs/devel/html ... atements_a
есть такая крутая конструкция, в 2.6-pre работает:

Код: Выделить всё

G01 X10 Y10
;py,print "ha-ha-ha"
В предпросмотре работает! Живем, можно писать враппер! :cheesy:
только теперь надо придумать, как ей параметры запихать :)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

Точно, все работает:

Код: Выделить всё

#<x>=1 
#<y>=1 
;py,import interpreter
;py,print "x=",interpreter.this.params["x"]
;py,print "y=",interpreter.this.params["y"]

o100 if [1 eq 2] 
	#<x>=10 
o100 endif 
o101 if [2 eq 2] 
	#<y>=10 
o101 endif 
;py,print "x=",interpreter.this.params["x"]
;py,print "y=",interpreter.this.params["y"]
воводит

Код: Выделить всё

x= 1.0
y= 1.0
x= 1.0
y= 10.0
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

aaleksander, давай обсуждать интерфейс общения :)
Или у тебя можно просто импортнуть библиотеку, и потом писать на питоне?
aaleksander
Мастер
Сообщения: 577
Зарегистрирован: 23 авг 2013, 18:04
Репутация: 118
Откуда: г. Ухта
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение aaleksander »

Nick писал(а):aaleksander, давай обсуждать интерфейс общения :)
Или у тебя можно просто импортнуть библиотеку, и потом писать на питоне?
Ну да. Ради этого все и затевалось:

Попробуй, например, для последней версии небольшой скрипт (он есть в гите, "text.py" называется).
Если в LCNC откроется, то можно пробовать впихнуть в features.

Код: Выделить всё

from py2gcode import *
from py2gcode.Fonts import arial

sz = 5
def f():
    G0(0, 0, sz)
    font = get_font("arial")
    t = TextTrajectory(font, "Проба текста")
    t.grav(0, 0, 0, sz, 500, 2.8) #0.4
    G0(Z=sz)

export(f)
aaleksander
Мастер
Сообщения: 577
Зарегистрирован: 23 авг 2013, 18:04
Репутация: 118
Откуда: г. Ухта
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение aaleksander »

А вот такая штука прокатит?

Код: Выделить всё

#<m>=;py, 3 + 2
;py,import interpreter
;py,print "m=",interpreter.this.params["m"]
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

aaleksander писал(а):#<m>=;py, 3 + 2
Напрямую это не работает...
Хотя интересно... надо по больше почитать....
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

Вот так работает:

Код: Выделить всё

;py,interpreter.this.params['m'] = 3+2
(DEBUG, #<m>)
К этому можно приписать:

Код: Выделить всё

O<get_gcode> SUB
	#<return> = 0
	O<get_gcode_while> WHILE [#<return> NE 1]
		(тут читаем строку в питоне и парсим ее на параметры #<read_n> и если строка посделняя делаем #<return>=1 )		
		(И потом выполняем)
		G#<read_01> X#<read_02> Y#<read_03> (...)
	O<get_gcode_while> ENDWHILE

O<get_gcode> ENDSUB
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение going »

Встроил features в linuxcnc-2.5.3. Запускается. Вроде бы код экспортирует в linuxcnc , а картинка кода не видна.
Подскажите пожалуйста где искать проблему.
Вложения
lcnc_features.png (2627 просмотров) <a class='original' href='./download/file.php?id=26178&mode=view' target=_blank>Загрузить оригинал (1.09 МБ)</a>
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

Я так понимаю, что у тебя только Circular Array - он не делает обработку, а просто расставляет готовые элементы по кругу. Поэтому на картинке ничего нет.
Добавь обработку круга, или квадрата и увидишь.
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение going »

Nick писал(а):Добавь обработку круга, или квадрата и увидишь.
Если добавить ошибки сыпать начинает. Чего то я не то сотворил.
lcnc_feat2.png (2611 просмотров) <a class='original' href='./download/file.php?id=26188&mode=view' target=_blank>Загрузить оригинал (670.33 КБ)</a>
Источником у меня был https://github.com/cnc-club/linuxcnc-fe ... master.zip
там давненько ничего не обновлялось.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Nick »

хмм.... бум проверять смотреть....
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение going »

Получилось только с этим. Но странно. Меняешь угол, а меняется размер.
угол 20 (2565 просмотров) <a class='original' href='./download/file.php?id=26247&mode=view' target=_blank>Загрузить оригинал (122.05 КБ)</a>
угол 20
угол40 (2565 просмотров) <a class='original' href='./download/file.php?id=26248&mode=view' target=_blank>Загрузить оригинал (122 КБ)</a>
угол40
когда приводил в соответствие места проживания файлов в ../subroutines/catalogs/late.xml и ..../mill.xml и их реального расположения в папках,
переместил некоторые в другие места. Может это не корректно?

Попробую наоборот исправить в в ../subroutines/catalogs/late.xml и ..../mill.xml

У кого работает можете поделиться выводом команды diff -r linuxcnc-features-master/ linuxcnc-features-custom/ >file.txt ?
linuxcnc-features-master это вот здесь живёт https://github.com/cnc-club/linuxcnc-fe ... master.zip
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение going »

"Дело было не в бабине."
Результат:
Снимок-1.png (2540 просмотров) <a class='original' href='./download/file.php?id=26266&mode=view' target=_blank>Загрузить оригинал (74.73 КБ)</a>
только это рисует, а при запуске выдаёт:

Код: Выделить всё

Starting LinuxCNC...

(gladevcp:3587): libglade-WARNING **: Expected <glade-interface>.  Got <interface>.

(gladevcp:3587): libglade-WARNING **: did not finish in PARSER_FINISH state
**** GLADE VCP INFO:    Not a libglade project, trying to load as a GTK builder project
Xlib.protocol.request.QueryExtension
Xlib.protocol.request.QueryExtension
Внёс вот эти изменения:

Код: Выделить всё

Только в linuxcnc-features-custom/: features.ui
diff -U 2 -r linuxcnc-features-custom/subroutines/catalogs/mill.xml linuxcnc-features-master/subroutines/catalogs/mill.xml
--- linuxcnc-features-custom/subroutines/catalogs/mill.xml	2014-03-26 22:03:46.000000000 +0400
+++ linuxcnc-features-master/subroutines/catalogs/mill.xml	2013-12-12 11:19:01.000000000 +0400
@@ -2,6 +2,6 @@
 	<group name="Cutting" icon="images/rect.png">
 		<group name="Rectangles" icon="images/rect.png"> 
-			<sub name="Rectangle" icon="images/rect-corner.png" src="mill/rect.ini"/>
-			<sub name="Rectangle from Center" icon="images/center-rect.png" src="mill/rect-center.ini"/>
+			<sub name="Rectangle" icon="images/rect-corner.png" src="rect.ini"/>
+			<sub name="Rectangle from Center" icon="images/center-rect.png" src="rect-center.ini"/>
 		</group>
 	
@@ -22,5 +22,5 @@
 
 	<group name="Grouping" icon="images/array.png"> 
-		<sub name="Group" icon="images/group.png" src="group.ini"/>
+		<sub name="Group" icon="images/group.png" src="mill/group.ini"/>
 		<sub name="Array" icon="images/array.png" src="mill/array.ini"/>
 		<sub name="Circular array" icon="images/circular-array.png" src="mill/circular-array.ini"/>
@@ -31,4 +31,5 @@
 		<sub name="Tool" icon="images/mill-tool.png" src="set-tool.ini"/>
 		<sub name="Set cuting params" icon="images/tool.png" src="mill/set-cutting-params.ini"/>
+		<sub name="Measure tool length" icon="images/probe-tool-l.png" src="probe-tool-l.ini"/> 
 		<sub name="Measure tool diameter" icon="images/probe-tool-d.png" src="probe-tool-d.ini"/> 
 		<sub name="Set tool probing params" icon="images/tool-probe.png" src="set-tool-probing-params.ini"/> 
@@ -36,5 +37,5 @@
 
 	<group name="Gcode" icon="images/gcode.png">
-		<sub name="Custom Gcode" src="gcode/gcode.ini" icon="images/gcode.png"/>
+		<sub name="Custom Gcode" src="gcode.ini" icon="images/gcode.png"/>
 	</group>
 
@@ -43,5 +44,5 @@
 		<sub name="Probe hole" src="probe-hole.ini" icon="images/probe-hole.png"/>
 		<sub name="Probe cube" src="probe-cube.ini" icon="images/probe-cube.png"/>
-		<sub name="Set probing params" icon="images/probe.png" src="mill/set-probing-params.ini"/>
+		<sub name="Set probing params" icon="images/probe.png" src="set-probing-params.ini"/>
 	</group>
 </xml>
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение going »

Гуру!
Подскажите пожалуйста, что бы это значило.

Код: Выделить всё

Starting LinuxCNC...

(gladevcp:5550): libglade-WARNING **: Expected <glade-interface>.  Got <interface>.

(gladevcp:5550): libglade-WARNING **: did not finish in PARSER_FINISH state
**** GLADE VCP INFO:    Not a libglade project, trying to load as a GTK builder project
Xlib.protocol.request.QueryExtension
Xlib.protocol.request.QueryExtension
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.6/gladevcp/features.py", line 913, in refresh
    f.write(self.to_gcode())
  File "/usr/lib/pymodules/python2.6/gladevcp/features.py", line 895, in to_gcode
    g,d =  self.refresh_recursive(iter)
  File "/usr/lib/pymodules/python2.6/gladevcp/features.py", line 872, in refresh_recursive
    gcode_def += f.get_definitions()
  File "/usr/lib/pymodules/python2.6/gladevcp/features.py", line 257, in get_definitions
    s = self.process(self.attr["definitions"])
  File "/usr/lib/pymodules/python2.6/gladevcp/features.py", line 327, in process
    s = re.sub(r"(?i)(<eval>(.*?)</eval>)", eval_callback, s)
  File "/usr/lib/python2.6/re.py", line 151, in sub
    return _compile(pattern, 0).sub(repl, string, count)
  File "/usr/lib/pymodules/python2.6/gladevcp/features.py", line 290, in eval_callback
    return str( eval(m.group(2), {"self":self}) )
  File "<string>", line 1, in <module>
  File "/usr/lib/pymodules/python2.6/gladevcp/features.py", line 277, in include_once
    return self.include(src)
  File "/usr/lib/pymodules/python2.6/gladevcp/features.py", line 266, in include
    f = open(search_path(SUBROUTINES_PATH,src))
TypeError: coercing to Unicode: need string or buffer, NoneType found
/usr/bin/gladevcp:290: GtkWarning: GdkWindow 0x4e00029 unexpectedly destroyed
  gtk.main()
/home/leo/linuxcnc/configs/kkk/features.conf
**** GLADE VCP ERROR:    X Protocol Error: 3
Shutting down and cleaning up LinuxCNC...
Cleanup done
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC Features - набор мастеров для LinuxCNC

Сообщение Serg »

По ошибке свалилось. Вроде такая ошибка бывает если попытаться открыть файл (open()) с пустым именем.
Нужно помнить, что features пока ещё довольно сырая вещь.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

Вернуться в «LinuxCNC»