osmotoserial/hardware/lib/footprints/connector_barrel_cui_PJ-043...

66 lines
2.4 KiB
Ruby
Executable File

#!/usr/bin/env ruby
# encoding: utf-8
# written for ruby 2.1.0
# generate a footprint (see script for more information)
require_relative 'element'
# global dimensions
UNIT = "mm"
SILKSCREEN = 0.2
SOLDERMASK = 0.075
CLEARANCE = 0.4
name = File.basename(__FILE__,".rb")+".fp"
File.open(name,"w") do |fp|
# put some information
fp.puts "# footprint for a 1.1/3.0mm jack barrel"
fp.puts "# manufacturer: CUI"
fp.puts "# part number: PJ-043-SMT-TR"
fp.puts "# datasheet: http://www.cui.com/product/resource/digikeypdf/pj-043-smt.pdf"
# define element
# center is center of device
fp.puts element("Element",["","barrel","","CUI PJ-043-SMT-TR",:"0",:"0",:"0",:"0",:"0",:"100",""])
fp.puts "("
# outline
x1 = -4.5-2.5-1.5
x2 = x1+1.5+9.5-1.2/2
y1 = -2.3
y2 = y1
fp.puts element("ElementLine",[x1,y1,x1=x2,y1=y2,SILKSCREEN])
y2 = -1.6
fp.puts element("ElementLine",[x1,y1,x1=x2,y1=y2,SILKSCREEN])
x2 = 10.5-2.5-4.5
fp.puts element("ElementLine",[x1,y1,x1=x2,y1=y2,SILKSCREEN])
y2 = 0.6
fp.puts element("ElementLine",[x1,y1,x1=x2,y1=y2,SILKSCREEN])
x2 = -4.5-2.5+9.9-1
fp.puts element("ElementLine",[x1,y1,x1=x2,y1=y2,SILKSCREEN])
y2 = 6.0-2.3
fp.puts element("ElementLine",[x1,y1,x1=x2,y1=y2,SILKSCREEN])
x2 = -4.5-2.5
fp.puts element("ElementLine",[x1,y1,x1=x2,y1=y2,SILKSCREEN])
y2 = 4.6/2
fp.puts element("ElementLine",[x1,y1,x1=x2,y1=y2,SILKSCREEN])
x2 = x1-1.5
fp.puts element("ElementLine",[x1,y1,x1=x2,y1=y2,SILKSCREEN])
y2 = -4.6/2
fp.puts element("ElementLine",[x1,y1,x1=x2,y1=y2,SILKSCREEN])
# holes
fp.puts element("Pin",[0,0,1.1,0,1.1,1.1,"","","hole"])
fp.puts element("Pin",[-4.5,0,1.1,0,1.1,1.1,"","","hole"])
# pads
fp.puts element("Pad",[-4.5-2.5+4.0-2.6/2+1.9/2,-2.3-1.9/2,-4.5-2.5+4.0+2.6/2-1.9/2,-2.3-1.9/2,1.9,CLEARANCE,1.9+2*SOLDERMASK,"","4","square"])
fp.puts element("Pad",[-4.5-2.5+4.0-2.6/2+1.9/2,6.0-2.3+1.9/2,-4.5-2.5+4.0+2.6/2-1.9/2,6.0-2.3+1.9/2,1.9,CLEARANCE,1.9+2*SOLDERMASK,"","4","square"])
fp.puts element("Pad",[-4.5-2.5+9.5-2.2/2+2.1/2,-1.6-2.1/2,-4.5-2.5+9.5+2.2/2-2.1/2,-1.6-2.1/2,2.1,CLEARANCE,2.1+2*SOLDERMASK,"","3","square"])
fp.puts element("Pad",[-4.5-2.5+9.9-2.2/2+2.1/2,0.6+2.1/2,-4.5-2.5+9.9+2.2/2-2.1/2,0.6+2.1/2,2.1,CLEARANCE,2.1+2*SOLDERMASK,"","1","square"])
fp.puts element("Pad",[-4.5-2.5+7.2-2.2/2+2.1/2,2.8+2.1/2,-4.5-2.5+7.2+2.2/2-2.1/2,2.8+2.1/2,2.1,CLEARANCE,2.1+2*SOLDERMASK,"","2","square"])
# end of element
fp.puts ")"
end