def test_save_pin_names_nets(self): p = Project() l = Layer("test", [1,1,1]) p.stackup.add_layer(l) d = DIPComponent(Point2(64, 54), 33.5, SIDE.Top, p, 12, 512, 640, 1111) d.refdes = "UFOO" d.partno = "BLAH" pads = d.get_pads() pads[0].pad_name = "NAME1" pads[1].pad_name = "NAME2" p.artwork.merge_component(d) p_new = self.__saverestore(p) self.assertEqual(len(p_new.artwork.components), 1) c = next(iter(p_new.artwork.components)) self.assertEqual(d.refdes, c.refdes) self.assertEqual(d.partno, c.partno) pads_new = c.get_pads() for p_old, p_new in zip(pads, pads_new): self.assertEqual(p_old.net.name, p_new.net.name) self.assertEqual(pads_new[0].pad_name, "NAME1") self.assertEqual(pads_new[1].pad_name, "NAME2")
def deserialize(self, msg): for i in msg.vias: v = Via(deserialize_point2(i.point), self.__project.scontext.get(i.viapairSid), i.r, self.__project.scontext.get(i.netSid) ) self.add_artwork(v) for i in msg.traces: t = Trace( deserialize_point2(i.p0), deserialize_point2(i.p1), i.thickness, self.__project.scontext.get(i.layerSid), self.__project.scontext.get(i.netSid) ) self.add_artwork(t) for i in msg.polygons: exterior = [deserialize_point2(j) for j in i.exterior] interiors = [[deserialize_point2(k) for k in j] for j in i.interiors] p = Polygon( self.__project.scontext.get(i.layerSid), exterior, interiors, self.__project.scontext.get(i.netSid) ) self.add_artwork(p) for i in msg.airwires: aw = Airwire( deserialize_point2(i.p0), deserialize_point2(i.p1), self.__project.scontext.get(i.p0LayerSid), self.__project.scontext.get(i.p1LayerSid), self.__project.scontext.get(i.netSid) ) self.add_artwork(aw) for i in msg.components: if i.which() == "dip": cmp = DIPComponent.deserialize(self.__project, i) elif i.which() == "smd4": cmp = SMD4Component.deserialize(self.__project, i) else: raise NotImplementedError() self.add_component(cmp)
def test_save_dip(self): p = Project() l = Layer("test", [1,1,1]) p.stackup.add_layer(l) d = DIPComponent(Point2(64, 54), 33.5, SIDE.Top, p, 12, 512, 640, 1111) d.refdes = "UFOO" p.artwork.merge_component(d) p_new = self.__saverestore(p) self.assertEqual(len(p_new.artwork.components), 1) c = next(iter(p_new.artwork.components)) self.assertIsInstance(c, DIPComponent) self.assertEqual(d.body_length(), c.body_length()) self.assertEqual(d.body_width(), c.body_width()) self.assertEqual(d.pin_count, c.pin_count) self.assertEqual(d.pin_space, c.pin_space) self.assertEqual(d.pin_width, c.pin_width) self.assertEqual(d.pad_size, c.pad_size) self.assertEqual(d.theta, c.theta) self.assertEqual(d.refdes, c.refdes)
def deserialize(self, msg: ser.Artwork) -> None: for i_via in msg.vias: v = Via(deserialize_point2(i_via.point), self.__project.scontext.get(i_via.viapairSid), i_via.r, self.__lookup_net_helper(i_via.netSid)) self.add_artwork(v) for i_trace in msg.traces: t = Trace(deserialize_point2(i_trace.p0), deserialize_point2(i_trace.p1), i_trace.thickness, self.__project.scontext.get(i_trace.layerSid), self.__lookup_net_helper(i_trace.netSid)) self.add_artwork(t) for i_poly in msg.polygons: exterior = [deserialize_point2(j) for j in i_poly.exterior] interiors = [[deserialize_point2(k) for k in j] for j in i_poly.interiors] p = Polygon(self.__project.scontext.get(i_poly.layerSid), exterior, interiors, self.__lookup_net_helper(i_poly.netSid)) self.add_artwork(p) for i_airwire in msg.airwires: aw = Airwire(deserialize_point2(i_airwire.p0), deserialize_point2(i_airwire.p1), self.__project.scontext.get(i_airwire.p0LayerSid), self.__project.scontext.get(i_airwire.p1LayerSid), self.__project.scontext.get(i_airwire.netSid)) self.add_artwork(aw) for i_cmp in msg.components: if i_cmp.which() == "dip": cmp = DIPComponent.deserialize(self.__project, i_cmp) elif i_cmp.which() == "sip": cmp = SIPComponent.deserialize(self.__project, i_cmp) elif i_cmp.which() == "smd4": cmp = SMD4Component.deserialize(self.__project, i_cmp) elif i_cmp.which() == "passive2": cmp = Passive2Component.deserialize(self.__project, i_cmp) else: raise NotImplementedError() self.add_component(cmp)
def deserialize(self, msg): for i in msg.vias: v = Via(deserialize_point2(i.point), self.__project.scontext.get(i.viapairSid), i.r, self.__project.scontext.get(i.netSid)) self.add_artwork(v) for i in msg.traces: t = Trace(deserialize_point2(i.p0), deserialize_point2(i.p1), i.thickness, self.__project.scontext.get(i.layerSid), self.__project.scontext.get(i.netSid)) self.add_artwork(t) for i in msg.polygons: exterior = [deserialize_point2(j) for j in i.exterior] interiors = [[deserialize_point2(k) for k in j] for j in i.interiors] p = Polygon(self.__project.scontext.get(i.layerSid), exterior, interiors, self.__project.scontext.get(i.netSid)) self.add_artwork(p) for i in msg.airwires: aw = Airwire(deserialize_point2(i.p0), deserialize_point2(i.p1), self.__project.scontext.get(i.p0LayerSid), self.__project.scontext.get(i.p1LayerSid), self.__project.scontext.get(i.netSid)) self.add_artwork(aw) for i in msg.components: if i.which() == "dip": cmp = DIPComponent.deserialize(self.__project, i) elif i.which() == "smd4": cmp = SMD4Component.deserialize(self.__project, i) else: raise NotImplementedError() self.add_component(cmp)
def DIP_getComponent(mdl, ctrl, flow): ctrl.flow.update_matrix() return DIPComponent(flow.center, flow.theta, ctrl.view.current_side(), ctrl.project, mdl.pin_count, mdl.pin_space, mdl.pin_width, mdl.pad_diameter)
def DIP_getComponent(mdl, ctrl, flow): return DIPComponent(flow.center, flow.theta, flow.side, ctrl.project, mdl.pin_count, mdl.pin_space, mdl.pin_width, mdl.pad_diameter)