# # Example python script to generate a BOM from a KiCad generic netlist # """ @package Output: old OrcadPcb2 netlist format Sorted By: Ref Command line: python "pathToFile/netlist_form_OrcadPcb2.py" "%I" "%O.net" """ from __future__ import print_function # Import the KiCad python helper module import kicad_netlist_reader import sys # A helper function to convert a UTF8/Unicode/locale string read in netlist # for python2 or python3 (Windows/unix) def fromNetlistText( aText ): if sys.platform.startswith('win32'): try: return aText.encode('utf-8').decode('cp1252') except UnicodeDecodeError: return aText else: return aText # Generate an instance of a generic netlist, and load the netlist tree from # the command line option. If the file doesn't exist, execution will stop netlist = kicad_netlist_reader.netlist(sys.argv[1]) # Open a file to write to, if the file cannot be opened output to stdout # instead canOpenFile = True try: f = open(sys.argv[2], 'wb') except IOError: e = "Can't open output file for writing: " + sys.argv[2] print(__file__, ":", e, sys.stderr) f = sys.stdout canOpenFile = False components = netlist.getInterestingComponents( excludeBoard=True ) row ="" ''' Netlist header: ( { EESchema Netlist Version 1.1 02/09/2021 11:10:00 Eeschema (5.99.0-12178-ge03257b55f-dirty)} ''' ''' Generate line ( { EESchema Netlist Version 1.1