mirror of
git://projects.qi-hardware.com/eda-tools.git
synced 2024-11-22 21:32:29 +02:00
112 lines
2.3 KiB
Plaintext
112 lines
2.3 KiB
Plaintext
|
#!/bin/sh
|
||
|
#
|
||
|
# prettygerbv - Use gerbv to generate "pretty" views of a PCB
|
||
|
#
|
||
|
# Written 2011 by Werner Almesberger
|
||
|
# Copyright 2011 Werner Almesberger
|
||
|
#
|
||
|
# This program is free software; you can redistribute it and/or modify
|
||
|
# it under the terms of the GNU General Public License as published by
|
||
|
# the Free Software Foundation; either version 2 of the License, or
|
||
|
# (at your option) any later version.
|
||
|
#
|
||
|
|
||
|
|
||
|
COPPER="(cons 'color #(65535 50401 10000))"
|
||
|
PASTE="(cons 'color #(39083 39083 50000))"
|
||
|
MASK="(cons 'inverted #t) (cons 'color #(8839 53994 8178))"
|
||
|
SILK="(cons 'color #(65535 65535 65535))"
|
||
|
EDGE="(cons 'color #(0 0 0))"
|
||
|
|
||
|
FRONT="(cons 'color #(65535 10000 10000))"
|
||
|
BACK="(cons 'color #(30000 65535 30000))"
|
||
|
EDGE2="(cons 'color #(30000 40000 65535))"
|
||
|
|
||
|
|
||
|
usage()
|
||
|
{
|
||
|
cat <<EOF 1>&2
|
||
|
usage: $0 project-name view png-file
|
||
|
|
||
|
view "front", "back", "conn", "all"
|
||
|
EOF
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
|
||
|
run_gerbv()
|
||
|
{
|
||
|
gerbv -p _gvp --dpi=600 -x png -o "$1"
|
||
|
}
|
||
|
|
||
|
|
||
|
front()
|
||
|
{
|
||
|
cat <<EOF >_gvp
|
||
|
(gerbv-file-version! "2.0A")
|
||
|
(define-layer! 4 (cons 'filename "$NAME-Front.gtl") $COPPER)
|
||
|
(define-layer! 3 (cons 'filename "$NAME-SoldP_Front.gtp") $PASTE)
|
||
|
(define-layer! 2 (cons 'filename "$NAME-Mask_Front.gts") $INV $MASK)
|
||
|
(define-layer! 1 (cons 'filename "$NAME-SilkS_Front.gto") $SILK)
|
||
|
(define-layer! 0 (cons 'filename "$NAME-PCB_Edges.gbr") $EDGE)
|
||
|
(set-render-type! 2)
|
||
|
EOF
|
||
|
run_gerbv "$1"
|
||
|
}
|
||
|
|
||
|
|
||
|
back()
|
||
|
{
|
||
|
cat <<EOF >_gvp
|
||
|
(gerbv-file-version! "2.0A")
|
||
|
(define-layer! 4 (cons 'filename "$NAME-Back.gbl") $COPPER)
|
||
|
(define-layer! 3 (cons 'filename "$NAME-SoldP_Back.gbp") $PASTE)
|
||
|
(define-layer! 2 (cons 'filename "$NAME-Mask_Back.gbs") $INV $MASK)
|
||
|
(define-layer! 1 (cons 'filename "$NAME-SilkS_Back.gbo") $SILK)
|
||
|
(define-layer! 0 (cons 'filename "$NAME-PCB_Edges.gbr") $EDGE)
|
||
|
(set-render-type! 2)
|
||
|
EOF
|
||
|
run_gerbv _tmp.png
|
||
|
convert -flop _tmp.png "$1"
|
||
|
rm -f _tmp.png
|
||
|
}
|
||
|
|
||
|
|
||
|
conn()
|
||
|
{
|
||
|
cat <<EOF >_gvp
|
||
|
(gerbv-file-version! "2.0A")
|
||
|
(define-layer! 2 (cons 'filename "$NAME-Back.gbl") $BACK)
|
||
|
(define-layer! 1 (cons 'filename "$NAME-Front.gtl") $FRONT)
|
||
|
(define-layer! 0 (cons 'filename "$NAME-PCB_Edges.gbr") $EDGE2)
|
||
|
(set-render-type! 2)
|
||
|
EOF
|
||
|
run_gerbv "$1"
|
||
|
}
|
||
|
|
||
|
|
||
|
all()
|
||
|
{
|
||
|
front _front.png
|
||
|
back _back.png
|
||
|
conn _conn.png
|
||
|
montage -geometry +4+4 _front.png _back.png _conn.png "$1"
|
||
|
rm -f _front.png _back.png _conn.png
|
||
|
}
|
||
|
|
||
|
[ "$4" ] && usage
|
||
|
[ ! "$3" ] && usage
|
||
|
|
||
|
NAME=$1
|
||
|
OUT=$3
|
||
|
|
||
|
case "$2" in
|
||
|
front|back|conn) ;;
|
||
|
all) ;;
|
||
|
*) usage;;
|
||
|
esac
|
||
|
|
||
|
$2 "$OUT"
|
||
|
|
||
|
rm -f _gvp
|