def copperFillNonBoardAreas(self): """ Fill top and bottom layers with copper on unused areas of the panel (frame, rails and tabs) """ if not self.boardSubstrate.isSinglePiece(): raise RuntimeError( "The substrate has to be a single piece to fill unused areas") increaseZonePriorities(self.board) zoneContainer = pcbnew.ZONE(self.board) boundary = self.boardSubstrate.exterior().boundary zoneContainer.Outline().AddOutline(linestringToKicad(boundary)) for substrate in self.substrates: boundary = substrate.exterior().boundary zoneContainer.Outline().AddHole(linestringToKicad(boundary)) zoneContainer.SetPriority(0) zoneContainer.SetLayer(Layer.F_Cu) self.board.Add(zoneContainer) self.zonesToRefill.append(zoneContainer) zoneContainer = zoneContainer.Duplicate() zoneContainer.SetLayer(Layer.B_Cu) self.board.Add(zoneContainer) self.zonesToRefill.append(zoneContainer)
def shapelyToSHAPE_POLY_SET(polygon): p = pcbnew.SHAPE_POLY_SET() print(polygon.exterior) p.AddOutline(linestringToKicad(polygon.exterior)) return p