diff --git a/kiplot/bom/csv_writer.py b/kiplot/bom/csv_writer.py
index 44d35287..6366d9ab 100644
--- a/kiplot/bom/csv_writer.py
+++ b/kiplot/bom/csv_writer.py
@@ -53,6 +53,7 @@ def write_csv(filename, ext, groups, headings, head_names, cfg):
writer.writerow(["Variant:", ' + '.join(cfg.variant)])
writer.writerow(["Revision:", cfg.revision])
writer.writerow(["Date:", cfg.date])
+ writer.writerow(["KiCad Version:", cfg.kicad_version])
if not cfg.csv.hide_stats_info:
writer.writerow(["Statistics:"])
writer.writerow(["Component Groups:", cfg.n_groups])
@@ -60,6 +61,5 @@ def write_csv(filename, ext, groups, headings, head_names, cfg):
writer.writerow(["Fitted Components:", cfg.n_fitted])
writer.writerow(["Number of PCBs:", cfg.number])
writer.writerow(["Total components:", cfg.n_build])
- # writer.writerow(["KiCad Version:", net.getTool()]) TODO?
return True
diff --git a/kiplot/bom/html_writer.py b/kiplot/bom/html_writer.py
index d30784e3..20a21d31 100644
--- a/kiplot/bom/html_writer.py
+++ b/kiplot/bom/html_writer.py
@@ -212,6 +212,7 @@ def write_html(filename, groups, headings, head_names, cfg):
html.write(" Variant: {}
\n".format(', '.join(cfg.variant)))
html.write(" Revision: {}
\n".format(cfg.revision))
html.write(" Date: {}
\n".format(cfg.date))
+ html.write(" KiCad Version: {}
\n".format(cfg.kicad_version))
html.write(' \n')
html.write('
\n')
if not cfg.html.hide_stats_info:
diff --git a/kiplot/bom/xlsx_writer.py b/kiplot/bom/xlsx_writer.py
index 179436d3..b9e4964b 100644
--- a/kiplot/bom/xlsx_writer.py
+++ b/kiplot/bom/xlsx_writer.py
@@ -292,7 +292,7 @@ def write_xlsx(filename, groups, col_fields, head_names, cfg):
rc = add_info(worksheet, column_widths, rc, col1, fmt_info, "Variant:", ' + '.join(cfg.variant))
rc = add_info(worksheet, column_widths, rc, col1, fmt_info, "Revision:", cfg.revision)
rc = add_info(worksheet, column_widths, rc, col1, fmt_info, "Date:", cfg.date)
- # row_count = add_info(worksheet, column_widths, row_count, fmt_info, "KiCad Version:", ) TODO?
+ rc = add_info(worksheet, column_widths, rc, col1, fmt_info, "KiCad Version:", cfg.kicad_version)
col1 += 2
rc = r_info_start
if not cfg.xlsx.hide_stats_info:
diff --git a/kiplot/bom/xml_writer.py b/kiplot/bom/xml_writer.py
index bddb394e..6ddc8d39 100644
--- a/kiplot/bom/xml_writer.py
+++ b/kiplot/bom/xml_writer.py
@@ -23,7 +23,7 @@ def write_xml(filename, groups, headings, head_names, cfg):
attrib['Schematic_Date'] = cfg.date
attrib['PCB_Variant'] = ', '.join(cfg.variant)
# attrib['BOM_Date'] = net.getDate() same as schematic
- # attrib['KiCad_Version'] = net.getTool() TODO?
+ attrib['KiCad_Version'] = cfg.kicad_version
attrib['Component_Groups'] = str(cfg.n_groups)
attrib['Component_Count'] = str(cfg.n_total)
attrib['Fitted_Components'] = str(cfg.n_fitted)
diff --git a/kiplot/gs.py b/kiplot/gs.py
index 1c55857e..af83c9b3 100644
--- a/kiplot/gs.py
+++ b/kiplot/gs.py
@@ -33,6 +33,7 @@ class GS(object):
n = datetime.now()
today = n.strftime('%Y-%m-%d')
time = n.strftime('%H-%M-%S')
+ kicad_version = ''
# Data from the SCH because it doesn't have a Python API
sch_title = None
sch_date = None
diff --git a/kiplot/kiplot.py b/kiplot/kiplot.py
index cdabb2bc..83e1cb65 100644
--- a/kiplot/kiplot.py
+++ b/kiplot/kiplot.py
@@ -119,6 +119,8 @@ def load_board(pcb_file=None):
def load_sch():
+ GS.kicad_version = pcbnew.GetBuildVersion()
+ logger.debug('KiCad: '+GS.kicad_version)
GS.check_sch()
GS.sch = Schematic()
try:
diff --git a/kiplot/out_bom.py b/kiplot/out_bom.py
index a24d2489..2e9dd3f0 100644
--- a/kiplot/out_bom.py
+++ b/kiplot/out_bom.py
@@ -388,6 +388,7 @@ class BoMOptions(BaseOptions):
self.date = GS.sch_date
self.revision = GS.sch_rev
self.debug_level = GS.debug_level
+ self.kicad_version = GS.kicad_version
# Get the components list from the schematic
comps = GS.sch.get_components()
try:
|