Mail Archives: geda-help/2015/06/03/05:13:37
# 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" *
- Raw text -