#!/bin/sh pcb=$1.pcb pcb -x png --dpi 100 --photo-mode $pcb png=$1.png png_dims=`file $png | awk -F "[,]" '{ sub("x", " ", $2); print $2}'` awk -v "png_dims=$png_dims" -v "png_url=$png" ' BEGIN { q = "\"" sub("^ *", "", png_dims) sub(" *$", "", png_dims) split(png_dims, A, " +") png_sx = A[1] png_sy = A[2] ne = 0 te = 0 } # Polygon("clearpoly") # ( # [5000 2500] [277500 2500] [277500 547500] [5000 547500] # ) function bump(idx, x, y) { if ((E[idx, "minx"] == "") || (x < E[idx, "minx"])) E[idx, "minx"] = x if ((E[idx, "maxx"] == "") || (x > E[idx, "maxx"])) E[idx, "maxx"] = x if ((E[idx, "miny"] == "") || (y < E[idx, "miny"])) E[idx, "miny"] = y if ((E[idx, "maxy"] == "") || (y > E[idx, "maxy"])) E[idx, "maxy"] = y } /^[ \t]*Polygon[(]/ { getline getline gsub("[[\\]]", "", $0) for(n = 1; n < NF; n+=2) bump(ne, $n, $(n+1)) ne++ next } # Text[296338 119704 0 670 "PARAMETRIC" "clearline"] /^[ \t]*Text[[]/ { sub("^[ \t]*Text[[]", "", $0) T[te, "x"] = $1 T[te, "y"] = $2 T[te, "text"] = $5 gsub("[\"]", "", T[te, "text"]) te++ next } #Via[260000 120000 7874 4000 0 3150 "" ""] /^[ \t]*Via *[[]/ { sub("Via *[[]", "", $0) pcb_sx = $1 pcb_sy = $2 next } END { scale_x = png_sx/pcb_sx scale_y = png_sy/pcb_sy print "
" print "" print "" print "" } ' < $pcb > map.html