22 lines
599 B
Python
Executable file
22 lines
599 B
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
import re
|
|
|
|
with open('chibi_2024.kicad_pcb') as f:
|
|
lines = f.readlines()
|
|
|
|
def mangled(lines):
|
|
for l in lines:
|
|
if 'fp_text' in l and not l.strip().endswith('hide'):
|
|
at_re = '\((at\s\S+\s\S+)(\s\S+)?\)'
|
|
match = re.search(at_re, l)
|
|
if not match:
|
|
raise Exception()
|
|
rot = int(match.group(2) or '0')
|
|
rot = (rot+180)%360
|
|
yield re.sub(at_re, r'(\1 {})'.format(rot), l)
|
|
else:
|
|
yield l
|
|
|
|
with open('out.kicad_pcb', 'w') as f:
|
|
f.write(''.join(mangled(lines)))
|