| #!/usr/bin/env python
|
| import pandas as pd
|
|
|
| HEADER = '''(kicad_symbol_lib
|
| (version 20231120)
|
| (generator "kicad_symbol_editor")
|
| (generator_version "8.0")'''
|
|
|
| def gen_sym(data):
|
| SYM = f''' (symbol "{data['value']}"
|
| (pin_numbers hide)
|
| (pin_names
|
| (offset 0.254) hide)
|
| (exclude_from_sim no)
|
| (in_bom yes)
|
| (on_board yes)
|
| (property "Reference" "R"
|
| (at 0.762 0.508 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (justify left)
|
| )
|
| )
|
| (property "Value" "{data['value']}"
|
| (at 0.762 -1.016 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (justify left)
|
| )
|
| )
|
| (property "Footprint" "{data['footprint']}"
|
| (at 23.114 1.778 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (property "Datasheet" "{data['datasheet']}"
|
| (at 30.988 0 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (property "Description" "{data['description']}"
|
| (at 21.59 3.81 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (property "manf_num" "{data['manf_num']}"
|
| (at 17.526 -8.89 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (property "Tol" "{data['tol']}"
|
| (at 9.652 -5.334 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (property "V" "{data['V']}"
|
| (at 9.652 -1.778 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (property "W" "{data['W']}"
|
| (at 10.16 -3.556 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (property "mass (g)" "{data['mass']}"
|
| (at 10.668 -7.112 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (property "mouser#" "{data['mouser#']}"
|
| (at 19.05 -10.668 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (property "ki_keywords" "R resistor"
|
| (at 0 0 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (property "ki_fp_filters" "R_*"
|
| (at 0 0 0)
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| (hide yes)
|
| )
|
| )
|
| (symbol "{data['value']}_0_1"
|
| (rectangle
|
| (start -0.762 1.778)
|
| (end 0.762 -1.778)
|
| (stroke
|
| (width 0.2032)
|
| (type default)
|
| )
|
| (fill
|
| (type none)
|
| )
|
| )
|
| )
|
| (symbol "{data['value']}_1_1"
|
| (pin passive line
|
| (at 0 2.54 270)
|
| (length 0.762)
|
| (name "~"
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| )
|
| )
|
| (number "1"
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| )
|
| )
|
| )
|
| (pin passive line
|
| (at 0 -2.54 90)
|
| (length 0.762)
|
| (name "~"
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| )
|
| )
|
| (number "2"
|
| (effects
|
| (font
|
| (size 1.27 1.27)
|
| )
|
| )
|
| )
|
| )
|
| )
|
| )'''
|
| return SYM
|
|
|
| # data = {}
|
| # data['value'] = '200k'
|
| # data['footprint'] = 'Resistor_SMD:R_1206_3216Metric'
|
| # data['datasheet'] = 'https://www.vishay.com/docs/28881/tnpve3.pdf'
|
| # data['description'] = 'High Voltage Thin Film, 1206'
|
| # data['manf_num'] = 'TNPV1206200kBEEN'
|
| # data['tol'] = '0.1%'
|
| # data['V'] = '700V'
|
| # data['W'] = '0.25V'
|
| # data['mass'] = '0.0162'
|
| # data['mouser#'] = '71-TNPV1206200kBEEN'
|
| #print(gen_sym(data))
|
|
|
| fn = 'resistor.csv'
|
| df = pd.read_csv(fn)
|
| print(HEADER)
|
| for i,row in df.iterrows():
|
| data = {'value': row['Value'], 'footprint':row['Footprint'],
|
| 'datasheet':row['Datasheet'],'description':row['Description'],
|
| 'manf_num':row['manf_num'],'tol':row['Tol'], 'V':row['V'],
|
| 'W':row['W'],'mass':row['mass (g)'],'mouser#':row['mouser#']
|
| }
|
| print(gen_sym(data))
|
|
|
| print(')')
|