http://cnc-club.ru/wiki/index.php/LinuxCNC_Features
Текущий статус разработки
- Дописать обработки.
- Отловить баги
.
Код: Выделить всё
G01 X10 Y10
;py,print "ha-ha-ha"
Код: Выделить всё
#<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 писал(а):aaleksander, давай обсуждать интерфейс общения![]()
Или у тебя можно просто импортнуть библиотеку, и потом писать на питоне?
Код: Выделить всё
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)
Код: Выделить всё
#<m>=;py, 3 + 2
;py,import interpreter
;py,print "m=",interpreter.this.params["m"]
Напрямую это не работает...aaleksander писал(а):#<m>=;py, 3 + 2
Код: Выделить всё
;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
Если добавить ошибки сыпать начинает. Чего то я не то сотворил. Источником у меня был https://github.com/cnc-club/linuxcnc-fe ... master.zipNick писал(а):Добавь обработку круга, или квадрата и увидишь.
Код: Выделить всё
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>Код: Выделить всё
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