From 0c5670c4fff3ac16a94e87ed8ef50505d775ad44 Mon Sep 17 00:00:00 2001 From: Peter Boin Date: Tue, 11 Jul 2017 11:06:32 +1000 Subject: [PATCH] gcode parameter additions / change by attribute --- pygcode/gcodes.py | 10 ++++++++++ pygcode/words.py | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/pygcode/gcodes.py b/pygcode/gcodes.py index f10186a..9a4f5ce 100644 --- a/pygcode/gcodes.py +++ b/pygcode/gcodes.py @@ -253,6 +253,16 @@ class GCode(object): key=key )) + def __setattr__(self, key, value): + if key in self.param_letters: + if key in self.params: + self.params[key].value = value + else: + self.add_parameter(Word(key, value)) + + else: + self.__dict__[key] = value + @property def description(self): return self.__doc__ diff --git a/pygcode/words.py b/pygcode/words.py index 776859f..df0d6b9 100644 --- a/pygcode/words.py +++ b/pygcode/words.py @@ -275,6 +275,11 @@ class Word(object): return self._value_class(self._value_str) return self._value + @value.setter + def value(self, new_value): + self._value = self._value_class(new_value) + self._value_str = None + # Order def __lt__(self, other): return self.letter < other.letter