Exemple #1
0
    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 = 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")
Exemple #2
0
    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 = 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")
Exemple #3
0
    def getWireInfo(self, wire, converter, noTranspose, offset):
        """
        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)
        curve = wire.get('curve')

        width = converter.convertUnit(wire.get('width'))
        layer = getLayerId(wire.get('layer'))

        if curve is None:
            cX = (x1 + x2) // 2
            cY = (y1 + y2) // 2
            radius = 0
            sAngle = 0
            eAngle = 0
        else:
            cX, cY, curve, radius, sAngle, eAngle = self.getWireArcInfo(
                wire, converter, noTranspose)

        if offset is not None:
            dX, dY = converter.convertCoordinate(offset[0], offset[1],
                                                 noTranspose)
            x1 += dX
            y1 += dY
            x2 += dX
            y2 += dY
            cX += dX
            cY += dY

        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)
        self.radius = str(radius)
        self.sAngle = str(sAngle)
        self.eAngle = str(eAngle)
Exemple #4
0
    def getWireInfo(self, wire, converter, noTranspose, offset):
        """
        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)
        curve = wire.get('curve')

        width = converter.convertUnit(wire.get('width'))
        layer = getLayerId(wire.get('layer'))

        if curve is None:
            cX = (x1 + x2) // 2
            cY = (y1 + y2) // 2
            radius = 0
            sAngle = 0
            eAngle = 0
        else:
            cX, cY, curve, radius, sAngle, eAngle = self.getWireArcInfo(wire, converter, noTranspose)

        if offset is not None:
            dX, dY = converter.convertCoordinate(offset[0], offset[1], noTranspose)
            x1 += dX
            y1 += dY
            x2 += dX
            y2 += dY
            cX += dX
            cY += dY

        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)
        self.radius = str(radius)
        self.sAngle = str(sAngle)
        self.eAngle = str(eAngle)
Exemple #5
0
    def __init__(self, node, converter, noTranspose=False, offset=None):

        self.val = node.text
        self.style = 'Normal'
        layer = getLayerId(node.get('layer'))
        x, y = converter.convertCoordinate(node.get('x'), node.get('y'), noTranspose)
        if offset is not None:
            dX, dY = converter.convertCoordinate(offset[0], offset[1], noTranspose)
            x += dX
            y += dY

        self.x = str(x)
        self.y = str(y)
        self.layer = str(layer)

        self.getSize(node, converter)
        self.getOrientation(node, converter)
Exemple #6
0
    def __init__(self, node, converter, noTranspose=False, offset=None):

        self.val = node.text
        self.style = 'Normal'
        layer = getLayerId(node.get('layer'))
        x, y = converter.convertCoordinate(node.get('x'), node.get('y'),
                                           noTranspose)
        if offset is not None:
            dX, dY = converter.convertCoordinate(offset[0], offset[1],
                                                 noTranspose)
            x += dX
            y += dY

        self.x = str(x)
        self.y = str(y)
        self.layer = str(layer)

        self.getSize(node, converter)
        self.getOrientation(node, converter)
Exemple #7
0
    def __init__(self, node, converter, noTranspose=False, offset=None):
        radius = converter.convertUnit(node.get('radius'))
        cX, cY = converter.convertCoordinate(node.get('x'), node.get('y'), noTranspose)

        if offset is not None:
            dX, dY = converter.convertCoordinate(offset[0], offset[1], noTranspose)
            cX += dX
            cY += dY

        width = converter.convertUnit(node.get('width'))
        layer = 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)
Exemple #8
0
    def __init__(self, node, converter, noTranspose=False, offset=None):
        radius = converter.convertUnit(node.get('radius'))
        cX, cY = converter.convertCoordinate(node.get('x'), node.get('y'),
                                             noTranspose)

        if offset is not None:
            dX, dY = converter.convertCoordinate(offset[0], offset[1],
                                                 noTranspose)
            cX += dX
            cY += dY

        width = converter.convertUnit(node.get('width'))
        layer = 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)