Merge remote-tracking branch 'hw-template/master'
This commit is contained in:
commit
17ca9d2bf4
|
@ -42,7 +42,7 @@ task :default => [:version,:print,:notes,:photo,:gerber]
|
||||||
|
|
||||||
desc "create release file"
|
desc "create release file"
|
||||||
release = "hardware-release_v#{version}.tar.gz"
|
release = "hardware-release_v#{version}.tar.gz"
|
||||||
task :release => release
|
task :release => [:gerber,release]
|
||||||
CLOBBER.include(release)
|
CLOBBER.include(release)
|
||||||
|
|
||||||
desc "set version in schematic and layout"
|
desc "set version in schematic and layout"
|
||||||
|
@ -82,12 +82,14 @@ task :verify => vsch do |t|
|
||||||
puts "not all refdes uniq" unless uniq
|
puts "not all refdes uniq" unless uniq
|
||||||
puts "not all refdes numbered" unless numbered
|
puts "not all refdes numbered" unless numbered
|
||||||
end
|
end
|
||||||
|
=end
|
||||||
|
|
||||||
desc "convert schematic to pcb layout"
|
desc "convert schematic to pcb layout"
|
||||||
task :sch2pcb => vsch do |t|
|
task :sch2pcb do
|
||||||
sh "gsch2pcb #{t.prerequisites[0]} --elements-dir #{File.dirname(__FILE__)}/lib/footprints --skip-m4 --output-name #{target}"
|
targets.each do |target|
|
||||||
|
sh "gsch2pcb #{target[:vsch]} --elements-dir #{File.dirname(__FILE__)}/lib/footprints --skip-m4 --output-name #{target[:name]}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
=end
|
|
||||||
|
|
||||||
photos = targets.collect{|target| ["#{target[:name]}_layout-top.png","#{target[:name]}_layout-bottom.png"]}.flatten
|
photos = targets.collect{|target| ["#{target[:name]}_layout-top.png","#{target[:name]}_layout-bottom.png"]}.flatten
|
||||||
desc "render layout"
|
desc "render layout"
|
||||||
|
@ -95,19 +97,22 @@ task :photo => photos
|
||||||
CLOBBER.include(photos)
|
CLOBBER.include(photos)
|
||||||
|
|
||||||
desc "export gerber"
|
desc "export gerber"
|
||||||
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"]
|
task :gerber do
|
||||||
gerbers = targets.collect{|target| GERBERS.collect{|suffix| target[:name]+suffix}}.flatten
|
targets.each do |target|
|
||||||
task :gerber => gerbers
|
sh "pcb -x gerber --gerberfile #{target[:name]} --all-layers #{target[:vpcb]}"
|
||||||
CLOBBER.include(gerbers)
|
end
|
||||||
|
end
|
||||||
|
CLOBBER.include("*.gbr")
|
||||||
|
CLOBBER.include("*.cnc")
|
||||||
|
|
||||||
desc "reformat gerber and drill output (some programs like LPKF CircuitPro have difficulties with gEDA pcb output)"
|
desc "reformat gerber and drill output (some programs like LPKF CircuitPro have difficulties with gEDA pcb output)"
|
||||||
task :reformat => gerbers do
|
task :reformat do
|
||||||
gerbers.each do |gerber|
|
Dir.foreach(".") do |file|
|
||||||
next unless File.exist? gerber
|
next unless File.file? file
|
||||||
if gerber.end_with? ".gbr" then
|
if file.end_with? ".gbr" then
|
||||||
sh "gerbv --export=rs274x --output=#{gerber} #{gerber}"
|
sh "gerbv --export=rs274x --output=#{file} #{file}"
|
||||||
elsif gerber.end_with? ".cnc" then
|
elsif file.end_with? ".cnc" then
|
||||||
sh "gerbv --export=drill --output=#{gerber} #{gerber}"
|
sh "gerbv --export=drill --output=#{file} #{file}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -231,17 +236,10 @@ targets.each do |target|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "export gerber (and drill) files from layout"
|
|
||||||
targets.each do |target|
|
|
||||||
GERBERS.each do |suffix|
|
|
||||||
file target[:name]+suffix => target[:vpcb] do |t|
|
|
||||||
sh "pcb -x gerber --gerberfile #{target[:name]} --all-layers #{t.prerequisites.join(' ')}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
desc "create archive with release files"
|
desc "create archive with release files"
|
||||||
|
SOURCES = targets.collect{|target| [target[:sch],target[:pcb]]}.flatten
|
||||||
ATTACHMENTS = ["cern_ohl_v_1_2_howto.pdf","CHANGES.txt","LICENSE.txt","PRODUCT.txt"]
|
ATTACHMENTS = ["cern_ohl_v_1_2_howto.pdf","CHANGES.txt","LICENSE.txt","PRODUCT.txt"]
|
||||||
file release => prints+notes+photos+gerbers+ATTACHMENTS do |t|
|
file release => SOURCES+prints+notes+photos+ATTACHMENTS do |t|
|
||||||
sh "tar -acf '#{t.name}' #{t.prerequisites.join(' ')}"
|
gerbers = Dir.entries(".").select{|file| file.end_with? ".gbr" or file.end_with? ".cnc"}
|
||||||
|
sh "tar -acf '#{t.name}' #{(t.prerequisites+gerbers).join(' ')}"
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue