From 8cc300512e82af056219ab5d529753e834c27296 Mon Sep 17 00:00:00 2001 From: Andrei Date: Sat, 15 Jan 2022 10:40:51 +0200 Subject: [PATCH] more flexible iBom footprint parser --- bin/gen_iBOM.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/gen_iBOM.py b/bin/gen_iBOM.py index 0fe7fca..49c7bc0 100644 --- a/bin/gen_iBOM.py +++ b/bin/gen_iBOM.py @@ -183,8 +183,8 @@ def updateBbox(bbox, padXY, padWH): def readFootprint(fpname, footprintsPath, des): if not fpname: return None - pat_module = re.compile(r'\(module\s+\"?([\w\-\.]+)\"?\s+\(layer\s+\"?([FB])') - pat_pad = re.compile(r'^\s*\(pad\s+\"?([0-9]+)\"?\s+(\w+)\s+(\w+)\s+\(at\s+([+\-0-9e\.]+)\s+([+\-0-9e\.]+)\s*([+\-0-9\.]+)?\)\s+\(size\s+([+\-0-9\.]+)\s+([+\-0-9\.]+)\)(\s*\(drill\s+([+\-0-9\.]+)\))?\s+\(layer[s]?\s+\"?([^\)]+)\)(\s*\(roundrect_rratio\s+([+\-0-9\.]+)\))?') + pat_module = re.compile(r'\((module|footprint)\s+\"?([\w\-\.\:]+)\"?\s+\(layer\s+\"?([FB])') + pat_pad = re.compile(r'^\s*\(pad\s+\"?([0-9A-Z]+)\"?\s+(\w+)\s+(\w+)\s+\(at\s+([+\-0-9e\.]+)\s+([+\-0-9e\.]+)\s*([+\-0-9\.]+)?\)\s+\(size\s+([+\-0-9\.]+)\s+([+\-0-9\.]+)\)(\s*\(drill\s+([+\-0-9\.]+)\))?\s+\(layer[s]?\s+\"?([^\)]+)\)(\s*\(roundrect_rratio\s+([+\-0-9\.]+)\))?') fpFileName = footprintsPath + "/" + fpname + ".kicad_mod" print("* Reading " + fpFileName) @@ -198,7 +198,7 @@ def readFootprint(fpname, footprintsPath, des): for line in f: module = pat_module.match(line) if module: - json["layer"] = module.group(2) + json["layer"] = module.group(3) pad = pat_pad.match(line) if pad: padIdx = pad.group(1)