From 39b8da545e2e7fe6e1261da06cfa491a4e4d61c0 Mon Sep 17 00:00:00 2001 From: John Pateman Date: Mon, 21 Aug 2017 09:59:21 +0100 Subject: [PATCH] Updated css Tidied up Kidiff.sh Moved changes fro _wc (working copy) to kidiff.sh Working on Kidiff_wc.sh to support cascading style sheet sheet.css --- kidiff.sh | 509 +++++++++++++++++++++++++++++++------------------ kidiff_wc.sh | 110 +++++------ plot_pcbnew.py | 20 +- style.css | 71 ++----- 4 files changed, 404 insertions(+), 306 deletions(-) diff --git a/kidiff.sh b/kidiff.sh index 6f192e7..6442a95 100755 --- a/kidiff.sh +++ b/kidiff.sh @@ -2,166 +2,296 @@ # Takes one or two Fossil ref's as arguments and generates visual diffs between them # If only one ref specified, generates a diff from that file -# If no refs specified, assumes HEAD +# If no refs specified, assumes CURRENT + +# TODO Consider moving all formatting to a single, external css file and putting all +# created web content into a 'web' directory. + +# TODO Improve 3-pane layout - possible two side by side and comparison image underneath? -# TODO Consider moving all formatting to a single external css file. -# TODO Improve 3-pane layout - possible two side by side and comparison image underneath. -# TODO Add commandline quality option - Quality is dpi. 100 is fast but low quality 300 is a good compromise. -# TODO Improve sed removal of the the 'ADDED' 'CHANGED' tags. There is a difference in number of spaces in diffs with -# one vs two arguments. Need to match any number of spaces. -# Something like tr -d 'CHANGED[:space:]||ADDED[:space:]' # TODO Remove filename from display format i.e 'filename-F_Cu' becomes 'F_Cu' + +qual="100" +# TODO Add command line quality option - Quality is dpi. 100 is fast but low quality +# 600 is very detailed. 300 is a good compromise. + +# TODO Add recolour option +# 952927 +# convert F_Cu.png -fill "#952927" -fuzz 75% -opaque "#ffffff" test2.png + +# Remove old plot files +rm -r /tmp/svg + +# Set directory for plotting OUTPUT_DIR="./plots" -# TODO Have added this temprarily to simply remove all the plots prior to generating files. +rm -r $OUTPUT_DIR + +# TODO Have added this temporarily to simply remove all the plots prior to generating files. # Theoretically the script could check if the files have already been generated and then only generate the # missing files. This would permit multiple diff compares and you could also use an external diff tool like p4merge # but the disadvantage is that the resoultions have to match. It is also more complicated to script # Ideally one could request random compares within the web interface and there would # be 'on the fly' svg/png creation and diff showing. +# Try to keep the web components seperate from the images so that the images could be +# looked at using a graphical diff viewer like p4merge. +# Set directory for web backend +WEB_DIR=$OUTPUT_DIR"/web" -rm -r $OUTPUT_DIR -# Find .kicad_files that differ between commits -############################################### +# TODO Might need to use a more complex strategy to cope with spaces in filename +# using some varient of 'find . -name "*.pro" -print0 | xargs -0' + +################################# +# Colours to substitute per layer +# +# Additionally need to add vias, and internal layers. +# TODO Parse the pcbnew file to determine which layers are active. + +F_Cu="#952927" +B_Cu="#359632" +B_Paste="#3DC9C9" +F_Paste="#969696" +F_SilkS="#339697" +B_SilkS="#481649" +B_Mask="#943197" +F_Mask="#943197" +Edge_Cuts="#C9C83B" +In1_Cu="#C2C200" +In2_Cu="#C200C2" +User_Dwgs="#C2C2C2" +User_Cmts="#000085" +User_Eco1="#008500" +User_Eco2="#C2C200" +B_Fab="#858585" +F_Fab="#C2C200" + + +# These are the colour definitions for the 'solarised' theme from pcbnew. +#ColorPCBLayer_F.Cu=rgb(221, 47, 44) +#ColorPCBLayer_In3.Cu=rgba(194, 194, 194, 0.800) +#ColorPCBLayer_In4.Cu=rgba(0, 132, 132, 0.800) +#ColorPCBLayer_In5.Cu=rgba(0, 132, 0, 0.800) +#ColorPCBLayer_In6.Cu=rgba(0, 0, 132, 0.800) +#ColorPCBLayer_Margin=rgba(194, 0, 194, 0.800) +#ColorPCBLayer_B.CrtYd=rgba(194, 194, 0, 0.800) +#ColorPCBLayer_F.CrtYd=rgba(132, 132, 132, 0.800) +#ColorTxtFrontEx=rgba(194, 194, 194, 0.800) +#ColorTxtBackEx=rgba(0, 0, 132, 0.800) +#ColorTxtInvisEx=rgba(132, 132, 132, 0.800) +#ColorAnchorEx=rgba(0, 0, 132, 0.800) +#ColorPadBackEx=rgba(0, 132, 0, 0.800) +#ColorPadFrontEx=rgba(132, 132, 132, 0.800) +#ColorViaThruEx=rgba(194, 194, 194, 0.800) +#ColorViaBBlindEx=rgba(132, 132, 0, 0.800) +#ColorViaMicroEx=rgba(0, 132, 132, 0.800) +#ColorNonPlatedEx=rgba(194, 194, 0, 0.800) + + + +######################################################### +# Find the .kicad_pcb files that differ between commits # +######################################################### + +# Look at number of arguments provided set different variables based on number of Fossil refs +############################################################################################# + +# 0. User provided no Fossil references, compare against last Fossil commit -## Look at number of arguments provided set different variables based on number of fossil refs -## User provided no Fossil references, compare against last Fossil commit -qual="300" if [ $# -eq 0 ]; then - DIFF_1="current" - DIFF_2=$(fossil info current | grep ^uuid: | sed 's/uuid: //g' | cut -c 1-6) - echo $DIFF_2 + DIFF_1="current" + DIFF_2=$(fossil info current | grep ^uuid: | tr -d 'uuid:[:space:]' | cut -c 1-6) + echo $DIFF_2 + CHANGED_KICAD_FILES=$(fossil diff --brief -r "$DIFF_2" | grep '.kicad_pcb$' | tr -d 'CHANGED[:space:]||ADDED[:space:]') + if [[ -z "$CHANGED_KICAD_FILES" ]]; then echo "No .kicad_pcb files differ" && exit 0; fi + + # Copy all modified kicad_pcb files to $OUTPUT_DIR/current + + for k in $CHANGED_KICAD_FILES; do + mkdir -p "$OUTPUT_DIR/$DIFF_1" + cp "$k" $OUTPUT_DIR/current + done + + # Copy the Fossil commit kicad_pcb file to $OUTPUT_DIR/commit uuid + + for k in $CHANGED_KICAD_FILES; do + mkdir -p "$OUTPUT_DIR/$DIFF_2" + echo "Copying $DIFF_2:$k to $OUTPUT_DIR/$DIFF_2/" + fossil cat $k -r $DIFF_2 > "$OUTPUT_DIR/$DIFF_2/$(basename $k)" + done + + + # 1. User supplied one Fossil reference to compare against current files + + elif [ $# -eq 1 ]; then + DIFF_1="current" + DIFF_2="$1" + CHANGED_KICAD_FILES=$(fossil diff --brief -r "$DIFF_2" | grep '.kicad_pcb$' | tr -d 'CHANGED[:space:]||ADDED[:space:]') + if [[ -z "$CHANGED_KICAD_FILES" ]]; then echo "No .kicad_pcb files differ" && exit 0; fi + + # Copy all modified kicad_file to $OUTPUT_DIR/current + + for k in $CHANGED_KICAD_FILES; do + mkdir -p "$OUTPUT_DIR/$DIFF_1" + cp "$k" $OUTPUT_DIR/current + done + + # Copy the specified Fossil commit kicad_file to $OUTPUT_DIR/$(Fossil ref) + + for k in $CHANGED_KICAD_FILES; do + mkdir -p "$OUTPUT_DIR/$DIFF_2" + echo "Copying $DIFF_2:$k to $OUTPUT_DIR/$DIFF_2/$k" + fossil cat $k -r $DIFF_2 > "$OUTPUT_DIR/$DIFF_2/$(basename $k)" + done + + # 2. User supplied 2 Fossil references to compare + + elif [ $# -eq 2 ]; then + DIFF_1="$1" + DIFF_2="$2" + CHANGED_KICAD_FILES=$(fossil diff --brief -r "$DIFF_1" --to "$DIFF_2" | grep '.kicad_pcb' | tr -d 'CHANGED[:space:]||ADDED[:space:]') + if [[ -z "$CHANGED_KICAD_FILES" ]]; then echo "No .kicad_pcb files differ" && exit 0; fi + + # Copy all modified kicad_file to $OUTPUT_DIR/current + + for k in $CHANGED_KICAD_FILES; do + mkdir -p "$OUTPUT_DIR/$DIFF_1" + fossil cat $k -r $DIFF_1 > "$OUTPUT_DIR/$DIFF_1/$(basename $k)" + done + + # Copy the specified Fossil commit kicad_file to $OUTPUT_DIR/Fossil uuid + + for k in $CHANGED_KICAD_FILES; do + mkdir -p "$OUTPUT_DIR/$DIFF_2" + echo "Copying $DIFF_2:$k to $OUTPUT_DIR/$DIFF_2/$k" + fossil cat $k -r $DIFF_2 > "$OUTPUT_DIR/$DIFF_2/$(basename $k)" + done + + + # 3. User provided too many references -# TODO Might need to use strategy here to cope with spaces in name -# using some varient of sh -c {find . -name "*.pro" -print0 | xargs -0 gsed -E -i.bkp 's/update=.*/update=Date/'} - CHANGED_KICAD_FILES=$(fossil diff --brief -r "$DIFF_2" | grep '.kicad_pcb$' | tr -d 'CHANGED[:space:]||ADDED[:space:]') - if [[ -z "$CHANGED_KICAD_FILES" ]]; then echo "No .kicad_pcb files differ" && exit 0; fi - # Copy all modified kicad_file to $OUTPUT_DIR/current - for k in $CHANGED_KICAD_FILES; do - mkdir -p "$OUTPUT_DIR/$DIFF_1" - cp "$k" $OUTPUT_DIR/current - done - # Copy the specified Fossil commit kicad_file to $OUTPUT_DIR/$(Fossil ref) - for k in $CHANGED_KICAD_FILES; do - mkdir -p "$OUTPUT_DIR/$DIFF_2" - echo "Copying $DIFF_2:$k to $OUTPUT_DIR/$DIFF_2/" - fossil cat $k -r $DIFF_2 > "$OUTPUT_DIR/$DIFF_2/$(basename $k)" - done -## User provided 1 Fossil reference to compare against current files -elif [ $# -eq 1 ]; then - DIFF_1="current" - DIFF_2="$1" - #CHANGED_KICAD_FILES=$(fossil diff --brief -r "$DIFF_2" | grep '.kicad_pcb$' | sed 's/^CHANGED //g; s/^ADDED //g') - CHANGED_KICAD_FILES=$(fossil diff --brief -r "$DIFF_2" | grep '.kicad_pcb$' | tr -d 'CHANGED[:space:]||ADDED[:space:]') - if [[ -z "$CHANGED_KICAD_FILES" ]]; then echo "No .kicad_pcb files differ" && exit 0; fi - # Copy all modified kicad_file to $OUTPUT_DIR/current - for k in $CHANGED_KICAD_FILES; do - mkdir -p "$OUTPUT_DIR/$DIFF_1" - cp "$k" $OUTPUT_DIR/current - done - # Copy the specified Fossil commit kicad_file to $OUTPUT_DIR/$(Fossil ref) - for k in $CHANGED_KICAD_FILES; do - mkdir -p "$OUTPUT_DIR/$DIFF_2" - echo "Copying $DIFF_2:$k to $OUTPUT_DIR/$DIFF_2/$k" - fossil cat $k -r $DIFF_2 > "$OUTPUT_DIR/$DIFF_2/$(basename $k)" - done -## User provided 2 Fossil references to compare -elif [ $# -eq 2 ]; then - DIFF_1="$1" - DIFF_2="$2" - CHANGED_KICAD_FILES=$(fossil diff --brief -r "$DIFF_1" --to "$DIFF_2" | grep '.kicad_pcb' | tr -d 'CHANGED[:space:]||ADDED[:space:]') - if [[ -z "$CHANGED_KICAD_FILES" ]]; then echo "No .kicad_pcb files differ" && exit 0; fi - # Copy all modified kicad_file to $OUTPUT_DIR/current - for k in $CHANGED_KICAD_FILES; do - mkdir -p "$OUTPUT_DIR/$DIFF_1" - fossil cat $k -r $DIFF_1 > "$OUTPUT_DIR/$DIFF_1/$(basename $k)" - done - # Copy the specified git commit kicad_file to $OUTPUT_DIR/$(git ref) - for k in $CHANGED_KICAD_FILES; do - mkdir -p "$OUTPUT_DIR/$DIFF_2" - echo "Copying $DIFF_2:$k to $OUTPUT_DIR/$DIFF_2/$k" - fossil cat $k -r $DIFF_2 > "$OUTPUT_DIR/$DIFF_2/$(basename $k)" - done -## User provided too many referencess else - echo "Please only provide 1 or 2 arguments: not $#" - exit 2 + echo "Please only provide 1 or 2 arguments: not $#" + exit 2 fi echo "Kicad files saved to: '$OUTPUT_DIR/$DIFF_1' and '$OUTPUT_DIR/$DIFF_2'" -# Generate png files from kicad output -####################################### -#curl -s https://gist.githubusercontent.com/spuder/4a76e42f058ef7b467d9/raw -o /tmp/plot_board.py -#chmod +x /tmp/plot_board.py - -#I have found the simplest way to achieve this is to save the files as SVG and use rsvg-conver to produce the .png files +# Generate svg files from kicad output +###################################### +# +# Use the python script 'plot_pcbnew.py' to generate svg files from the two *.kicad_pcb files. +# Files are saved in /tmp/svg/COMMIT_ID +# for f in $OUTPUT_DIR/$DIFF_1/*.kicad_pcb; do - mkdir -p /tmp/svg/$DIFF_1 - echo "Converting $f to .svg: Files will be saved to /tmp/svg" - /usr/local/bin/plot_pcbnew.py "$f" "/tmp/svg/$DIFF_1" + mkdir -p /tmp/svg/$DIFF_1 + echo "Converting $f to .svg: Files will be saved to /tmp/svg" + /usr/local/bin/plot_pcbnew.py "$f" "/tmp/svg/$DIFF_1" done for f in $OUTPUT_DIR/$DIFF_2/*.kicad_pcb; do - mkdir -p /tmp/svg/$DIFF_2 - echo "Converting $f to .svg's Files will be saved to /tmp/svg" - /usr/local/bin/plot_pcbnew.py "$f" "/tmp/svg/$DIFF_2" + mkdir -p /tmp/svg/$DIFF_2 + echo "Converting $f to .svg's Files will be saved to /tmp/svg" + /usr/local/bin/plot_pcbnew.py "$f" "/tmp/svg/$DIFF_2" done -#TODO Use xargs or parallel to speed up +# Convert svg files into png +###################################### +# +# Parse the svg files in /tmp/svg/COMMIT_ID using Image Magick. +# The conversion trims the image to the active area using the 'trim' function. +# Fuzz is probably not nescessary (trim measures the corner pixel value and trims +# to the first non-corner coloured pixel. Fuzz allows for minor variation but as this is +# a generated svg, pixels should be white.) +# +# The .png files are created in the output directory. + + for p in /tmp/svg/$DIFF_1/*.svg; do - d="$(basename $p)" - echo "Converting $p to .png" - #echo "Output_Dir "$OUTPUT_DIR - #echo "Diff_1_dir" $DIFF_1 - #rsvg-convert -z 5 "$p" > "$OUTPUT_DIR/$DIFF_1/${d%%.*}.png" - convert -density $qual -fuzz 1% -trim +repage "$p" "$OUTPUT_DIR/$DIFF_1/${d%%.*}.png" + d=$(basename $p) + echo "Converting $p to .png" + convert -density $qual -fuzz 1% -trim +repage "$p" "$OUTPUT_DIR/$DIFF_1/${d%%.*}.png" + convert "$OUTPUT_DIR/$DIFF_1/${d%%.*}.png" -negate "$OUTPUT_DIR/$DIFF_1/${d%%.*}.png" done -#TODO Use xargs or parallel to speed up + + for p in /tmp/svg/$DIFF_2/*.svg; do - d="$(basename $p)" - echo "Converting $p to .png" -# pdftoppm -png -r 600 "$p" "$OUTPUT_DIR/$DIFF_2/${d%%.*}" -# rsvg-convert "$p" -d 300 -z 5 > "$OUTPUT_DIR/$DIFF_2/${d%%.*}" -# rsvg-convert -z 5 "$p" > "$OUTPUT_DIR/$DIFF_2/${d%%.*}.png" - convert -density $qual -fuzz 1% -trim +repage "$p" "$OUTPUT_DIR/$DIFF_2/${d%%.*}.png" - + d=$(basename $p) + echo "Converting $p to .png" + convert -density $qual -fuzz 1% -trim +repage "$p" "$OUTPUT_DIR/$DIFF_2/${d%%.*}.png" + convert "$OUTPUT_DIR/$DIFF_2/${d%%.*}.png" -negate "$OUTPUT_DIR/$DIFF_2/${d%%.*}.png" done -# Generate png diffs -#################### -#TODO Use xargs or parallel to speed up +# Generate png diffs between DIFF_1 and DIFF_2 +############################################## +# +# Originally the intention was to use the ImageMagic 'composite stereo 0' function to identify +# where items have moved but I could not get this to work. +# This flattens the original files to greyscale and they need to be converted +# back to rgb in order to be colourised. + for g in $OUTPUT_DIR/$DIFF_1/*.png; do - mkdir -p "$OUTPUT_DIR/diff-$DIFF_1-$DIFF_2" - echo "Generating composite image $OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g)" - #composite -stereo 0 -density 600 $OUTPUT_DIR/$DIFF_1/$(basename $g) $OUTPUT_DIR/$DIFF_2/$(basename $g) $OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g) - #convert $OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g) -trim -density 600 -fill grey -opaque black $OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g) - convert '(' $OUTPUT_DIR/$DIFF_1/$(basename $g) -flatten -grayscale Rec709Luminance ')' \ - '(' $OUTPUT_DIR/$DIFF_2/$(basename $g) -flatten -grayscale Rec709Luminance ')' \ - '(' -clone 0-1 -compose darken -composite ')' \ - -channel RGB -combine $OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g) + d=$(basename $g) + y=${d%.png} + layerName=${y##*-} + mkdir -p "$OUTPUT_DIR/diff-$DIFF_1-$DIFF_2" + echo "Generating composite image $OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g)" + convert '(' $OUTPUT_DIR/$DIFF_2/$(basename $g) -flatten -grayscale Rec709Luminance ')' \ + '(' $OUTPUT_DIR/$DIFF_1/$(basename $g) -flatten -grayscale Rec709Luminance ')' \ + '(' -clone 0-1 -compose darken -composite ')' \ + -channel RGB -combine $OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g) + convert "$OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g)" -fill ${!layerName} -fuzz 75% -opaque "#ffffff" "$OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g)" done +for p in $OUTPUT_DIR/$DIFF_1/*.png; do + d=$(basename $p) + y=${d%.png} + layerName=${y##*-} + echo "Converting $layerName to .png with colour "${!layerName} + convert "$OUTPUT_DIR/$DIFF_1/${d%%.*}.png" -define png:color-type=2 "$OUTPUT_DIR/$DIFF_1/${d%%.*}.png" + convert "$OUTPUT_DIR/$DIFF_1/${d%%.*}.png" -fill ${!layerName} -fuzz 75% -opaque "#ffffff" "$OUTPUT_DIR/$DIFF_1/${d%%.*}.png" +done + + +for p in $OUTPUT_DIR/$DIFF_2/*.png; do + d=$(basename $p) + y=${d%.png} + layerName=${y##*-} + echo "Converting $layerName to .png with colour "${!layerName} + convert "$OUTPUT_DIR/$DIFF_2/${d%%.*}.png" -define png:color-type=2 "$OUTPUT_DIR/$DIFF_2/${d%%.*}.png" + convert "$OUTPUT_DIR/$DIFF_2/${d%%.*}.png" -fill ${!layerName} -fuzz 75% -opaque "#ffffff" "$OUTPUT_DIR/$DIFF_2/${d%%.*}.png" +done + +# Setup web directories for web output +###################################### +# +# Remove index.html prior to streaming new data +# TODO Would be neater to put thumbs, tryptych, index and any .css sheet in a 'web' directory +# if [ -e $OUTPUT_DIR/index.html ] - then echo "An index.html file already exists. Remove it to regenerate" - exit + then rm $OUTPUT_DIR/index.html fi if [ -d thumbs ] - then echo "'thumbs' directory found" +then echo "'thumbs' directory found" else mkdir $OUTPUT_DIR/thumbs && echo "'thumbs' directory created" fi if [ -d tryptych ] - then echo "'tryptych' directory found" +then echo "'tryptych' directory found" else mkdir $OUTPUT_DIR/tryptych && echo "'tryptych' directory created" fi -cat >> $OUTPUT_DIR/index.html < and @@ -379,32 +505,37 @@ div.title {
$base
+
- +
+
- +
+
HTML + done + cat >>$OUTPUT_DIR/index.html<
diff --git a/kidiff_wc.sh b/kidiff_wc.sh index cdec8a3..6442a95 100755 --- a/kidiff_wc.sh +++ b/kidiff_wc.sh @@ -19,17 +19,24 @@ qual="100" # 952927 # convert F_Cu.png -fill "#952927" -fuzz 75% -opaque "#ffffff" test2.png +# Remove old plot files +rm -r /tmp/svg + +# Set directory for plotting OUTPUT_DIR="./plots" rm -r $OUTPUT_DIR -WEB_DIR=$OUTPUT_DIR"/web" -# TODO Have added this temprarily to simply remove all the plots prior to generating files. + +# TODO Have added this temporarily to simply remove all the plots prior to generating files. # Theoretically the script could check if the files have already been generated and then only generate the # missing files. This would permit multiple diff compares and you could also use an external diff tool like p4merge # but the disadvantage is that the resoultions have to match. It is also more complicated to script # Ideally one could request random compares within the web interface and there would # be 'on the fly' svg/png creation and diff showing. + # Try to keep the web components seperate from the images so that the images could be # looked at using a graphical diff viewer like p4merge. +# Set directory for web backend +WEB_DIR=$OUTPUT_DIR"/web" # TODO Might need to use a more complex strategy to cope with spaces in filename # using some varient of 'find . -name "*.pro" -print0 | xargs -0' @@ -49,35 +56,25 @@ B_SilkS="#481649" B_Mask="#943197" F_Mask="#943197" Edge_Cuts="#C9C83B" -In_1_Cu="#c2c200)" -In_2_Cu="#c200c2" +In1_Cu="#C2C200" +In2_Cu="#C200C2" +User_Dwgs="#C2C2C2" +User_Cmts="#000085" +User_Eco1="#008500" +User_Eco2="#C2C200" +B_Fab="#858585" +F_Fab="#C2C200" -#ColorPCBLayer_In1.Cu=rgba(#c2c200, 0.8) -#ColorPCBLayer_In2.Cu=rgba(194, 0, 194, 0.800) +# These are the colour definitions for the 'solarised' theme from pcbnew. +#ColorPCBLayer_F.Cu=rgb(221, 47, 44) #ColorPCBLayer_In3.Cu=rgba(194, 194, 194, 0.800) #ColorPCBLayer_In4.Cu=rgba(0, 132, 132, 0.800) #ColorPCBLayer_In5.Cu=rgba(0, 132, 0, 0.800) #ColorPCBLayer_In6.Cu=rgba(0, 0, 132, 0.800) -#ColorPCBLayer_B.Cu=rgba(0, 132, 0, 0.800) -#ColorPCBLayer_B.Adhes=rgba(0, 0, 132, 0.800) -#ColorPCBLayer_F.Adhes=rgba(132, 0, 132, 0.800) -#ColorPCBLayer_B.Paste=rgba(0, 194, 194, 0.800) -#ColorPCBLayer_F.Paste=rgba(132, 132, 132, 0.800) -#ColorPCBLayer_B.SilkS=rgba(132, 0, 132, 0.800) -#ColorPCBLayer_F.SilkS=rgba(0, 132, 132, 0.800) -#ColorPCBLayer_B.Mask=rgba(132, 132, 0, 0.800) -#ColorPCBLayer_F.Mask=rgba(132, 0, 132, 0.800) -#ColorPCBLayer_Dwgs.User=rgba(194, 194, 194, 0.800) -#ColorPCBLayer_Cmts.User=rgba(0, 0, 132, 0.800) -#ColorPCBLayer_Eco1.User=rgba(0, 132, 0, 0.800) -#ColorPCBLayer_Eco2.User=rgba(194, 194, 0, 0.800) -#ColorPCBLayer_Edge.Cuts=rgba(194, 194, 0, 0.800) #ColorPCBLayer_Margin=rgba(194, 0, 194, 0.800) #ColorPCBLayer_B.CrtYd=rgba(194, 194, 0, 0.800) #ColorPCBLayer_F.CrtYd=rgba(132, 132, 132, 0.800) -#ColorPCBLayer_B.Fab=rgba(132, 132, 132, 0.800) -#ColorPCBLayer_F.Fab=rgba(194, 194, 0, 0.800) #ColorTxtFrontEx=rgba(194, 194, 194, 0.800) #ColorTxtBackEx=rgba(0, 0, 132, 0.800) #ColorTxtInvisEx=rgba(132, 132, 132, 0.800) @@ -88,6 +85,9 @@ In_2_Cu="#c200c2" #ColorViaBBlindEx=rgba(132, 132, 0, 0.800) #ColorViaMicroEx=rgba(0, 132, 132, 0.800) #ColorNonPlatedEx=rgba(194, 194, 0, 0.800) + + + ######################################################### # Find the .kicad_pcb files that differ between commits # ######################################################### @@ -229,7 +229,8 @@ done # # Originally the intention was to use the ImageMagic 'composite stereo 0' function to identify # where items have moved but I could not get this to work. -# -flatten -grayscale Rec709Luminance +# This flattens the original files to greyscale and they need to be converted +# back to rgb in order to be colourised. for g in $OUTPUT_DIR/$DIFF_1/*.png; do d=$(basename $g) @@ -237,8 +238,8 @@ for g in $OUTPUT_DIR/$DIFF_1/*.png; do layerName=${y##*-} mkdir -p "$OUTPUT_DIR/diff-$DIFF_1-$DIFF_2" echo "Generating composite image $OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g)" - convert '(' $OUTPUT_DIR/$DIFF_1/$(basename $g) -flatten -grayscale Rec709Luminance ')' \ - '(' $OUTPUT_DIR/$DIFF_2/$(basename $g) -flatten -grayscale Rec709Luminance ')' \ + convert '(' $OUTPUT_DIR/$DIFF_2/$(basename $g) -flatten -grayscale Rec709Luminance ')' \ + '(' $OUTPUT_DIR/$DIFF_1/$(basename $g) -flatten -grayscale Rec709Luminance ')' \ '(' -clone 0-1 -compose darken -composite ')' \ -channel RGB -combine $OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g) convert "$OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g)" -fill ${!layerName} -fuzz 75% -opaque "#ffffff" "$OUTPUT_DIR/diff-$DIFF_1-$DIFF_2/$(basename $g)" @@ -254,7 +255,6 @@ for p in $OUTPUT_DIR/$DIFF_1/*.png; do done - for p in $OUTPUT_DIR/$DIFF_2/*.png; do d=$(basename $p) y=${d%.png} @@ -297,7 +297,7 @@ cat >> $OUTPUT_DIR/index.html <<_HEAD_ + - - +
$base
-
$base
+ - -
+
+ +
+ +
+ +
+ +
-
-
- -
-
- + + + +
$DIFF_2
+
HTML done diff --git a/plot_pcbnew.py b/plot_pcbnew.py index 84a2af4..b024e9f 100755 --- a/plot_pcbnew.py +++ b/plot_pcbnew.py @@ -21,9 +21,9 @@ plotDir = filePath popt.SetOutputDirectory(plotDir) popt.SetPlotFrameRef(False) -popt.SetLineWidth(pcbnew.FromMM(0.15)) +popt.SetLineWidth(pcbnew.FromMM(0.1)) popt.SetAutoScale(False) -popt.SetScale(1) +popt.SetScale(2) popt.SetMirror(False) popt.SetUseGerberAttributes(True) popt.SetExcludeEdgeLayer(False) @@ -48,13 +48,21 @@ layers = [ ("B_Mask", pcbnew.B_Mask, "Mask bottom"), ("F_Mask", pcbnew.F_Mask, "Mask top"), ("Edge_Cuts", pcbnew.Edge_Cuts, "Edges"), - ("In_1_Cu", pcbnew.In1_Cu, "Inner1"), - ("In_2_Cu", pcbnew.In2_Cu, "Inner2") + ("In1_Cu", pcbnew.In1_Cu, "Inner1"), + ("In2_Cu", pcbnew.In2_Cu, "Inner2"), + ("User_Dwgs", pcbnew.Dwgs_User, "Dwgs_User"), + ("User_Cmts", pcbnew.Cmts_User, "Comments_User"), + ("User_Eco1", pcbnew.Eco1_User, "ECO1"), + ("User_Eco2", pcbnew.Eco2_User, "ECO2"), + ("B_Fab", pcbnew.B_Fab, "Fab bottom"), + ("F_Fab", pcbnew.F_Fab, "Fab top"), ] # Parse layers - might need more than these! # popt.SetColor(COLOR4D(0.050, 0.050, 0.050, 0.1)) -# Ideally would set colour of layer with the 'SetColor' method which was previosly descibed with colour names -# e.g.popt.SetColor(YELLOW) - this does not work and, although the COLOR4D doesn't cause an error it doesn't work. +# Ideally would set colour of layer with the 'SetColor' method which was +# previously described with colour names +# e.g.popt.SetColor(YELLOW) +# this does not work. COLOR4D doesn't cause an error but also doesn't work. # Nor does setting an integer work. for layer_info in layers: diff --git a/style.css b/style.css index 387b72e..9f8134b 100644 --- a/style.css +++ b/style.css @@ -22,19 +22,20 @@ TODO Need to differentiate the .responsive tag between the index and tryptych vi div.desc { padding: 15px; text-align: center; - font: 20px arial, sans-serif; + font: 15px arial, sans-serif; background: #ffffff; } div.desc1 { padding: 15px; text-align: center; - font: 20px arial, sans-serif; + font: 15px arial, sans-serif; background: #43FF01; } + div.desc2 { padding: 15px; text-align: center; - font: 20px arial, sans-serif; + font: 15px arial, sans-serif; background: #F40008; } div.title { @@ -43,40 +44,22 @@ TODO Need to differentiate the .responsive tag between the index and tryptych vi font: 30px arial, sans-serif; color: #496075; } - * { - box-sizing: border-box; - } - - .responsive { - padding: 0 6px; - float: left; - width: 33.332%; - } - - @media only screen and (max-width: 700px){ - .responsive { - width: 49.99999%; - margin: 6px 0; - } - } - - @media only screen and (max-width: 500px){ - .responsive { - width: 100%; - } - } - - .clearfix:after { - content: ""; - display: table; - clear: both; - } - * { box-sizing: border-box; } +/* + +Block for Tryptych + + .responsive { + padding: 0 6px; + float: left; + width: 33.332%; + } +*/ + .responsive { padding: 0 6px; float: left; @@ -102,30 +85,6 @@ TODO Need to differentiate the .responsive tag between the index and tryptych vi clear: both; } - div.desc { - padding: 15px; - text-align: center; - font: 20px arial, sans-serif; - } - div.desc1 { - padding: 15px; - text-align: left; - align: middle; - font: 20px arial, sans-serif; - color: #FFFFFF; - } - div.desc2 { - padding: 15px; - text-align: left; - font: 20px arial, sans-serif; - color: #FFFFFF; - } - div.title { - padding: 15px; - text-align: left; - font: 30px arial, sans-serif; - color: #496075; - } .box { float: left; width: 20px;