Skip to content

Commit d6b7294

Browse files
committed
Add unique references for holes added by KiKit
1 parent f3ec40f commit d6b7294

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

kikit/panelize.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,7 @@ def __init__(self, panelFilename):
467467
self.vCutLayer = Layer.Cmts_User
468468
self.vCutClearance = 0
469469
self.copperLayerCount = None
470+
self.renderedMousebiteCounter = 0
470471
self.zonesToRefill = pcbnew.ZONES()
471472
self.pageSize: Union[None, str, Tuple[int, int]] = None
472473

@@ -1471,6 +1472,7 @@ def makeMouseBites(self, cuts, diameter, spacing, offset=fromMm(0.25),
14711472
offsetCuts.append(offsetCut)
14721473

14731474
for cut in listGeometries(shapely.ops.unary_union(offsetCuts).simplify(SHP_EPSILON)):
1475+
self.renderedMousebiteCounter += 1
14741476
length = cut.length
14751477
count = int(length / spacing) + 1
14761478
for i in range(count):
@@ -1479,7 +1481,8 @@ def makeMouseBites(self, cuts, diameter, spacing, offset=fromMm(0.25),
14791481
else:
14801482
hole = cut.interpolate( i * length / (count - 1) )
14811483
if bloatedSubstrate.intersects(hole):
1482-
self.addNPTHole(toKiCADPoint((hole.x, hole.y)), diameter)
1484+
self.addNPTHole(toKiCADPoint((hole.x, hole.y)), diameter,
1485+
ref=f"KiKit_MB_{self.renderedMousebiteCounter}_{i+1}")
14831486

14841487
def makeCutsToLayer(self, cuts, layer=Layer.Cmts_User, prolongation=fromMm(0)):
14851488
"""
@@ -1501,7 +1504,8 @@ def makeCutsToLayer(self, cuts, layer=Layer.Cmts_User, prolongation=fromMm(0)):
15011504
segment.SetWidth(fromMm(0.3))
15021505
self.board.Add(segment)
15031506

1504-
def addNPTHole(self, position: VECTOR2I, diameter: KiLength, paste: bool=False) -> None:
1507+
def addNPTHole(self, position: VECTOR2I, diameter: KiLength,
1508+
paste: bool=False, ref: Optional[str]=None) -> None:
15051509
"""
15061510
Add a drilled non-plated hole to the position (`VECTOR2I`) with given
15071511
diameter. The paste option allows to place the hole on the paste layers.
@@ -1516,6 +1520,8 @@ def addNPTHole(self, position: VECTOR2I, diameter: KiLength, paste: bool=False)
15161520
layerSet.AddLayer(Layer.F_Paste)
15171521
layerSet.AddLayer(Layer.B_Paste)
15181522
pad.SetLayerSet(layerSet)
1523+
if ref is not None:
1524+
footprint.SetReference(ref)
15191525
self.board.Add(footprint)
15201526

15211527
def addFiducial(self, position: VECTOR2I, copperDiameter: KiLength,
@@ -1581,8 +1587,8 @@ def addCornerTooling(self, holeCount, horizontalOffset, verticalOffset,
15811587
15821588
The offsets are measured from the outer edges of the substrate.
15831589
"""
1584-
for pos in self.panelCorners(horizontalOffset, verticalOffset)[:holeCount]:
1585-
self.addNPTHole(pos, diameter, paste)
1590+
for i, pos in enumerate(self.panelCorners(horizontalOffset, verticalOffset)[:holeCount]):
1591+
self.addNPTHole(pos, diameter, paste, ref=f"KiKit_TO_{i+1}")
15861592

15871593
def addMillFillets(self, millRadius):
15881594
"""

0 commit comments

Comments
 (0)