delorie.com/archives/browse.cgi   search  
Mail Archives: geda-help/2015/06/03/05:13:37

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)" <geda-help AT delorie DOT com>
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
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

# 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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019