From 34bcb628524888fa26ec17cb272f879eda17866a Mon Sep 17 00:00:00 2001 From: Benny Megidish Date: Thu, 5 Dec 2024 10:12:56 +0200 Subject: [PATCH] chore: clean up #181 --- plugins/process.py | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/plugins/process.py b/plugins/process.py index 6caf8ce..41f60ff 100644 --- a/plugins/process.py +++ b/plugins/process.py @@ -113,24 +113,26 @@ class ProcessManager: netlist_writer = pcbnew.IPC356D_WRITER(self.board) netlist_writer.Write(os.path.join(temp_dir, netlistFileName)) - def _get_footprint_position(self, footprint): - attributes = footprint.GetAttributes() - #determin origin type by packge type - if attributes & pcbnew.FP_SMD: - origin_type='Anchor' - else: - origin_type='Center' - - #allow user override - key='Origin' - if footprint_has_field(footprint, key): - origin_type_override = str(footprint_get_field(footprint, key)).capitalize() - if origin_type_override in ['Anchor','Center']: - origin_type=origin_type_override + def _get_footprint_position(self, footprint): + """Calculate position based on center of pads / bounding box.""" - if origin_type=='Anchor': + attributes = footprint.GetAttributes() + # determine origin type by package type + if attributes & pcbnew.FP_SMD: + origin_type = 'Anchor' + else: + origin_type = 'Center' + + # allow user override + key = 'Origin' + if footprint_has_field(footprint, key): + origin_type_override = str(footprint_get_field(footprint, key)).strip().capitalize() + if origin_type_override in ['Anchor', 'Center']: + origin_type = origin_type_override + + if origin_type == 'Anchor': position = footprint.GetPosition() - else: #if type_origin=='center' or anything ele + else: # if type_origin == 'Center' or anything else pads = footprint.Pads() if len(pads) > 0: # get bounding box based on pads only to ignore non-copper layers, e.g. silkscreen @@ -139,7 +141,7 @@ class ProcessManager: bbox.Merge(pad.GetBoundingBox()) # expand bounding box position = bbox.GetCenter() else: - position = footprint.GetPosition() #if we have no pads we fallback to anchor + position = footprint.GetPosition() # if we have no pads we fallback to anchor return position