Skip to content

Commit

Permalink
Adds support for hierarchical sheets.
Browse files Browse the repository at this point in the history
Recursively proceses hierarchical sheets.
  • Loading branch information
gonzalop committed Jul 31, 2024
1 parent aeb9ea3 commit 99f6a02
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions schematicexport.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,10 +207,8 @@ def _update_schematic8(self, path):
with open(path, encoding="utf-8") as f:
lines = f.readlines()

if os.path.exists(path + "_old"):
os.remove(path + "_old")
os.rename(path, path + "_old")
partSection = False
files_seen = set() # keeps sheet files already processed.

for i in range(0, len(lines) - 1):
inLine = lines[i].rstrip()
Expand All @@ -231,7 +229,7 @@ def _update_schematic8(self, path):
value = m.group(2)
lastLcsc = value
if newLcsc not in (lastLcsc, ""):
self.logger.info("Updating %s on %s", newLcsc, lastRef)
self.logger.info("Updating %s on %s in %s", newLcsc, lastRef, path)
outLine = outLine.replace(
'"' + lastLcsc + '"', '"' + newLcsc + '"'
)
Expand All @@ -246,6 +244,12 @@ def _update_schematic8(self, path):
if value == part[0]:
newLcsc = part[3]
break
if key == "Sheetfile":
file_name = m.group(2)
if file_name not in files_seen:
files_seen.add(file_name)
dir_name = os.path.dirname(path)
self._update_schematic8(os.path.join(dir_name, file_name))
# if we hit the pin section without finding a LCSC property, add it
m3 = pinRx.search(inLine)
if m3 and partSection:
Expand All @@ -264,6 +268,9 @@ def _update_schematic8(self, path):
lastRef = ""
newlines.append(outLine)
newlines.append(lines[len(lines) - 1].rstrip())
if os.path.exists(path + "_old"):
os.remove(path + "_old")
os.rename(path, path + "_old")
with open(path, "w", encoding="utf-8") as f:
for line in newlines:
f.write(line + "\n")
Expand Down

0 comments on commit 99f6a02

Please sign in to comment.