diff --git a/pcb/Rakefile b/pcb/Rakefile index 800e991..995f84c 100644 --- a/pcb/Rakefile +++ b/pcb/Rakefile @@ -63,16 +63,15 @@ task :verify => vsch do |t| puts "not all refdes numbered" unless numbered end +PHOTOS = ["#{target}_layout-top.png","#{target}_layout-bottom.png"] desc "render layout" -task :photo => ["#{target}_layout-top.png","#{target}_layout-bottom.png"] -CLOBBER.include("#{target}_layout-top.png") -CLOBBER.include("#{target}_layout-bottom.png") +task :photo => PHOTOS +CLOBBER.include(PHOTOS) +GERBERS = [".top.gbr",".topmask.gbr",".toppaste.gbr",".topsilk.gbr",".bottom.gbr",".bottommask.gbr",".bottompaste.gbr",".bottomsilk.gbr",".outline.gbr",".fab.gbr",".plated-drill.cnc",".unplated-drill.cnc"].collect{|suffix| target+suffix} desc "export gerber" -task :gerber => vpcb do |t| - sh "pcb -x gerber --gerberfile #{target} --all-layers #{t.prerequisites.join(' ')}" -end -CLOBBER.include([".top.gbr",".topmask.gbr",".toppaste.gbr",".topsilk.gbr",".bottom.gbr",".bottommask.gbr",".bottompaste.gbr",".bottomsilk.gbr",".outline.gbr",".fab.gbr",".plated-drill.cnc",".unplated-drill.cnc"].collect{|suffix| target+suffix}) +task :gerber => GERBERS +CLOBBER.include(GERBERS) # ================ @@ -131,6 +130,7 @@ file vsch => sch do |t| sh "sed -i 's/\\(revision=\\)\\$Revision\\$/\\1#{sch_rev}/' #{t.name}" end +desc "copy layout to version it: include version, date, and run teardrops when available" file vpcb => pcb do |t| sh "cp #{t.prerequisites.join(' ')} #{t.name}" # on \ is to prevent ruby interpreting it, th other is for sed @@ -139,6 +139,10 @@ file vpcb => pcb do |t| sh "sed -i 's/\\$version\\$/#{version_revision}/' #{t.name}" # the date sh "sed -i 's/\\$date\\$/#{date}/' #{t.name}" + # run teardrop for vias and pins + if File.exist? "#{Dir.home}/.pcb/plugins/teardrops.so" then + sh "pcb --action-string \"djopt(splitlines) Teardrops() s() q()\" #{t.name}" + end end file "#{target}_schematic.pdf" => vsch do |t| @@ -168,3 +172,10 @@ end file "#{target}_layout-bottom.png" => vpcb do |t| sh "pcb -x png --dpi 600 --format PNG --photo-mode --photo-flip-x --outfile #{target}_layout-bottom.png #{t.prerequisites.join(' ')}" end + +GERBERS.each do |gerber| + file gerber => vpcb do |t| + puts "make #{t.name}" + sh "pcb -x gerber --gerberfile #{target} --all-layers #{t.prerequisites.join(' ')}" + end +end