X-Authentication-Warning: delorie.com: mail set sender to geda-help-bounces using -f X-Recipient: geda-help AT delorie DOT com Date: Wed, 3 Jun 2015 11:12:35 +0200 From: "Smilie (smilie AT posteo DOT de)" To: geda-help AT delorie DOT com Subject: Re: [geda-help] an other request Message-ID: <20150603111235.48540173@None> In-Reply-To: <20150602165339.GB19318@localhost.localdomain> References: <20150602170540 DOT 2b00c775 AT None> <20150602165339 DOT GB19318 AT localhost DOT localdomain> Organization: Individuum auf blauem Planet X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id t539CvuP030006 Reply-To: geda-help AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: geda-help AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk # The Code is not free of bugs! # Im not the best code-maker (: # Possible there are some bether ways. # I im happy for the scrip posibility. #------------------------------ #!/bin/sh Datum=`date +%Y-%m-%d` Home=~/ Arbeitsverzeichnis=`pwd`"/" Projekt=Proj Modell=QM HW=$Projekt"_"$Modell"_""Hardware/" SW=$Projekt"_"$Modell"_""Software/" FW=$Projekt"_"$Modell"_""Firmware/" DirSteckerbelegung="Steckerbelegung/" DirStueckliste="Stueckliste/" # 2 Sources (2 in my spezial case) HWQuelle=(Desktop/Projekte/QM1/33_gEDA_Dateien/ Desktop/Projekte/QM2/33_gEDA_Dateien/) # 2 Targets (2 in my spezial case) HWZiel=(QM1/ QM2/) # Filenames Schaltplan="Schaltplan-page1.sch" # für alles SchaltplanIF="Schaltplan-IF.sch" # für Steckverbinder Stueckliste=$Datum"_"$Projekt"_"$Modell"_""Stueckliste.tsv" # generiert Stückliste Bestellen=$Datum"_"$Projekt"_"$Modell"_""Bestellen.tsv" # generiert Stückliste Bestuecken=$Datum"_"$Projekt"_"$Modell"_""Bestuecken.tsv" # generiert Stückliste Steckerbelegung=$Datum"_"$Projekt"_"$Modell"_""Steckerbelegung.csv" # generiert Steckverbindertabelle strich="--------------------> " echo $strich$Datum$strich echo $Datum >> Release.log echo "./ "$Arbeitsverzeichnis # mkdir some dirs for zusatz in $Arbeitsverzeichnis$HW $Arbeitsverzeichnis$SW $Arbeitsverzeichnis$FW ; do echo $strich" erzeuge V: "$zusatz if [ ! -d $zusatz ] ; then mkdir $zusatz echo $strich" erzeugt" else echo $strich" vorhanden" fi done # "for j in 0 1 ;" is not the best way, i have no other solution in this time for two sources. for j in 0 1 ; do # Hw Array echo $strich" Stage " $j" Release "${HWZiel[j]} echo $strich" erzeuge V: "$Arbeitsverzeichnis$HW${HWZiel[j]} if [ ! -d $Arbeitsverzeichnis$HW${HWZiel[j]} ] ; then mkdir $Arbeitsverzeichnis$HW${HWZiel[j]} echo $strich" erzeugt" else echo $strich" vorhanden" fi for zusatz in "EPS" "PDF" "PS" "Gerber" "gEDA" $DirStueckliste $DirSteckerbelegung $DirSteckerbelegung"CSV" $DirStueckliste"TSV"; do echo $strich" erzeuge V: "$Arbeitsverzeichnis$HW${HWZiel[j]}$zusatz if [ ! -d $Arbeitsverzeichnis$HW${HWZiel[j]}$zusatz ] ; then mkdir $Arbeitsverzeichnis$HW${HWZiel[j]}$zusatz echo $strich" erzeugt" else echo $strich" vorhanden" fi done echo $strich" genbom" cd $Home${HWQuelle[j]} echo $strich" ./ "`pwd` #------------------------------------------------------genbom----------------------------------------------------------------------------------------------------------------------------------------------- # Its my spezial way for attribs echo """ Pos. Bestuecken spec. description Lagerbestand Bestellt Ueberschuss Bestellmenge Bestellbedarf Fehlbestand Stueckzahl G-Preis Faktor Minimum E-Preis footprint value device Haendler Bestellnummer Angebot-Datum Angebot Lieferzeit """ > attribs echo $strich" Erstelle BOM2 in "$Stueckliste gnetlist -g bom2 -o Stueckliste.csv Schaltplan-page1.sch echo $strich" Sortieren..." head -1 Stueckliste.csv > a.tmp; tail -n+2 Stueckliste.csv | sort -n >> a.tmp; mv a.tmp Stueckliste.csv echo $strich" BOM1 einfuegen..." # for some compfort in oocalc: sed -i '1a BOM1:0:unknown:unknown:Beschreibung:=0:=0:=WENN(F2>L2;F2-L2;0):=WENN(F2>=L2;0;WENN(O2=0;0;WENN(O2>L2;O2;L2))):=WENN(K2>G2;K2-G2;0):=WENN(L2>F2;I2-F2;0):=Y2*N2:=P2*I2:=1:=1:0:None:unknown:None:Haendler:0:unknown:unknown:unknown:1' Stueckliste.csv cat Stueckliste.csv | tr ':' '\t' > $Stueckliste # check for doupletts echo $strich"Achtung! Doppelt vergebene refdes ..." cat $Schaltplan | grep refdes | uniq -d echo $strich" ..." echo $strich" Dateien abspecken" # Zur Info #A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #es fehlen f-k, m-p, u-x cat Stueckliste.csv | grep "Bestuecken" | cut --delimiter=: --field=1,2,4,5,17,18,19,20,21,25 | tr ':' '\t' > $Bestuecken cat Stueckliste.csv | grep ":ja:" | cut --delimiter=: --field=1,2,4,5,17,18,19,20,21,25 | tr ':' '\t' >> $Bestuecken cat Stueckliste.csv | grep -v ":weder noch:" | tr ':' '\t' > $Bestellen rm Stueckliste.csv #------------------------------------------------------genSteckverbinder----------------------------------------------------------------------------------------------------------------------------------------------- echo $strich" Steckerbelegungen aus "$SchaltplanIF gnetlist -g geda $SchaltplanIF -o out.net Stecker=`cat out.net | grep =CONNECTOR | cut --delimiter=' ' --field=1` echo "Steckverbinder "$Stecker | sed 's/ /\n,/g' > $Steckerbelegung echo $strich$Stecker for i in $Stecker; do echo $strich" Schreibe "$i echo "" >> $Steckerbelegung echo $i >> $Steckerbelegung echo "PIN ,Beschreibung" >> $Steckerbelegung cat out.net | grep $i | grep -v device | sed 's/\([,:]\) '$i' \([^,]*\)/\1\2/g' | sed 's/\([,]\) [A-Z][^,]*/,/g' | sed 's/\([:]\) [A-Z][^,]*/:/g' | sed 's/,\+/,/g' | sed 's/:,/:/g' | sed 's/,$/ /g' | sed 's/,/\n-"- ,/g' | sed 's/:/,/' | awk -F "," '{print $2" ,"$1 }' | sed 's/ / /g' | sed '/-"-/!{h}; /-"-/{H; x; s/\n/ /g; s/^[0-9 ]*,//1; s/,-"-//1; s/^\([^ ]*\)[ ][ ]*\([0-9]*\)/\2 ,\1/; s/[0-9]*$//1; s/ / /g;};' | sed '/-"-/!{h}; /-"-/{H; x; s/\n/ /g; s/^[0-9 ]*,//1; s/,-"-//1; s/^\([^ ]*\)[ ][ ]*\([0-9]*\)/\2 ,\1/; s/[0-9]*$//1; s/ / /g;};' | sed 's/unnamed_net1/Netz+/1' | sed 's/Vcc/Vcc/1' | sed 's/GND/GND/1' | sort -n >> $Steckerbelegung done rm out.net ./genbom.sh --------Ende---genbom------------------------------------------------------------------------------------------------------------------------------------------------------------------ echo $strich" pcb -x HID" pcb -x gerber Layout.pcb pcb -x eps Layout.pcb pcb -x ps Layout.pcb echo $strich" loesche alte Dateien" rm $Arbeitsverzeichnis$HW${HWZiel[j]}"EPS/"*.eps rm $Arbeitsverzeichnis$HW${HWZiel[j]}"PS/"*.ps rm $Arbeitsverzeichnis$HW${HWZiel[j]}$DirStueckliste"TSV/"*.tsv rm $Arbeitsverzeichnis$HW${HWZiel[j]}$DirSteckerbelegung"CSV/"*.csv echo $strich" kopiere neue Dateien" cp -u *.pcb $Arbeitsverzeichnis$HW${HWZiel[j]}"gEDA/" cp -u *.sch $Arbeitsverzeichnis$HW${HWZiel[j]}"gEDA/" cp -u *.gbr $Arbeitsverzeichnis$HW${HWZiel[j]}"Gerber/" cp -u *.cnc $Arbeitsverzeichnis$HW${HWZiel[j]}"Gerber/" cp -u *.eps $Arbeitsverzeichnis$HW${HWZiel[j]}"EPS/" cp -u *.ps $Arbeitsverzeichnis$HW${HWZiel[j]}"PS/" mv $Steckerbelegung $Arbeitsverzeichnis$HW${HWZiel[j]}$DirSteckerbelegung"CSV/" mv $Stueckliste $Arbeitsverzeichnis$HW${HWZiel[j]}$DirStueckliste"TSV/" mv $Bestuecken $Arbeitsverzeichnis$HW${HWZiel[j]}$DirStueckliste"TSV/" mv $Bestellen $Arbeitsverzeichnis$HW${HWZiel[j]}$DirStueckliste"TSV/" cd $Arbeitsverzeichnis$HW${HWZiel[j]}EPS/ echo $strich" ./ "`pwd` Files=`ls *.eps` for i in $Files; do echo $strich" "${HWZiel[j]}": erstelle PDF von "${Datum}"_EPS_"${i} mv $i ${Datum}_EPS_${i} epstopdf ${Datum}_EPS_${i} mv ${Datum}_EPS_${i} ${i} done rm $Arbeitsverzeichnis$HW${HWZiel[j]}"PDF/"*.pdf mv *.pdf $Arbeitsverzeichnis$HW${HWZiel[j]}"PDF/" cd $Arbeitsverzeichnis$HW${HWZiel[$j]}"PS/" echo $strich" ./ "`pwd` Files=`ls *.ps` for i in $Files; do echo $strich" "${HWZiel[j]}" erstelle PDF von "${Datum}"_PS_"${i} mv $i ${Datum}_PS_${i} ps2pdf ${Datum}_PS_${i} mv ${Datum}_PS_${i} ${i} done mv *.pdf $Arbeitsverzeichnis$HW${HWZiel[j]}"PDF/" done cd $Arbeitsverzeichnis echo $strich" ./ "`pwd` # make a package.zip zip -r -o ../$Datum"_"$Projekt"_"$Modell"_Release" *