#!/usr/bin/env ruby # encoding: utf-8 # ruby: 3.0.1 # number of possible pins variations = (2..12).to_a puts "name: KF141R-2.54" puts "description: spring loaded terminal, with lever, 0.1 in/2.54 mm pitch" puts "variations: " + variations.collect{|p| p.to_s+"P"}*", " puts "datasheet: https://datasheet.lcsc.com/lcsc/2001151504_Cixi-Kefa-Elec-KF141R-2-54-10P_C475132.pdf" puts "" variations.each do |v| puts "pinout@#{v}P: 1-#{v}" puts "" puts "schematic@#{v}P:" puts " suffix: -#{v}P" puts " symbol: connector" puts " left: 1-#{v}" puts "" puts "housing@#{v}P:" puts " pattern: custom" puts " options: polarized" puts " height: 13.0" puts " pitch: 2.54" puts " leadHeight: 3.50" puts " leadWidth: 0.70" puts " leadLength: 0.50" puts " holeDiameter: 1.2" puts " columnCount: 1" puts " rowCount: #{v}" puts " bodyWidth: 13.80" puts " bodyLength: #{(2.54 * v + 2.54).round(2)}" #puts " bodyPosition: 0, 0.95" # alternative is to center on the pins section only puts " numbers: " + (v.times.collect {|i| [i + 1]*2}.flatten * ", ") print " padPosition: " positions = [] v.times do |i| positions << [13.80/2 - 2.85 - 5.08, (2.54 * v + 2.54) / -2 + 0.95 + i * 2.54] positions << [13.80/2 - 2.85, (2.54 * v + 2.54) / -2 + 0.95 + i * 2.54] end positions.flatten! positions.collect!{|p| p.round(3)} print positions * ", " puts "" end