def parse_line(self, package, line): t = line.split() if t[0] == "Po": return elif t[0] == "Li": return elif t[0] == "Cd": return elif t[0] == "Sc": return elif t[0] == "AR": return elif t[0] == "Op": return elif t[0][:1] == "T": return elif t[0] == "DS": t = line.split() start = (self.dim(t[1]), self.dim(t[2])) end = (self.dim(t[3]), self.dim(t[4])) package.data.append(Line( start, end, self.dim(t[5]) )) package.expand_bbox(start) package.expand_bbox(end) #line.layer = t[6] elif t[0] == "$PAD": pad = Pad() package.data.append(pad) for line in self.f: t = line.split() if t[0] == "Sh": pad.xsize = self.dim(t[3]) pad.ysize = self.dim(t[4]) pad.rotation = float(t[7]) / 10.0 elif t[0] == "Dr": pass elif t[0] == "At": pass elif t[0] == "Ne": pass elif t[0] == "Po": pad.x = self.dim(t[1]) pad.y = self.dim(t[2]) elif t[0] == "$EndPAD": maxdim = max(pad.xsize, pad.ysize) / 2.0 package.expand_bbox((pad.x - maxdim, pad.y - maxdim)) package.expand_bbox((pad.x + maxdim, pad.y + maxdim)) return else: return