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