summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjaseg <git@jaseg.de>2024-07-08 18:08:07 +0200
committerjaseg <git@jaseg.de>2024-07-08 18:10:57 +0200
commit1d5f4c819356ce75517a9a7332326fb1b267b6a5 (patch)
treeadbfaea3a29e067fe05596d6077e82f326dfad95
parent30878adfb1bdc892b69751e2cc12b286c9716bd0 (diff)
downloadgerbonara-1d5f4c819356ce75517a9a7332326fb1b267b6a5.tar.gz
gerbonara-1d5f4c819356ce75517a9a7332326fb1b267b6a5.tar.bz2
gerbonara-1d5f4c819356ce75517a9a7332326fb1b267b6a5.zip
protoboard: Fix bug with empty points in breadboard rendering
-rw-r--r--gerbonara/cad/protoboard.py42
1 files changed, 22 insertions, 20 deletions
diff --git a/gerbonara/cad/protoboard.py b/gerbonara/cad/protoboard.py
index a02d20a..da96fb8 100644
--- a/gerbonara/cad/protoboard.py
+++ b/gerbonara/cad/protoboard.py
@@ -425,28 +425,30 @@ class BreadboardArea:
label = f'{j+1}'
if last_e == 'R':
- tx, ty = points[0]
-
- if self.horizontal:
- ty -= self.pitch_x/2
- yield Text(tx, ty, label, self.font_size, self.font_stroke, 'center', 'top', unit=self.unit)
- yield Text(tx, ty, label, self.font_size, self.font_stroke, 'center', 'top', unit=self.unit, flip=True)
- else:
- tx -= self.pitch_x/2
- yield Text(tx, ty, label, self.font_size, self.font_stroke, 'right', 'middle', unit=self.unit)
- yield Text(tx, ty, label, self.font_size, self.font_stroke, 'right', 'middle', unit=self.unit, flip=True)
+ if points:
+ tx, ty = points[0]
+
+ if self.horizontal:
+ ty -= self.pitch_x/2
+ yield Text(tx, ty, label, self.font_size, self.font_stroke, 'center', 'top', unit=self.unit)
+ yield Text(tx, ty, label, self.font_size, self.font_stroke, 'center', 'top', unit=self.unit, flip=True)
+ else:
+ tx -= self.pitch_x/2
+ yield Text(tx, ty, label, self.font_size, self.font_stroke, 'right', 'middle', unit=self.unit)
+ yield Text(tx, ty, label, self.font_size, self.font_stroke, 'right', 'middle', unit=self.unit, flip=True)
else:
- tx, ty = points[-1]
-
- if self.horizontal:
- ty += self.pitch_x/2
- yield Text(tx, ty, label, self.font_size, self.font_stroke, 'center', 'bottom', unit=self.unit)
- yield Text(tx, ty, label, self.font_size, self.font_stroke, 'center', 'bottom', unit=self.unit, flip=True)
- else:
- tx += self.pitch_x/2
- yield Text(tx, ty, label, self.font_size, self.font_stroke, 'left', 'middle', unit=self.unit)
- yield Text(tx, ty, label, self.font_size, self.font_stroke, 'left', 'middle', unit=self.unit, flip=True)
+ if points:
+ tx, ty = points[-1]
+
+ if self.horizontal:
+ ty += self.pitch_x/2
+ yield Text(tx, ty, label, self.font_size, self.font_stroke, 'center', 'bottom', unit=self.unit)
+ yield Text(tx, ty, label, self.font_size, self.font_stroke, 'center', 'bottom', unit=self.unit, flip=True)
+ else:
+ tx += self.pitch_x/2
+ yield Text(tx, ty, label, self.font_size, self.font_stroke, 'left', 'middle', unit=self.unit)
+ yield Text(tx, ty, label, self.font_size, self.font_stroke, 'left', 'middle', unit=self.unit, flip=True)
last_e = e
if self.num_power_rails == 2 and best_layout.count('P') >= 2: