Skip to content

Commit

Permalink
Handle boards with small spacing well in stencil
Browse files Browse the repository at this point in the history
  • Loading branch information
yaqwsx committed May 13, 2024
1 parent a7873c2 commit f95fa41
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions kikit/stencil.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,11 +229,31 @@ def makeRegister(board, jigFrameSize, jigThickness, pcbThickness,
body = solid.linear_extrude(height=top, convexity=10)(solid.polygon(
outerRing))

innerRing = createOffsetPolygon(board, - innerBorder).exterior.coords
import shapely.geometry as sg
import shapely.ops as so
import matplotlib
matplotlib.use('tkagg')
import matplotlib.pyplot as plt

new_shape = createOffsetPolygon(board, - innerBorder)
fig, axs = plt.subplots()
axs.set_aspect('equal', 'datalim')

for geom in new_shape.geoms:
xs, ys = geom.exterior.xy
axs.fill(xs, ys, alpha=0.5, fc='r', ec='none')

plt.show()

innerRings = [x.exterior.coords for x in listGeometries(createOffsetPolygon(board, - innerBorder))]
if topSide:
innerRing = mirrorX(innerRing, centerpoint[0])
innerRings = [mirrorX(innerRing, centerpoint[0]) for innerRing in innerRings]

innerCutout = solid.utils.down(jigThickness)(
solid.linear_extrude(height=3 * jigThickness, convexity=10)(solid.polygon(innerRing)))
solid.linear_extrude(height=3 * jigThickness, convexity=10)(solid.polygon(innerRings[0])))
for innerRing in innerRings[1:]:
innerCutout = innerCutout + solid.utils.down(jigThickness)(
solid.linear_extrude(height=3 * jigThickness, convexity=10)(solid.polygon(innerRing)))
registerRing = createOffsetPolygon(board, tolerance).exterior.coords
if topSide:
registerRing = mirrorX(registerRing, centerpoint[0])
Expand Down

0 comments on commit f95fa41

Please sign in to comment.