def __init__(self,node,converter,node_name,netCode='0',noTranspose=False): self.vertexs = node.findall('vertex') self.width = converter.convertUnit(node.get('width')) self.layer = LayerIds.getLayerId(node.get('layer')) isolate=node.get('isolate') if isolate is not None: self.isolate = converter.convertUnit(isolate) else: self.isolate=0 self.corners = len(self.vertexs) self.cornerstr = "" self.name = node_name for _i in range(len(self.vertexs)): x=self.vertexs[_i].get('x') y=self.vertexs[_i].get('y') x,y=converter.convertCoordinate(x,y,noTranspose) string = "ZCorner " + str(x) + " " + str(y); if _i == self.corners-1: string += " 1\n" else: string += " 0\n" self.cornerstr+=string self.netCode=netCode if netCode=='0': print("Warning: track with netCode 0")
def getWireInfo(self,wire,converter,noTranspose=False): """ Converts a wire dictionary node from Eagle to a usable form for kicad It then returns the dictionary of the wires info Params: wire: the wire's node from myDict noTranspose: if true, coordinates will not be transposed to screens center Returns: dict: the wires info in a kicad usable dictionary form Keys = x1,x2,y1,y2,layer,curve,width """ x1,y1=converter.convertCoordinate(wire.get('x1'),wire.get('y1'),noTranspose) x2,y2=converter.convertCoordinate(wire.get('x2'),wire.get('y2'),noTranspose) width=converter.convertUnit(wire.get('width')) layer=LayerIds.getLayerId(wire.get('layer')) curve=wire.get('curve') if curve==None: cX=(x1+x2)//2 cY=(y1+y2)//2 else: cX,cY,curve=self.getWireArcInfo(wire,converter,noTranspose) self.x1=str(x1) self.y1=str(y1) self.x2=str(x2) self.y2=str(y2) self.cX=str(cX) self.cY=str(cY) self.width=str(width) self.layer=str(layer) self.curve=str(curve)
def __init__(self,node,converter,noTranspose=False): self.val=node.text self.style='Normal' layer=LayerIds.getLayerId(node.get('layer')) x,y=converter.convertCoordinate(node.get('x'),node.get('y'),noTranspose) self.x=str(x) self.y=str(y) self.layer=str(layer) self.getSize(node,converter) self.getOrientation(node,converter)
def __init__(self,node,converter,noTranspose=False): radius=converter.convertUnit(node.get('radius')) cX,cY=converter.convertCoordinate(node.get('x'),node.get('y'),noTranspose) width=converter.convertUnit(node.get('width')) layer=LayerIds.getLayerId((node.get('layer'))) pX=int(cX)+int(radius) pY=cY self.cX=str(cX) self.cY=str(cY) self.pX=str(pX) self.pY=str(pY) self.layer=layer self.width=str(width) self.radius=str(radius)