def plot_JDF(cls): xmin = minx([]) xmax = maxx([]) ymin = miny([]) ymax = maxy([]) cls.jdf.get_member("xy_offsets").reset(cls.jdf) xy_off = cls.jdf.xy_offsets log_debug(2) for p in cls.jdf.patterns: a = cls.agent_dict[p.name] reset_properties(a) #fix updating of properties reset_property(a, "polylist") log_debug(a) verts = [] for chip in xy_off.get(p.name, []): sPoly(a, x_off=chip[0] * 1.0e-6, y_off=chip[1] * 1.0e-6, vs=verts) log_debug(a) cls.plot.set_data(a.name, verts, a.color) log_debug(a) xmin = min([minx(verts), xmin]) xmax = max([maxx(verts), xmax]) ymin = min([miny(verts), ymin]) ymax = max([maxy(verts), ymax]) log_debug(1) cls.plot.set_xlim(xmin, xmax) cls.plot.set_ylim(ymin, ymax) cls.plot.draw()
def plot_JDF(cls): xmin=minx([]) xmax=maxx([]) ymin=miny([]) ymax=maxy([]) cls.jdf.get_member("xy_offsets").reset(cls.jdf) xy_off=cls.jdf.xy_offsets log_debug(2) for p in cls.jdf.patterns: a=cls.agent_dict[p.name] reset_properties(a) #fix updating of properties reset_property(a, "polylist") log_debug(a) verts=[] for chip in xy_off.get(p.name, []): sPoly(a, x_off=chip[0]*1.0e-6, y_off=chip[1]*1.0e-6, vs=verts) log_debug(a) pf=cls.plot.plot_dict.get(a.name+"_plot", None) if pf is None: cls.plot.polygon(verts, color=a.color, plot_name=a.name+"_plot") else: pf.alter_xy(verts, color=a.color) log_debug(a) xmin=min([minx(verts), xmin]) xmax=max([maxx(verts), xmax]) ymin=min([miny(verts), ymin]) ymax=max([maxy(verts), ymax]) log_debug(1) cls.plot.set_xlim(xmin, xmax) cls.plot.set_ylim(ymin, ymax) cls.plot.draw()
def save_JDF_DXF(self): self.jdf.get_member("xy_offsets").reset(self.jdf) xy_off=self.jdf.xy_offsets verts=[] for p in self.jdf.patterns: a=self.agent_dict[p.name] #[agent for agent in self.agents if agent.name==p.name][0] for chip in xy_off.get(p.name, []): sPoly(a, x_off=chip[0]*1.0e-6, y_off=chip[1]*1.0e-6, vs=verts) save_dxf(verts, color="green", layer="PADS", file_path="marialasertest.dxf", write_mode="w")
def save_JDF_DXF(cls): cls.jdf.get_member("xy_offsets").reset(cls.jdf) xy_off = cls.jdf.xy_offsets verts = [] for p in cls.jdf.patterns: a = cls.agent_dict[ p. name] #[agent for agent in self.agents if agent.name==p.name][0] for chip in xy_off.get(p.name, []): sPoly(a, x_off=chip[0] * 1.0e-6, y_off=chip[1] * 1.0e-6, vs=verts) save_dxf(verts, color="green", layer="PADS", file_path="marialasertest.dxf", write_mode="w")
def plot_JDF(self): xmin=minx([]) xmax=maxx([]) ymin=miny([]) ymax=maxy([]) self.jdf.get_member("xy_offsets").reset(self.jdf) xy_off=self.jdf.xy_offsets for p in self.jdf.patterns: a=self.agent_dict[p.name] verts=[] for chip in xy_off.get(p.name, []): sPoly(a, x_off=chip[0]*1.0e-6, y_off=chip[1]*1.0e-6, vs=verts) self.plot.set_data(a.name, verts, a.color) xmin=min([minx(verts), xmin]) xmax=max([maxx(verts), xmax]) ymin=min([miny(verts), ymin]) ymax=max([maxy(verts), ymax]) self.plot.set_xlim(xmin, xmax) self.plot.set_ylim(ymin, ymax) self.plot.draw()
def plot_JDF(self): xmin = minx([]) xmax = maxx([]) ymin = miny([]) ymax = maxy([]) self.jdf.get_member("xy_offsets").reset(self.jdf) xy_off = self.jdf.xy_offsets for p in self.jdf.patterns: a = self.agent_dict[p.name] verts = [] for chip in xy_off.get(p.name, []): sPoly(a, x_off=chip[0] * 1.0e-6, y_off=chip[1] * 1.0e-6, vs=verts) self.plot.set_data(a.name, verts, a.color) xmin = min([minx(verts), xmin]) xmax = max([maxx(verts), xmax]) ymin = min([miny(verts), ymin]) ymax = max([maxy(verts), ymax]) self.plot.set_xlim(xmin, xmax) self.plot.set_ylim(ymin, ymax) self.plot.draw()
def _s_wafer_aligner(self): vs=sP([(-self.flat_length/2.0, self.linewidth/2.0), (-self.flat_length/2.0, 3.0*self.linewidth/2.0), (self.flat_length/2.0, 3.0*self.linewidth/2.0), (self.flat_length/2.0, self.linewidth/2.0)]) sP([(-self.flat_length/2.0, -self.linewidth/2.0), (-self.flat_length/2.0, -3.0*self.linewidth/2.0), (self.flat_length/2.0, -3.0*self.linewidth/2.0), (self.flat_length/2.0, -self.linewidth/2.0)], vs=vs) reset_property(self, "_s_marker") for n in range(self.num_marker): sTransform(self._s_marker, (n-self.num_marker/2)*self.flat_length/self.num_marker, vs=vs) sTransform(self._s_marker, -self.flat_length/2.0-self.linewidth/2.0, theta=90.0, vs=vs) sTransform(self._s_marker, self.flat_length/2.0+self.linewidth/2.0, theta=90.0, vs=vs) sP([(-self.flat_length/2.0-4.0*self.linewidth, -3.0*self.linewidth/2.0), (-self.flat_length/2.0-4.0*self.linewidth, 3.0*self.linewidth/2.0), (-self.flat_length/2.0-self.linewidth, 3.0*self.linewidth/2.0), (-self.flat_length/2.0-self.linewidth, -3.0*self.linewidth/2.0)], vs=vs) sP([(self.flat_length/2.0+4.0*self.linewidth, -3.0*self.linewidth/2.0), (self.flat_length/2.0+4.0*self.linewidth, 3.0*self.linewidth/2.0), (self.flat_length/2.0+self.linewidth, 3.0*self.linewidth/2.0), (self.flat_length/2.0+self.linewidth, -3.0*self.linewidth/2.0)], vs=vs) sPoly(self.width_checker, y_off=3.0*self.linewidth/2.0+self.width_checker.height/2.0, vs=vs) return sPoly(self.width_checker, y_off=-3.0*self.linewidth/2.0-self.width_checker.height/2.0, vs=vs)
def Poly(self, obj, x_off=0.0, y_off=0.0, theta=0.0, orient="TL"): """adds polygons to verts using an EBL_Polygons object as the source""" sPoly(obj, x_off, y_off, theta, orient, vs=self.verts)