def make_instance(self, cpt_inst, symattr, bodyindex): """ Make an eaglexml part for an openjson component instance and symbol attribute. """ cpt = self.design.components.components[cpt_inst.library_id] symbol = cpt.symbols[cpt_inst.symbol_index] body = symbol.bodies[bodyindex] inst = G.instance() inst.part = cpt_inst.instance_id inst.gate = self.body2gate[body] inst.x = self.make_length(symattr.x) inst.y = self.make_length(symattr.y) inst.rot = self.make_angle(symattr.rotation) layer = self.ensure_layer(body, 'symbol') for ann in symattr.annotations: inst.attribute.append( G.attribute(name=ann.value, value=ann.value, layer=layer.number, size="1.27", x=self.make_length(ann.x + symattr.x), y=self.make_length(ann.y + symattr.y), rot=self.make_angle(ann.rotation), display='value' if ann.visible else 'off')) return inst
def make_instance(self, cpt_inst, symattr, bodyindex): """ Make an eaglexml part for an openjson component instance and symbol attribute. """ cpt = self.design.components.components[cpt_inst.library_id] symbol = cpt.symbols[cpt_inst.symbol_index] body = symbol.bodies[bodyindex] inst = G.instance() inst.part = cpt_inst.instance_id inst.gate = self.body2gate[body] inst.x = self.make_length(symattr.x) inst.y = self.make_length(symattr.y) inst.rot = self.make_angle(symattr.rotation) return inst