From 9ffc96cbe53eb0335f8a379252fb8124acaf5346 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 30 Apr 2023 01:44:58 +0200 Subject: Finish macro-based alio layout --- gerbonara/cad/protoboard.py | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) (limited to 'gerbonara/cad') diff --git a/gerbonara/cad/protoboard.py b/gerbonara/cad/protoboard.py index b9a1065..91b07d1 100644 --- a/gerbonara/cad/protoboard.py +++ b/gerbonara/cad/protoboard.py @@ -633,6 +633,12 @@ class AlioCell(ObjectGroup): corner_radius, # 4 rotation, # 5 self.clearance), unit=MM) # 6 + main_ap_90 = ApertureMacroInstance(alio_main_macro, (self.link_pad_width, # 1 + self.pitch, # 2 + self.link_trace_width, # 3 + corner_radius, # 4 + rotation-90, # 5 + self.clearance), unit=MM) # 6 main_drill = ExcellonTool(self.drill, plated=True, unit=self.unit) via_drill = ExcellonTool(self.via_size, plated=True, unit=self.unit) @@ -646,21 +652,11 @@ class AlioCell(ObjectGroup): amp.Circle(MM, 1, 2*var(4), var(1)/2-var(4), var(1)/2-var(4), var(5)), amp.CenterLine(MM, 1, var(2), var(3), -var(2)/2 + var(1)/2, 0, var(5)), )) - #alio_clear = ApertureMacroInstance(alio_macro, (self.link_pad_width + 2*self.clearance, # 1 - # self.pitch+self.clearance, # 2 - # self.link_trace_width + 2*self.clearance, # 3 - # corner_radius+self.clearance, # 4 - # rotation), unit=MM) # 5 alio_dark = ApertureMacroInstance(alio_macro, (self.link_pad_width, # 1 self.pitch-self.clearance, # 2 self.link_trace_width, # 3 corner_radius, # 4 rotation), unit=MM) # 5 - #alio_clear_90 = ApertureMacroInstance(alio_macro, (self.link_pad_width + 2*self.clearance, # 1 - # self.pitch+self.clearance, # 2 - # self.link_trace_width + 2*self.clearance,# 3 - # corner_radius+self.clearance, # 4 - # rotation+90), unit=MM) # 5 alio_dark_90 = ApertureMacroInstance(alio_macro, (self.link_pad_width, # 1 self.pitch-self.clearance, # 2 self.link_trace_width, # 3 @@ -669,18 +665,13 @@ class AlioCell(ObjectGroup): # all layers are identical here for side, use in (('top', 'copper'), ('top', 'mask'), ('bottom', 'copper'), ('bottom', 'mask')): - layer_stack[side, use].objects.insert(0, xf(Flash(0, 0, aperture=main_ap, unit=self.unit))) if side == 'top': - #layer_stack[side, use].objects.append(xf(Flash(self.pitch/2, self.pitch/2, aperture=alio_clear, polarity_dark=False, unit=self.unit))) - #if self.inst_y == 0: - # layer_stack[side, use].objects.append(xf(Flash(self.pitch/2, -self.pitch/2, aperture=alio_clear, polarity_dark=False, unit=self.unit))) - if not (self.border_x or self.border_y): + layer_stack[side, use].objects.insert(0, xf(Flash(0, 0, aperture=main_ap, unit=self.unit))) + if not self.border_y: layer_stack[side, use].objects.append(xf(Flash(self.pitch/2, self.pitch/2, aperture=alio_dark, unit=self.unit))) else: - #layer_stack[side, use].objects.append(xf(Flash(self.pitch/2, self.pitch/2, aperture=alio_clear_90, polarity_dark=False, unit=self.unit))) - #if self.inst_x == 0: - # layer_stack[side, use].objects.append(xf(Flash(-self.pitch/2, self.pitch/2, aperture=alio_clear, polarity_dark=False, unit=self.unit))) - if not (self.border_x or self.border_y): + layer_stack[side, use].objects.insert(0, xf(Flash(0, 0, aperture=main_ap_90, unit=self.unit))) + if not self.border_x: layer_stack[side, use].objects.append(xf(Flash(self.pitch/2, self.pitch/2, aperture=alio_dark_90, unit=self.unit))) layer_stack.drill_pth.append(Flash(x, y, aperture=main_drill, unit=self.unit)) -- cgit