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