9.1.1.5.1. Ast¶
Module to implement an AST for RS-274 G-code.
All classes are clonable.
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Program
(machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.MachineMixin
Class to implement a G-code program
Usage:
program = Program() program += line # Array interface for line in programs: print(line) str(program) program2 = program.clone()
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Line
(deleted=False, line_number=None, comment=None, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.MachineMixin
Class to implement a G-code line
Usage:
line = Line(deleted=False, line_number=1, comment='a comment') line.deleted = True print(line.deleted) # same apply for line_number and comment # Is line not deleted ? bool(line) # Push some items # Note: order doesn't matter, see RS-274 for details line += Word('G', 0) line += Comment('move') line += Word('X', 10) line += Comment('Y value') line += Word('Y', 20.) line += ParameterSetting('1', 1.2) # using expression, AST way line += Word('Z', Addition(30, Multiply(Parameter(100), Cosine(30)))) # string way line += Word('Z', '[30 + [#100 * cos[30]]]') # Array interface for item in line: print(item) str(line) print(line.ansi_str()) # use ANSI colors, see Line.ANSI_... attributes a_line = line.clone()
Values can be passed as:
- int or float,
- AST for expression,
- any object that “str” evaluate to a valid G-code expression.
As a shortcut, a G/M-code operation can be passed as string:
line += 'G0'
Expression can be evaluated using
float(obj.value)
, excepted when we must access a parameter value.-
ANSI_COMMENT
= functools.partial(<function color>, fg='green')¶
-
ANSI_DELETED
= functools.partial(<function color>, fg='red')¶
-
ANSI_G
= functools.partial(<function color>, fg='red')¶
-
ANSI_LINE_NUMBER
= functools.partial(<function color>, fg='blue')¶
-
ANSI_SETTING
= functools.partial(<function color>, fg='blue')¶
-
ANSI_VALUE
= functools.partial(<function color>, fg='black')¶
-
ANSI_X
= functools.partial(<function color>, fg='blue')¶
-
comment
¶
-
deleted
¶
-
line_number
¶
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Comment
(text, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.LineItem
Class to implement comment
-
text
¶
-
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Word
(letter, value, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.LineItem
Class to implement word
-
LETTERS
= ('A', 'B', 'C', 'D', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'P', 'Q', 'R', 'S', 'T', 'X', 'Y', 'Z')¶
-
WORD_RE
= re.compile('(G|M)(\\d+)')¶
-
execution_order
¶
-
gcode_info
¶
-
is_axis_gcode
¶
-
is_gm_gcode
¶
-
is_valid_gcode
¶
-
letter
¶
-
meaning
¶
-
modal_group
¶
-
value
¶
-
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
ParameterMixin
(parameter)[source]¶ Bases:
object
Mixin for parameter
-
parameter
¶
-
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
ParameterSetting
(parameter, value, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.LineItem
,PythonicGcodeMachine.Gcode.Rs274.Ast.ParameterMixin
Class to implement parameter setting
-
value
¶
-
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Parameter
(parameter, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.RealValue
,PythonicGcodeMachine.Gcode.Rs274.Ast.ParameterMixin
Class to implement parameter
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
AbsoluteValue
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
ArcCosine
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
ArcSine
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
ArcTangent
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Cosine
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
ERaisedTo
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
FixDown
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
FixUp
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
NaturalLogOf
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Round
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Sine
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
SquareRoot
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Tangent
(arg, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.UnaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Power
(arg1, arg2, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.BinaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
DividedBy
(arg1, arg2, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.BinaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Modulo
(arg1, arg2, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.BinaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Multiply
(arg1, arg2, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.BinaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
And
(arg1, arg2, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.BinaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
ExclusiveOr
(arg1, arg2, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.BinaryOperation
-
class
PythonicGcodeMachine.Gcode.Rs274.Ast.
Subtraction
(arg1, arg2, machine=None)[source]¶ Bases:
PythonicGcodeMachine.Gcode.Rs274.Ast.BinaryOperation