[Schematic files] Support for `exclude_from_sim` in texts

This commit is contained in:
Salvador E. Tropea 2023-04-13 11:22:24 -03:00
parent 4050936875
commit e76a3b4e25
1 changed files with 21 additions and 8 deletions

View File

@ -1275,18 +1275,31 @@ class Text(object):
def parse(items, name):
text = Text()
text.name = name
text.exclude_from_sim = None
text.text = _check_str(items, 1, name)
text.pos_x, text.pos_y, text.ang = _get_at(items, 2, name)
text.effects = _get_effects(items, 3, name)
text.uuid = _get_uuid(items, 4, name)
for c, i in enumerate(items[2:]):
i_type = _check_is_symbol_list(i)
if i_type == 'at':
logger.error(i)
text.pos_x, text.pos_y, text.ang = _get_at(items, c+2, name)
elif i_type == 'effects':
text.effects = _get_effects(items, c+2, name)
elif i_type == 'uuid':
text.uuid = _get_uuid(items, c+2, name)
elif i_type == 'exclude_from_sim':
# KiCad 7.99
text.exclude_from_sim = _get_yes_no(i, 1, i_type)
else:
raise SchError('Unknown symbol attribute `{}`'.format(i))
return text
def write(self):
data = [self.text,
_symbol('at', [self.pos_x, self.pos_y, self.ang]), Sep(),
self.effects.write(), Sep(),
_symbol('uuid', [Symbol(self.uuid)]), Sep()]
data = [self.text]
if self.exclude_from_sim is not None:
data.append(_symbol('exclude_from_sim', [Symbol(NO_YES[self.exclude_from_sim])]))
data.extend([_symbol('at', [self.pos_x, self.pos_y, self.ang]), Sep(),
self.effects.write(), Sep(),
_symbol('uuid', [Symbol(self.uuid)]), Sep()])
return _symbol(self.name, data)