From 73a48f1dcb8bbe25221a5df952a36aec301b9f37 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 30 Apr 2023 01:58:30 +0200 Subject: protoserve: Add ALio layout --- gerbonara/cad/protoserve.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'gerbonara/cad/protoserve.py') diff --git a/gerbonara/cad/protoserve.py b/gerbonara/cad/protoserve.py index 4a10acc..bcd48ce 100644 --- a/gerbonara/cad/protoserve.py +++ b/gerbonara/cad/protoserve.py @@ -100,7 +100,7 @@ def deserialize(obj, unit): via_dia = mil(float(obj['via_dia'])) trace_width = mil(float(obj['trace_width'])) # Force 1mm margin to avoid shorts when adjacent to planes such as that one in the RF THT proto. - return pb.PatternProtoArea(pitch, pitch, pb.PoweredProto(pitch, hole_dia, clearance, via_size=via_drill, power_pad_dia=via_dia, trace_width=trace_width, unit=unit), margin=1.0, unit=unit) + return pb.PatternProtoArea(pitch, pitch, pb.PoweredProto(pitch, hole_dia, clearance, via_size=via_drill, power_pad_dia=via_dia, trace_width=trace_width, unit=unit), margin=unit(1.0, MM), unit=unit) case 'flower': pitch = mil(float(obj.get('pitch', 2.54))) @@ -111,6 +111,22 @@ def deserialize(obj, unit): case 'spiky': return pb.PatternProtoArea(2.54, 2.54, pb.SpikyProto(), unit=unit) + case 'alio': + pitch = mil(float(obj.get('pitch', 2.54))) + drill = mil(float(obj.get('hole_dia', 0.9))) + clearance = mil(float(obj.get('clearance', 0.3))) + link_pad_width = mil(float(obj.get('link_pad_width', 1.1))) + link_trace_width = mil(float(obj.get('link_trace_width', 0.5))) + via_size = mil(float(obj.get('via_hole_dia', 0.4))) + return pb.PatternProtoArea(pitch, pitch, pb.AlioCell( + pitch=pitch, + drill=drill, + clearance=clearance, + link_pad_width=link_pad_width, + link_trace_width=link_trace_width, + via_size=via_size + ), margin=unit(1.5, MM), unit=unit) + case 'rf': pitch = float(obj.get('pitch', 2.54)) hole_dia = float(obj['hole_dia']) -- cgit