#!/usr/bin/env python #find /home/hp/kicad -name \"*.kicad_pcb\" | dmenu -b -i -l 15 >/tmp/solderchoice.txt; /home/hp/kicad/convertpcb.py #в папках 3д моделей надо создать копии файлов моделей wrl с расширением _redmark.wrl и внутри заменить diffusecolor красный компонент на 1! import sys import re import os if len(sys.argv)==2: namef = sys.argv[1] else: f = open("/tmp/solderchoice.txt", 'r') for line in f: namef = line.strip() break f = open(namef, 'r') newf = open("/tmp/newpcb.txt", "a") newf.truncate(0) inmodule=0 modtype="" myli = [] def convertline(a): l = re.sub(" \(fp_text value","",a) l = re.sub("\"","",l) l = re.sub("\(.*","",l) l = modtype+" "+l.strip() return l for line in f: newf.write(line) if line.startswith(" )"): inmodule=0 if line.startswith(" (tags "): inmodule=1 modtype=line.strip() #re.search("\".*\"",line).group(0) if line.startswith(" (fp_text value") and inmodule: l = convertline(line) inmodule=0 if l not in myli: if re.search(" 0603",l) or re.search(" 0402",l) or re.search(" 0805",l) or re.search("SOT",l): myli.append(l) newf.close() myli.sort() nf= 0 while (1): for el in myli: print(""+str(myli.index(el))+":"+el) print("---") if nf: print("----was num---"+str(n)+"--"+myli[n]) print("----choose---") n = int(input()) inmodule=0 nf=1 print(myli[n]+"\n") f = open(namef, 'r') newf = open("/tmp/newpcb.txt", "a") newf.truncate(0) for line in f: if line.startswith(" )"): inmodule=0 if line.startswith(" (tags "): inmodule=1 modtype=line.strip()#re.search("\".*\"",line).group(0) if line.startswith(" (fp_text value") and inmodule==1: l = convertline(line) if l==myli[n]: inmodule=2 if line.startswith(" (model ") and inmodule==2: inmodule=0 line = re.sub(".wrl","_redmark.wrl",line); newf.write(line) newf.close() os.spawnl(os.P_WAIT,"/usr/bin/pcbnew","/usr/bin/pcbnew","/tmp/newpcb.txt")