def tightgrid(input, output, space, gridsize, panelsize, tabwidth, tabheight, vcuts, mousebites, radius, sourcearea, vcutcurves, htabs, vtabs, rotation, slotwidth): """ Create a regular panel placed in a frame by milling a slot around the boards' perimeters. """ try: panel = Panel() rows, cols = gridsize if sourcearea[0]: sourcearea = wxRectMM(*sourcearea) else: sourcearea = None w, h = panelsize if 2 * radius > 1.1 * slotwidth: raise RuntimeError("The slot is too narrow for given radius (it has to be at least 10% larger") psize, cuts = panel.makeTightGrid(input, rows, cols, wxPointMM(50, 50), verSpace=fromMm(space), horSpace=fromMm(space), slotWidth=fromMm(slotwidth), width=fromMm(w), height=fromMm(h), sourceArea=sourcearea, tolerance=fromMm(5), verTabWidth=fromMm(tabwidth), horTabWidth=fromMm(tabheight), verTabCount=htabs, horTabCount=vtabs, rotation=fromDegrees(rotation)) if vcuts: panel.makeVCuts(cuts, vcutcurves) if mousebites[0]: drill, spacing, offset = mousebites panel.makeMouseBites(cuts, fromMm(drill), fromMm(spacing), fromMm(offset)) panel.addMillFillets(fromMm(radius)) panel.save(output) except Exception as e: sys.stderr.write("An error occurred: " + str(e) + "\n") sys.stderr.write("No output files produced\n") sys.exit(1)
def tightgrid(input, output, space, gridsize, panelsize, tabwidth, tabheight, vcuts, mousebites, radius, sourcearea, vcutcurves, htabs, vtabs, rotation, slotwidth, tolerance, renamenet, renameref, tabsfrom, copperfill, fiducials, tooling): """ Create a regular panel placed in a frame by milling a slot around the boards' perimeters. """ # Hide the import in the function to make KiKit start faster from kikit.panelize import Panel, fromMm, wxPointMM, wxRectMM, fromDegrees import sys try: panel = Panel() panel.inheritDesignSettings(input) panel.inheritProperties(input) rows, cols = gridsize if rows == -1 or cols == -1: raise RuntimeError("Gridsize is mandatory. Please specify the --gridsize option.") if sourcearea[0]: sourcearea = wxRectMM(*sourcearea) else: sourcearea = None w, h = panelsize validateSpaceRadius(space, radius) if 2 * radius > 1.1 * slotwidth: raise RuntimeError("The slot is too narrow for given radius (it has to be at least 10% larger") tolerance = fromMm(tolerance) psize, cuts = panel.makeTightGrid(input, rows, cols, wxPointMM(50, 50), verSpace=fromMm(space), horSpace=fromMm(space), slotWidth=fromMm(slotwidth), width=fromMm(w), height=fromMm(h), sourceArea=sourcearea, tolerance=tolerance, verTabWidth=fromMm(tabwidth), horTabWidth=fromMm(tabheight), verTabCount=htabs, horTabCount=vtabs, rotation=fromDegrees(rotation), netRenamePattern=renamenet, refRenamePattern=renameref) tabs = [] for layer, width in tabsfrom: tab, cut = panel.layerToTabs(layer, fromMm(width)) cuts += cut tabs += tab panel.appendSubstrate(tabs) panel.addMillFillets(fromMm(radius)) if vcuts: panel.makeVCuts(cuts, vcutcurves) if fiducials[0] is not None: hOffset, vOffset, copperDia, openingDia = tuple(map(fromMm, fiducials)) panel.addFiducials(hOffset, vOffset, copperDia, openingDia) if tooling[0] is not None: hOffset, vOffset, dia = tuple(map(fromMm, tooling)) panel.addTooling(hOffset, vOffset, dia) if mousebites[0]: drill, spacing, offset = mousebites panel.makeMouseBites(cuts, fromMm(drill), fromMm(spacing), fromMm(offset)) if copperfill: panel.copperFillNonBoardAreas() panel.save(output) except Exception as e: sys.stderr.write("An error occurred: " + str(e) + "\n") sys.stderr.write("No output files produced\n") sys.exit(1)
def tightgrid(input, output, space, gridsize, panelsize, tabwidth, tabheight, vcuts, mousebites, radius, sourcearea, vcutcurves, htabs, vtabs, rotation, slotwidth, tolerance, renamenet, renameref, tabsfrom): """ Create a regular panel placed in a frame by milling a slot around the boards' perimeters. """ try: panel = Panel() rows, cols = gridsize if rows == -1 or cols == -1: raise RuntimeError("Gridsize is mandatory. Please specify the --gridsize option.") if sourcearea[0]: sourcearea = wxRectMM(*sourcearea) else: sourcearea = None w, h = panelsize validateSpaceRadius(space, radius) if 2 * radius > 1.1 * slotwidth: raise RuntimeError("The slot is too narrow for given radius (it has to be at least 10% larger") tolerance = fromMm(tolerance) psize, cuts = panel.makeTightGrid(input, rows, cols, wxPointMM(50, 50), verSpace=fromMm(space), horSpace=fromMm(space), slotWidth=fromMm(slotwidth), width=fromMm(w), height=fromMm(h), sourceArea=sourcearea, tolerance=tolerance, verTabWidth=fromMm(tabwidth), horTabWidth=fromMm(tabheight), verTabCount=htabs, horTabCount=vtabs, rotation=fromDegrees(rotation), netRenamePattern=renamenet, refRenamePattern=renameref) tabs = [] for layer, width in tabsfrom: tab, cut = panel.layerToTabs(layer, fromMm(width)) cuts += cut tabs += tab panel.appendSubstrate(tabs) panel.addMillFillets(fromMm(radius)) if vcuts: panel.makeVCuts(cuts, vcutcurves) if mousebites[0]: drill, spacing, offset = mousebites panel.makeMouseBites(cuts, fromMm(drill), fromMm(spacing), fromMm(offset)) panel.save(output) except Exception as e: sys.stderr.write("An error occurred: " + str(e) + "\n") sys.stderr.write("No output files produced\n") sys.exit(1)