From 296443137f4288cb030e92859ccfbe3204bc1088 Mon Sep 17 00:00:00 2001 From: rahulp13 Date: Tue, 17 Mar 2020 14:55:41 +0530 Subject: initial commit --- bin/_cvpcb.kiface | Bin 0 -> 4750800 bytes bin/_eeschema.kiface | Bin 0 -> 5314595 bytes bin/_gerbview.kiface | Bin 0 -> 2111018 bytes bin/_pcb_calculator.kiface | Bin 0 -> 1759992 bytes bin/_pcbnew.kiface | Bin 0 -> 14756982 bytes bin/_pl_editor.kiface | Bin 0 -> 1870610 bytes bin/bitmap2component.exe | Bin 0 -> 1040896 bytes bin/dxf2idf.exe | Bin 0 -> 833536 bytes bin/easy_install-script.py | 12 + bin/easy_install.exe | Bin 0 -> 22016 bytes bin/easy_install.exe.manifest | 15 + bin/eeschema.exe | Bin 0 -> 568320 bytes bin/gdb.exe | Bin 0 -> 7796242 bytes bin/gerbview.exe | Bin 0 -> 567808 bytes bin/glew32.dll | Bin 0 -> 402757 bytes bin/idf2vrml.exe | Bin 0 -> 415232 bytes bin/idfcyl.exe | Bin 0 -> 65024 bytes bin/idfrect.exe | Bin 0 -> 54272 bytes bin/kicad.exe | Bin 0 -> 1211392 bytes bin/libFWOSPlugin.dll | Bin 0 -> 26095 bytes bin/libPTKernel.dll | Bin 0 -> 323879 bytes bin/libTKBO.dll | Bin 0 -> 1742143 bytes bin/libTKBRep.dll | Bin 0 -> 867207 bytes bin/libTKBin.dll | Bin 0 -> 332170 bytes bin/libTKBinL.dll | Bin 0 -> 338152 bytes bin/libTKBinTObj.dll | Bin 0 -> 76683 bytes bin/libTKBinXCAF.dll | Bin 0 -> 141411 bytes bin/libTKBool.dll | Bin 0 -> 3484690 bytes bin/libTKCAF.dll | Bin 0 -> 707414 bytes bin/libTKCDF.dll | Bin 0 -> 414810 bytes bin/libTKFeat.dll | Bin 0 -> 986678 bytes bin/libTKFillet.dll | Bin 0 -> 2527922 bytes bin/libTKG2d.dll | Bin 0 -> 492932 bytes bin/libTKG3d.dll | Bin 0 -> 1076311 bytes bin/libTKGeomAlgo.dll | Bin 0 -> 5115544 bytes bin/libTKGeomBase.dll | Bin 0 -> 4788003 bytes bin/libTKHLR.dll | Bin 0 -> 1234229 bytes bin/libTKIGES.dll | Bin 0 -> 3755204 bytes bin/libTKLCAF.dll | Bin 0 -> 875873 bytes bin/libTKMath.dll | Bin 0 -> 2465678 bytes bin/libTKMesh.dll | Bin 0 -> 491004 bytes bin/libTKMeshVS.dll | Bin 0 -> 438990 bytes bin/libTKNIS.dll | Bin 0 -> 222112 bytes bin/libTKOffset.dll | Bin 0 -> 1090354 bytes bin/libTKOpenGl.dll | Bin 0 -> 943843 bytes bin/libTKPCAF.dll | Bin 0 -> 299918 bytes bin/libTKPLCAF.dll | Bin 0 -> 764475 bytes bin/libTKPShape.dll | Bin 0 -> 1051501 bytes bin/libTKPrim.dll | Bin 0 -> 341939 bytes bin/libTKSTEP.dll | Bin 0 -> 2788781 bytes bin/libTKSTEP209.dll | Bin 0 -> 792713 bytes bin/libTKSTEPAttr.dll | Bin 0 -> 696230 bytes bin/libTKSTEPBase.dll | Bin 0 -> 2614060 bytes bin/libTKSTL.dll | Bin 0 -> 203540 bytes bin/libTKService.dll | Bin 0 -> 396521 bytes bin/libTKShHealing.dll | Bin 0 -> 2130629 bytes bin/libTKShapeSchema.dll | Bin 0 -> 1058955 bytes bin/libTKStdLSchema.dll | Bin 0 -> 381177 bytes bin/libTKStdSchema.dll | Bin 0 -> 285772 bytes bin/libTKTObj.dll | Bin 0 -> 236728 bytes bin/libTKTopAlgo.dll | Bin 0 -> 2338476 bytes bin/libTKV3d.dll | Bin 0 -> 3096669 bytes bin/libTKVRML.dll | Bin 0 -> 563487 bytes bin/libTKVoxel.dll | Bin 0 -> 264477 bytes bin/libTKXCAF.dll | Bin 0 -> 344817 bytes bin/libTKXCAFSchema.dll | Bin 0 -> 471521 bytes bin/libTKXDEIGES.dll | Bin 0 -> 74005 bytes bin/libTKXDESTEP.dll | Bin 0 -> 366893 bytes bin/libTKXMesh.dll | Bin 0 -> 43843 bytes bin/libTKXSBase.dll | Bin 0 -> 2523546 bytes bin/libTKXml.dll | Bin 0 -> 205234 bytes bin/libTKXmlL.dll | Bin 0 -> 415767 bytes bin/libTKXmlTObj.dll | Bin 0 -> 79541 bytes bin/libTKXmlXCAF.dll | Bin 0 -> 156129 bytes bin/libTKernel.dll | Bin 0 -> 2294671 bytes bin/libboost_atomic-mt.dll | Bin 0 -> 17279 bytes bin/libboost_chrono-mt.dll | Bin 0 -> 37243 bytes bin/libboost_container-mt.dll | Bin 0 -> 97428 bytes bin/libboost_context-mt.dll | Bin 0 -> 22983 bytes bin/libboost_coroutine-mt.dll | Bin 0 -> 47792 bytes bin/libboost_date_time-mt.dll | Bin 0 -> 70272 bytes bin/libboost_filesystem-mt.dll | Bin 0 -> 123765 bytes bin/libboost_graph-mt.dll | Bin 0 -> 685968 bytes bin/libboost_iostreams-mt.dll | Bin 0 -> 86993 bytes bin/libboost_locale-mt.dll | Bin 0 -> 842238 bytes bin/libboost_log-mt.dll | Bin 0 -> 1054089 bytes bin/libboost_log_setup-mt.dll | Bin 0 -> 1689311 bytes bin/libboost_math_c99-mt.dll | Bin 0 -> 237617 bytes bin/libboost_math_c99f-mt.dll | Bin 0 -> 102236 bytes bin/libboost_math_c99l-mt.dll | Bin 0 -> 219154 bytes bin/libboost_math_tr1-mt.dll | Bin 0 -> 617290 bytes bin/libboost_math_tr1f-mt.dll | Bin 0 -> 596490 bytes bin/libboost_math_tr1l-mt.dll | Bin 0 -> 607050 bytes bin/libboost_prg_exec_monitor-mt.dll | Bin 0 -> 77199 bytes bin/libboost_program_options-mt.dll | Bin 0 -> 421779 bytes bin/libboost_python-mt.dll | Bin 0 -> 436792 bytes bin/libboost_python3-mt.dll | Bin 0 -> 431245 bytes bin/libboost_random-mt.dll | Bin 0 -> 31637 bytes bin/libboost_regex-mt.dll | Bin 0 -> 961586 bytes bin/libboost_serialization-mt.dll | Bin 0 -> 532900 bytes bin/libboost_signals-mt.dll | Bin 0 -> 137202 bytes bin/libboost_system-mt.dll | Bin 0 -> 25492 bytes bin/libboost_thread-mt.dll | Bin 0 -> 139851 bytes bin/libboost_timer-mt.dll | Bin 0 -> 27155 bytes bin/libboost_type_erasure-mt.dll | Bin 0 -> 89517 bytes bin/libboost_unit_test_framework-mt.dll | Bin 0 -> 827519 bytes bin/libboost_wave-mt.dll | Bin 0 -> 1235390 bytes bin/libboost_wserialization-mt.dll | Bin 0 -> 373982 bytes bin/libbz2-1.dll | Bin 0 -> 76571 bytes bin/libcairo-2.dll | Bin 0 -> 1114226 bytes bin/libcairo-gobject-2.dll | Bin 0 -> 33780 bytes bin/libcairo-script-interpreter-2.dll | Bin 0 -> 174345 bytes bin/libcurl-4.dll | Bin 0 -> 567627 bytes bin/libeay32.dll | Bin 0 -> 1751374 bytes bin/libexpat-1.dll | Bin 0 -> 223693 bytes bin/libexslt-0.dll | Bin 0 -> 103976 bytes bin/libffi-6.dll | Bin 0 -> 34874 bytes bin/libfontconfig-1.dll | Bin 0 -> 332895 bytes bin/libfreetype-6.dll | Bin 0 -> 709803 bytes bin/libgcc_s_dw2-1.dll | Bin 0 -> 121524 bytes bin/libglib-2.0-0.dll | Bin 0 -> 1225932 bytes bin/libgmp-10.dll | Bin 0 -> 521228 bytes bin/libgmpxx-4.dll | Bin 0 -> 33549 bytes bin/libgnutls-30.dll | Bin 0 -> 1469812 bytes bin/libgnutlsxx-28.dll | Bin 0 -> 57167 bytes bin/libgomp-1.dll | Bin 0 -> 174997 bytes bin/libgraphite2.dll | Bin 0 -> 236568 bytes bin/libharfbuzz-0.dll | Bin 0 -> 650411 bytes bin/libharfbuzz-gobject-0.dll | Bin 0 -> 45168 bytes bin/libharfbuzz-icu-0.dll | Bin 0 -> 20053 bytes bin/libhogweed-4.dll | Bin 0 -> 212130 bytes bin/libiconv-2.dll | Bin 0 -> 1060570 bytes bin/libicudt58.dll | Bin 0 -> 26229959 bytes bin/libicuin58.dll | Bin 0 -> 2693209 bytes bin/libicuio58.dll | Bin 0 -> 61336 bytes bin/libicutest58.dll | Bin 0 -> 99826 bytes bin/libicutu58.dll | Bin 0 -> 307370 bytes bin/libicuuc58.dll | Bin 0 -> 1741142 bytes bin/libidn-11.dll | Bin 0 -> 214834 bytes bin/libintl-8.dll | Bin 0 -> 140752 bytes bin/libjpeg-8.dll | Bin 0 -> 503182 bytes bin/liblzma-5.dll | Bin 0 -> 171848 bytes bin/libnettle-6.dll | Bin 0 -> 269180 bytes bin/libnghttp2-14.dll | Bin 0 -> 176092 bytes bin/libngspice-0.dll | Bin 0 -> 6031015 bytes bin/libp11-kit-0.dll | Bin 0 -> 1098210 bytes bin/libpcre-1.dll | Bin 0 -> 292597 bytes bin/libpcre16-0.dll | Bin 0 -> 256725 bytes bin/libpcre32-0.dll | Bin 0 -> 246485 bytes bin/libpcrecpp-0.dll | Bin 0 -> 66193 bytes bin/libpcreposix-0.dll | Bin 0 -> 47313 bytes bin/libpixman-1-0.dll | Bin 0 -> 706136 bytes bin/libpng16-16.dll | Bin 0 -> 249238 bytes bin/libpython2.7.dll | Bin 0 -> 1632768 bytes bin/libpython3.6m.dll | Bin 0 -> 2385408 bytes bin/librtmp-1.dll | Bin 0 -> 181693 bytes bin/libssh2-1.dll | Bin 0 -> 214471 bytes bin/libstdc++-6.dll | Bin 0 -> 1547595 bytes bin/libtasn1-6.dll | Bin 0 -> 107502 bytes bin/libtiff-5.dll | Bin 0 -> 503853 bytes bin/libtiffxx-5.dll | Bin 0 -> 21336 bytes bin/libturbojpeg-0.dll | Bin 0 -> 539154 bytes bin/libunistring-2.dll | Bin 0 -> 1839507 bytes bin/libwinpthread-1.dll | Bin 0 -> 65693 bytes bin/libxml2-2.dll | Bin 0 -> 1400653 bytes bin/libxslt-1.dll | Bin 0 -> 315440 bytes bin/pcb_calculator.exe | Bin 0 -> 567808 bytes bin/pcbnew.exe | Bin 0 -> 568320 bytes bin/pip-script.py | 12 + bin/pip.exe | Bin 0 -> 22016 bytes bin/pip.exe.manifest | 15 + bin/pl_editor.exe | Bin 0 -> 517120 bytes bin/python.exe | Bin 0 -> 17408 bytes bin/pythonw.exe | Bin 0 -> 17408 bytes bin/scripting/plugins/README-bom.txt | 38 + bin/scripting/plugins/bom2csv.xsl | 99 +++ bin/scripting/plugins/bom2grouped_csv.xsl | 104 +++ bin/scripting/plugins/bom_csv_grouped_by_value.py | 167 +++++ .../plugins/bom_csv_grouped_by_value_with_fp.py | 65 ++ bin/scripting/plugins/bom_csv_sorted_by_ref.py | 62 ++ bin/scripting/plugins/bom_html_grouped_by_value.py | 98 +++ .../plugins/bom_html_with_advanced_grouping.py | 132 ++++ bin/scripting/plugins/bom_sorted_by_ref.py | 61 ++ .../plugins/bom_with_title_block_2_csv.xsl | 167 +++++ bin/scripting/plugins/kicad_netlist_reader.py | 764 +++++++++++++++++++++ bin/scripting/plugins/netlist_form_OrcadPcb2.xsl | 210 ++++++ .../plugins/netlist_form_cadstar-RINF.xsl | 131 ++++ bin/scripting/plugins/netlist_form_cadstar.xsl | 123 ++++ bin/scripting/plugins/netlist_form_pads-pcb.xsl | 69 ++ bin/ssleay32.dll | Bin 0 -> 393195 bytes bin/wxbase30u_gcc_custom.dll | Bin 0 -> 2698427 bytes bin/wxbase30u_net_gcc_custom.dll | Bin 0 -> 315205 bytes bin/wxbase30u_xml_gcc_custom.dll | Bin 0 -> 73237 bytes bin/wxmsw30u_adv_gcc_custom.dll | Bin 0 -> 1725437 bytes bin/wxmsw30u_aui_gcc_custom.dll | Bin 0 -> 604503 bytes bin/wxmsw30u_core_gcc_custom.dll | Bin 0 -> 6772673 bytes bin/wxmsw30u_gl_gcc_custom.dll | Bin 0 -> 132651 bytes bin/wxmsw30u_html_gcc_custom.dll | Bin 0 -> 909405 bytes bin/wxmsw30u_propgrid_gcc_custom.dll | Bin 0 -> 952155 bytes bin/wxmsw30u_qa_gcc_custom.dll | Bin 0 -> 206876 bytes bin/wxmsw30u_ribbon_gcc_custom.dll | Bin 0 -> 570599 bytes bin/wxmsw30u_richtext_gcc_custom.dll | Bin 0 -> 1716278 bytes bin/wxmsw30u_stc_gcc_custom.dll | Bin 0 -> 2590139 bytes bin/wxmsw30u_webview_gcc_custom.dll | Bin 0 -> 199467 bytes bin/wxmsw30u_xrc_gcc_custom.dll | Bin 0 -> 1044766 bytes bin/xsltproc.exe | Bin 0 -> 96020 bytes bin/zlib1.dll | Bin 0 -> 98626 bytes 207 files changed, 2344 insertions(+) create mode 100644 bin/_cvpcb.kiface create mode 100644 bin/_eeschema.kiface create mode 100644 bin/_gerbview.kiface create mode 100644 bin/_pcb_calculator.kiface create mode 100644 bin/_pcbnew.kiface create mode 100644 bin/_pl_editor.kiface create mode 100644 bin/bitmap2component.exe create mode 100644 bin/dxf2idf.exe create mode 100644 bin/easy_install-script.py create mode 100644 bin/easy_install.exe create mode 100644 bin/easy_install.exe.manifest create mode 100644 bin/eeschema.exe create mode 100644 bin/gdb.exe create mode 100644 bin/gerbview.exe create mode 100644 bin/glew32.dll create mode 100644 bin/idf2vrml.exe create mode 100644 bin/idfcyl.exe create mode 100644 bin/idfrect.exe create mode 100644 bin/kicad.exe create mode 100644 bin/libFWOSPlugin.dll create mode 100644 bin/libPTKernel.dll create mode 100644 bin/libTKBO.dll create mode 100644 bin/libTKBRep.dll create mode 100644 bin/libTKBin.dll create mode 100644 bin/libTKBinL.dll create mode 100644 bin/libTKBinTObj.dll create mode 100644 bin/libTKBinXCAF.dll create mode 100644 bin/libTKBool.dll create mode 100644 bin/libTKCAF.dll create mode 100644 bin/libTKCDF.dll create mode 100644 bin/libTKFeat.dll create mode 100644 bin/libTKFillet.dll create mode 100644 bin/libTKG2d.dll create mode 100644 bin/libTKG3d.dll create mode 100644 bin/libTKGeomAlgo.dll create mode 100644 bin/libTKGeomBase.dll create mode 100644 bin/libTKHLR.dll create mode 100644 bin/libTKIGES.dll create mode 100644 bin/libTKLCAF.dll create mode 100644 bin/libTKMath.dll create mode 100644 bin/libTKMesh.dll create mode 100644 bin/libTKMeshVS.dll create mode 100644 bin/libTKNIS.dll create mode 100644 bin/libTKOffset.dll create mode 100644 bin/libTKOpenGl.dll create mode 100644 bin/libTKPCAF.dll create mode 100644 bin/libTKPLCAF.dll create mode 100644 bin/libTKPShape.dll create mode 100644 bin/libTKPrim.dll create mode 100644 bin/libTKSTEP.dll create mode 100644 bin/libTKSTEP209.dll create mode 100644 bin/libTKSTEPAttr.dll create mode 100644 bin/libTKSTEPBase.dll create mode 100644 bin/libTKSTL.dll create mode 100644 bin/libTKService.dll create mode 100644 bin/libTKShHealing.dll create mode 100644 bin/libTKShapeSchema.dll create mode 100644 bin/libTKStdLSchema.dll create mode 100644 bin/libTKStdSchema.dll create mode 100644 bin/libTKTObj.dll create mode 100644 bin/libTKTopAlgo.dll create mode 100644 bin/libTKV3d.dll create mode 100644 bin/libTKVRML.dll create mode 100644 bin/libTKVoxel.dll create mode 100644 bin/libTKXCAF.dll create mode 100644 bin/libTKXCAFSchema.dll create mode 100644 bin/libTKXDEIGES.dll create mode 100644 bin/libTKXDESTEP.dll create mode 100644 bin/libTKXMesh.dll create mode 100644 bin/libTKXSBase.dll create mode 100644 bin/libTKXml.dll create mode 100644 bin/libTKXmlL.dll create mode 100644 bin/libTKXmlTObj.dll create mode 100644 bin/libTKXmlXCAF.dll create mode 100644 bin/libTKernel.dll create mode 100644 bin/libboost_atomic-mt.dll create mode 100644 bin/libboost_chrono-mt.dll create mode 100644 bin/libboost_container-mt.dll create mode 100644 bin/libboost_context-mt.dll create mode 100644 bin/libboost_coroutine-mt.dll create mode 100644 bin/libboost_date_time-mt.dll create mode 100644 bin/libboost_filesystem-mt.dll create mode 100644 bin/libboost_graph-mt.dll create mode 100644 bin/libboost_iostreams-mt.dll create mode 100644 bin/libboost_locale-mt.dll create mode 100644 bin/libboost_log-mt.dll create mode 100644 bin/libboost_log_setup-mt.dll create mode 100644 bin/libboost_math_c99-mt.dll create mode 100644 bin/libboost_math_c99f-mt.dll create mode 100644 bin/libboost_math_c99l-mt.dll create mode 100644 bin/libboost_math_tr1-mt.dll create mode 100644 bin/libboost_math_tr1f-mt.dll create mode 100644 bin/libboost_math_tr1l-mt.dll create mode 100644 bin/libboost_prg_exec_monitor-mt.dll create mode 100644 bin/libboost_program_options-mt.dll create mode 100644 bin/libboost_python-mt.dll create mode 100644 bin/libboost_python3-mt.dll create mode 100644 bin/libboost_random-mt.dll create mode 100644 bin/libboost_regex-mt.dll create mode 100644 bin/libboost_serialization-mt.dll create mode 100644 bin/libboost_signals-mt.dll create mode 100644 bin/libboost_system-mt.dll create mode 100644 bin/libboost_thread-mt.dll create mode 100644 bin/libboost_timer-mt.dll create mode 100644 bin/libboost_type_erasure-mt.dll create mode 100644 bin/libboost_unit_test_framework-mt.dll create mode 100644 bin/libboost_wave-mt.dll create mode 100644 bin/libboost_wserialization-mt.dll create mode 100644 bin/libbz2-1.dll create mode 100644 bin/libcairo-2.dll create mode 100644 bin/libcairo-gobject-2.dll create mode 100644 bin/libcairo-script-interpreter-2.dll create mode 100644 bin/libcurl-4.dll create mode 100644 bin/libeay32.dll create mode 100644 bin/libexpat-1.dll create mode 100644 bin/libexslt-0.dll create mode 100644 bin/libffi-6.dll create mode 100644 bin/libfontconfig-1.dll create mode 100644 bin/libfreetype-6.dll create mode 100644 bin/libgcc_s_dw2-1.dll create mode 100644 bin/libglib-2.0-0.dll create mode 100644 bin/libgmp-10.dll create mode 100644 bin/libgmpxx-4.dll create mode 100644 bin/libgnutls-30.dll create mode 100644 bin/libgnutlsxx-28.dll create mode 100644 bin/libgomp-1.dll create mode 100644 bin/libgraphite2.dll create mode 100644 bin/libharfbuzz-0.dll create mode 100644 bin/libharfbuzz-gobject-0.dll create mode 100644 bin/libharfbuzz-icu-0.dll create mode 100644 bin/libhogweed-4.dll create mode 100644 bin/libiconv-2.dll create mode 100644 bin/libicudt58.dll create mode 100644 bin/libicuin58.dll create mode 100644 bin/libicuio58.dll create mode 100644 bin/libicutest58.dll create mode 100644 bin/libicutu58.dll create mode 100644 bin/libicuuc58.dll create mode 100644 bin/libidn-11.dll create mode 100644 bin/libintl-8.dll create mode 100644 bin/libjpeg-8.dll create mode 100644 bin/liblzma-5.dll create mode 100644 bin/libnettle-6.dll create mode 100644 bin/libnghttp2-14.dll create mode 100644 bin/libngspice-0.dll create mode 100644 bin/libp11-kit-0.dll create mode 100644 bin/libpcre-1.dll create mode 100644 bin/libpcre16-0.dll create mode 100644 bin/libpcre32-0.dll create mode 100644 bin/libpcrecpp-0.dll create mode 100644 bin/libpcreposix-0.dll create mode 100644 bin/libpixman-1-0.dll create mode 100644 bin/libpng16-16.dll create mode 100644 bin/libpython2.7.dll create mode 100644 bin/libpython3.6m.dll create mode 100644 bin/librtmp-1.dll create mode 100644 bin/libssh2-1.dll create mode 100644 bin/libstdc++-6.dll create mode 100644 bin/libtasn1-6.dll create mode 100644 bin/libtiff-5.dll create mode 100644 bin/libtiffxx-5.dll create mode 100644 bin/libturbojpeg-0.dll create mode 100644 bin/libunistring-2.dll create mode 100644 bin/libwinpthread-1.dll create mode 100644 bin/libxml2-2.dll create mode 100644 bin/libxslt-1.dll create mode 100644 bin/pcb_calculator.exe create mode 100644 bin/pcbnew.exe create mode 100644 bin/pip-script.py create mode 100644 bin/pip.exe create mode 100644 bin/pip.exe.manifest create mode 100644 bin/pl_editor.exe create mode 100644 bin/python.exe create mode 100644 bin/pythonw.exe create mode 100644 bin/scripting/plugins/README-bom.txt create mode 100644 bin/scripting/plugins/bom2csv.xsl create mode 100644 bin/scripting/plugins/bom2grouped_csv.xsl create mode 100644 bin/scripting/plugins/bom_csv_grouped_by_value.py create mode 100644 bin/scripting/plugins/bom_csv_grouped_by_value_with_fp.py create mode 100644 bin/scripting/plugins/bom_csv_sorted_by_ref.py create mode 100644 bin/scripting/plugins/bom_html_grouped_by_value.py create mode 100644 bin/scripting/plugins/bom_html_with_advanced_grouping.py create mode 100644 bin/scripting/plugins/bom_sorted_by_ref.py create mode 100644 bin/scripting/plugins/bom_with_title_block_2_csv.xsl create mode 100644 bin/scripting/plugins/kicad_netlist_reader.py create mode 100644 bin/scripting/plugins/netlist_form_OrcadPcb2.xsl create mode 100644 bin/scripting/plugins/netlist_form_cadstar-RINF.xsl create mode 100644 bin/scripting/plugins/netlist_form_cadstar.xsl create mode 100644 bin/scripting/plugins/netlist_form_pads-pcb.xsl create mode 100644 bin/ssleay32.dll create mode 100644 bin/wxbase30u_gcc_custom.dll create mode 100644 bin/wxbase30u_net_gcc_custom.dll create mode 100644 bin/wxbase30u_xml_gcc_custom.dll create mode 100644 bin/wxmsw30u_adv_gcc_custom.dll create mode 100644 bin/wxmsw30u_aui_gcc_custom.dll create mode 100644 bin/wxmsw30u_core_gcc_custom.dll create mode 100644 bin/wxmsw30u_gl_gcc_custom.dll create mode 100644 bin/wxmsw30u_html_gcc_custom.dll create mode 100644 bin/wxmsw30u_propgrid_gcc_custom.dll create mode 100644 bin/wxmsw30u_qa_gcc_custom.dll create mode 100644 bin/wxmsw30u_ribbon_gcc_custom.dll create mode 100644 bin/wxmsw30u_richtext_gcc_custom.dll create mode 100644 bin/wxmsw30u_stc_gcc_custom.dll create mode 100644 bin/wxmsw30u_webview_gcc_custom.dll create mode 100644 bin/wxmsw30u_xrc_gcc_custom.dll create mode 100644 bin/xsltproc.exe create mode 100644 bin/zlib1.dll (limited to 'bin') diff --git a/bin/_cvpcb.kiface b/bin/_cvpcb.kiface new file mode 100644 index 0000000..9d869b1 Binary files /dev/null and b/bin/_cvpcb.kiface differ diff --git a/bin/_eeschema.kiface b/bin/_eeschema.kiface new file mode 100644 index 0000000..a490396 Binary files /dev/null and b/bin/_eeschema.kiface differ diff --git a/bin/_gerbview.kiface b/bin/_gerbview.kiface new file mode 100644 index 0000000..291a89b Binary files /dev/null and b/bin/_gerbview.kiface differ diff --git a/bin/_pcb_calculator.kiface b/bin/_pcb_calculator.kiface new file mode 100644 index 0000000..3943252 Binary files /dev/null and b/bin/_pcb_calculator.kiface differ diff --git a/bin/_pcbnew.kiface b/bin/_pcbnew.kiface new file mode 100644 index 0000000..719a41c Binary files /dev/null and b/bin/_pcbnew.kiface differ diff --git a/bin/_pl_editor.kiface b/bin/_pl_editor.kiface new file mode 100644 index 0000000..a2580d4 Binary files /dev/null and b/bin/_pl_editor.kiface differ diff --git a/bin/bitmap2component.exe b/bin/bitmap2component.exe new file mode 100644 index 0000000..cd042cd Binary files /dev/null and b/bin/bitmap2component.exe differ diff --git a/bin/dxf2idf.exe b/bin/dxf2idf.exe new file mode 100644 index 0000000..3bff487 Binary files /dev/null and b/bin/dxf2idf.exe differ diff --git a/bin/easy_install-script.py b/bin/easy_install-script.py new file mode 100644 index 0000000..e91f11c --- /dev/null +++ b/bin/easy_install-script.py @@ -0,0 +1,12 @@ +#!python.exe +# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==36.0.1.post20170616','console_scripts','easy_install' +__requires__ = 'setuptools==36.0.1.post20170616' +import re +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit( + load_entry_point('setuptools==36.0.1.post20170616', 'console_scripts', 'easy_install')() + ) diff --git a/bin/easy_install.exe b/bin/easy_install.exe new file mode 100644 index 0000000..49b476e Binary files /dev/null and b/bin/easy_install.exe differ diff --git a/bin/easy_install.exe.manifest b/bin/easy_install.exe.manifest new file mode 100644 index 0000000..9c19e18 --- /dev/null +++ b/bin/easy_install.exe.manifest @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/bin/eeschema.exe b/bin/eeschema.exe new file mode 100644 index 0000000..475cd72 Binary files /dev/null and b/bin/eeschema.exe differ diff --git a/bin/gdb.exe b/bin/gdb.exe new file mode 100644 index 0000000..252fac8 Binary files /dev/null and b/bin/gdb.exe differ diff --git a/bin/gerbview.exe b/bin/gerbview.exe new file mode 100644 index 0000000..067671d Binary files /dev/null and b/bin/gerbview.exe differ diff --git a/bin/glew32.dll b/bin/glew32.dll new file mode 100644 index 0000000..96b0ca6 Binary files /dev/null and b/bin/glew32.dll differ diff --git a/bin/idf2vrml.exe b/bin/idf2vrml.exe new file mode 100644 index 0000000..3a6bc30 Binary files /dev/null and b/bin/idf2vrml.exe differ diff --git a/bin/idfcyl.exe b/bin/idfcyl.exe new file mode 100644 index 0000000..df1104f Binary files /dev/null and b/bin/idfcyl.exe differ diff --git a/bin/idfrect.exe b/bin/idfrect.exe new file mode 100644 index 0000000..3f94368 Binary files /dev/null and b/bin/idfrect.exe differ diff --git a/bin/kicad.exe b/bin/kicad.exe new file mode 100644 index 0000000..1d21160 Binary files /dev/null and b/bin/kicad.exe differ diff --git a/bin/libFWOSPlugin.dll b/bin/libFWOSPlugin.dll new file mode 100644 index 0000000..990629b Binary files /dev/null and b/bin/libFWOSPlugin.dll differ diff --git a/bin/libPTKernel.dll b/bin/libPTKernel.dll new file mode 100644 index 0000000..8f671d9 Binary files /dev/null and b/bin/libPTKernel.dll differ diff --git a/bin/libTKBO.dll b/bin/libTKBO.dll new file mode 100644 index 0000000..7f17f37 Binary files /dev/null and b/bin/libTKBO.dll differ diff --git a/bin/libTKBRep.dll b/bin/libTKBRep.dll new file mode 100644 index 0000000..5a86385 Binary files /dev/null and b/bin/libTKBRep.dll differ diff --git a/bin/libTKBin.dll b/bin/libTKBin.dll new file mode 100644 index 0000000..3f70d03 Binary files /dev/null and b/bin/libTKBin.dll differ diff --git a/bin/libTKBinL.dll b/bin/libTKBinL.dll new file mode 100644 index 0000000..2ead891 Binary files /dev/null and b/bin/libTKBinL.dll differ diff --git a/bin/libTKBinTObj.dll b/bin/libTKBinTObj.dll new file mode 100644 index 0000000..01231df Binary files /dev/null and b/bin/libTKBinTObj.dll differ diff --git a/bin/libTKBinXCAF.dll b/bin/libTKBinXCAF.dll new file mode 100644 index 0000000..2c5f253 Binary files /dev/null and b/bin/libTKBinXCAF.dll differ diff --git a/bin/libTKBool.dll b/bin/libTKBool.dll new file mode 100644 index 0000000..a38baa8 Binary files /dev/null and b/bin/libTKBool.dll differ diff --git a/bin/libTKCAF.dll b/bin/libTKCAF.dll new file mode 100644 index 0000000..d587f65 Binary files /dev/null and b/bin/libTKCAF.dll differ diff --git a/bin/libTKCDF.dll b/bin/libTKCDF.dll new file mode 100644 index 0000000..38d8ed2 Binary files /dev/null and b/bin/libTKCDF.dll differ diff --git a/bin/libTKFeat.dll b/bin/libTKFeat.dll new file mode 100644 index 0000000..c093e57 Binary files /dev/null and b/bin/libTKFeat.dll differ diff --git a/bin/libTKFillet.dll b/bin/libTKFillet.dll new file mode 100644 index 0000000..43e7939 Binary files /dev/null and b/bin/libTKFillet.dll differ diff --git a/bin/libTKG2d.dll b/bin/libTKG2d.dll new file mode 100644 index 0000000..77c08d8 Binary files /dev/null and b/bin/libTKG2d.dll differ diff --git a/bin/libTKG3d.dll b/bin/libTKG3d.dll new file mode 100644 index 0000000..d71d438 Binary files /dev/null and b/bin/libTKG3d.dll differ diff --git a/bin/libTKGeomAlgo.dll b/bin/libTKGeomAlgo.dll new file mode 100644 index 0000000..fa3ddbe Binary files /dev/null and b/bin/libTKGeomAlgo.dll differ diff --git a/bin/libTKGeomBase.dll b/bin/libTKGeomBase.dll new file mode 100644 index 0000000..f70e7a8 Binary files /dev/null and b/bin/libTKGeomBase.dll differ diff --git a/bin/libTKHLR.dll b/bin/libTKHLR.dll new file mode 100644 index 0000000..5d326c3 Binary files /dev/null and b/bin/libTKHLR.dll differ diff --git a/bin/libTKIGES.dll b/bin/libTKIGES.dll new file mode 100644 index 0000000..1cfc550 Binary files /dev/null and b/bin/libTKIGES.dll differ diff --git a/bin/libTKLCAF.dll b/bin/libTKLCAF.dll new file mode 100644 index 0000000..597b6ac Binary files /dev/null and b/bin/libTKLCAF.dll differ diff --git a/bin/libTKMath.dll b/bin/libTKMath.dll new file mode 100644 index 0000000..8264ba1 Binary files /dev/null and b/bin/libTKMath.dll differ diff --git a/bin/libTKMesh.dll b/bin/libTKMesh.dll new file mode 100644 index 0000000..f9fe484 Binary files /dev/null and b/bin/libTKMesh.dll differ diff --git a/bin/libTKMeshVS.dll b/bin/libTKMeshVS.dll new file mode 100644 index 0000000..00ac49e Binary files /dev/null and b/bin/libTKMeshVS.dll differ diff --git a/bin/libTKNIS.dll b/bin/libTKNIS.dll new file mode 100644 index 0000000..304b2c1 Binary files /dev/null and b/bin/libTKNIS.dll differ diff --git a/bin/libTKOffset.dll b/bin/libTKOffset.dll new file mode 100644 index 0000000..f4cd6f9 Binary files /dev/null and b/bin/libTKOffset.dll differ diff --git a/bin/libTKOpenGl.dll b/bin/libTKOpenGl.dll new file mode 100644 index 0000000..5e77e61 Binary files /dev/null and b/bin/libTKOpenGl.dll differ diff --git a/bin/libTKPCAF.dll b/bin/libTKPCAF.dll new file mode 100644 index 0000000..36a3af4 Binary files /dev/null and b/bin/libTKPCAF.dll differ diff --git a/bin/libTKPLCAF.dll b/bin/libTKPLCAF.dll new file mode 100644 index 0000000..0653cca Binary files /dev/null and b/bin/libTKPLCAF.dll differ diff --git a/bin/libTKPShape.dll b/bin/libTKPShape.dll new file mode 100644 index 0000000..4e618f5 Binary files /dev/null and b/bin/libTKPShape.dll differ diff --git a/bin/libTKPrim.dll b/bin/libTKPrim.dll new file mode 100644 index 0000000..f33c655 Binary files /dev/null and b/bin/libTKPrim.dll differ diff --git a/bin/libTKSTEP.dll b/bin/libTKSTEP.dll new file mode 100644 index 0000000..5cfcf09 Binary files /dev/null and b/bin/libTKSTEP.dll differ diff --git a/bin/libTKSTEP209.dll b/bin/libTKSTEP209.dll new file mode 100644 index 0000000..568a10e Binary files /dev/null and b/bin/libTKSTEP209.dll differ diff --git a/bin/libTKSTEPAttr.dll b/bin/libTKSTEPAttr.dll new file mode 100644 index 0000000..ecab8d6 Binary files /dev/null and b/bin/libTKSTEPAttr.dll differ diff --git a/bin/libTKSTEPBase.dll b/bin/libTKSTEPBase.dll new file mode 100644 index 0000000..b8dff02 Binary files /dev/null and b/bin/libTKSTEPBase.dll differ diff --git a/bin/libTKSTL.dll b/bin/libTKSTL.dll new file mode 100644 index 0000000..5a957d3 Binary files /dev/null and b/bin/libTKSTL.dll differ diff --git a/bin/libTKService.dll b/bin/libTKService.dll new file mode 100644 index 0000000..35b9d2d Binary files /dev/null and b/bin/libTKService.dll differ diff --git a/bin/libTKShHealing.dll b/bin/libTKShHealing.dll new file mode 100644 index 0000000..6fe0dfd Binary files /dev/null and b/bin/libTKShHealing.dll differ diff --git a/bin/libTKShapeSchema.dll b/bin/libTKShapeSchema.dll new file mode 100644 index 0000000..fee2474 Binary files /dev/null and b/bin/libTKShapeSchema.dll differ diff --git a/bin/libTKStdLSchema.dll b/bin/libTKStdLSchema.dll new file mode 100644 index 0000000..2b160d6 Binary files /dev/null and b/bin/libTKStdLSchema.dll differ diff --git a/bin/libTKStdSchema.dll b/bin/libTKStdSchema.dll new file mode 100644 index 0000000..c2974a6 Binary files /dev/null and b/bin/libTKStdSchema.dll differ diff --git a/bin/libTKTObj.dll b/bin/libTKTObj.dll new file mode 100644 index 0000000..d4f0e10 Binary files /dev/null and b/bin/libTKTObj.dll differ diff --git a/bin/libTKTopAlgo.dll b/bin/libTKTopAlgo.dll new file mode 100644 index 0000000..ecd34b7 Binary files /dev/null and b/bin/libTKTopAlgo.dll differ diff --git a/bin/libTKV3d.dll b/bin/libTKV3d.dll new file mode 100644 index 0000000..40406d0 Binary files /dev/null and b/bin/libTKV3d.dll differ diff --git a/bin/libTKVRML.dll b/bin/libTKVRML.dll new file mode 100644 index 0000000..0647682 Binary files /dev/null and b/bin/libTKVRML.dll differ diff --git a/bin/libTKVoxel.dll b/bin/libTKVoxel.dll new file mode 100644 index 0000000..29bd389 Binary files /dev/null and b/bin/libTKVoxel.dll differ diff --git a/bin/libTKXCAF.dll b/bin/libTKXCAF.dll new file mode 100644 index 0000000..f953606 Binary files /dev/null and b/bin/libTKXCAF.dll differ diff --git a/bin/libTKXCAFSchema.dll b/bin/libTKXCAFSchema.dll new file mode 100644 index 0000000..5dcd829 Binary files /dev/null and b/bin/libTKXCAFSchema.dll differ diff --git a/bin/libTKXDEIGES.dll b/bin/libTKXDEIGES.dll new file mode 100644 index 0000000..1cd5148 Binary files /dev/null and b/bin/libTKXDEIGES.dll differ diff --git a/bin/libTKXDESTEP.dll b/bin/libTKXDESTEP.dll new file mode 100644 index 0000000..80e6376 Binary files /dev/null and b/bin/libTKXDESTEP.dll differ diff --git a/bin/libTKXMesh.dll b/bin/libTKXMesh.dll new file mode 100644 index 0000000..cdcb148 Binary files /dev/null and b/bin/libTKXMesh.dll differ diff --git a/bin/libTKXSBase.dll b/bin/libTKXSBase.dll new file mode 100644 index 0000000..397ce79 Binary files /dev/null and b/bin/libTKXSBase.dll differ diff --git a/bin/libTKXml.dll b/bin/libTKXml.dll new file mode 100644 index 0000000..9acc454 Binary files /dev/null and b/bin/libTKXml.dll differ diff --git a/bin/libTKXmlL.dll b/bin/libTKXmlL.dll new file mode 100644 index 0000000..f3726de Binary files /dev/null and b/bin/libTKXmlL.dll differ diff --git a/bin/libTKXmlTObj.dll b/bin/libTKXmlTObj.dll new file mode 100644 index 0000000..1c4fa2e Binary files /dev/null and b/bin/libTKXmlTObj.dll differ diff --git a/bin/libTKXmlXCAF.dll b/bin/libTKXmlXCAF.dll new file mode 100644 index 0000000..ea0e054 Binary files /dev/null and b/bin/libTKXmlXCAF.dll differ diff --git a/bin/libTKernel.dll b/bin/libTKernel.dll new file mode 100644 index 0000000..6c81577 Binary files /dev/null and b/bin/libTKernel.dll differ diff --git a/bin/libboost_atomic-mt.dll b/bin/libboost_atomic-mt.dll new file mode 100644 index 0000000..4e1d351 Binary files /dev/null and b/bin/libboost_atomic-mt.dll differ diff --git a/bin/libboost_chrono-mt.dll b/bin/libboost_chrono-mt.dll new file mode 100644 index 0000000..bac0999 Binary files /dev/null and b/bin/libboost_chrono-mt.dll differ diff --git a/bin/libboost_container-mt.dll b/bin/libboost_container-mt.dll new file mode 100644 index 0000000..aaa9257 Binary files /dev/null and b/bin/libboost_container-mt.dll differ diff --git a/bin/libboost_context-mt.dll b/bin/libboost_context-mt.dll new file mode 100644 index 0000000..555040a Binary files /dev/null and b/bin/libboost_context-mt.dll differ diff --git a/bin/libboost_coroutine-mt.dll b/bin/libboost_coroutine-mt.dll new file mode 100644 index 0000000..fde9157 Binary files /dev/null and b/bin/libboost_coroutine-mt.dll differ diff --git a/bin/libboost_date_time-mt.dll b/bin/libboost_date_time-mt.dll new file mode 100644 index 0000000..abb64ee Binary files /dev/null and b/bin/libboost_date_time-mt.dll differ diff --git a/bin/libboost_filesystem-mt.dll b/bin/libboost_filesystem-mt.dll new file mode 100644 index 0000000..660531a Binary files /dev/null and b/bin/libboost_filesystem-mt.dll differ diff --git a/bin/libboost_graph-mt.dll b/bin/libboost_graph-mt.dll new file mode 100644 index 0000000..52d7a78 Binary files /dev/null and b/bin/libboost_graph-mt.dll differ diff --git a/bin/libboost_iostreams-mt.dll b/bin/libboost_iostreams-mt.dll new file mode 100644 index 0000000..d06a07c Binary files /dev/null and b/bin/libboost_iostreams-mt.dll differ diff --git a/bin/libboost_locale-mt.dll b/bin/libboost_locale-mt.dll new file mode 100644 index 0000000..71d411e Binary files /dev/null and b/bin/libboost_locale-mt.dll differ diff --git a/bin/libboost_log-mt.dll b/bin/libboost_log-mt.dll new file mode 100644 index 0000000..fad04a3 Binary files /dev/null and b/bin/libboost_log-mt.dll differ diff --git a/bin/libboost_log_setup-mt.dll b/bin/libboost_log_setup-mt.dll new file mode 100644 index 0000000..e9208fd Binary files /dev/null and b/bin/libboost_log_setup-mt.dll differ diff --git a/bin/libboost_math_c99-mt.dll b/bin/libboost_math_c99-mt.dll new file mode 100644 index 0000000..5a49ffe Binary files /dev/null and b/bin/libboost_math_c99-mt.dll differ diff --git a/bin/libboost_math_c99f-mt.dll b/bin/libboost_math_c99f-mt.dll new file mode 100644 index 0000000..9cd5999 Binary files /dev/null and b/bin/libboost_math_c99f-mt.dll differ diff --git a/bin/libboost_math_c99l-mt.dll b/bin/libboost_math_c99l-mt.dll new file mode 100644 index 0000000..7c792ab Binary files /dev/null and b/bin/libboost_math_c99l-mt.dll differ diff --git a/bin/libboost_math_tr1-mt.dll b/bin/libboost_math_tr1-mt.dll new file mode 100644 index 0000000..22e686b Binary files /dev/null and b/bin/libboost_math_tr1-mt.dll differ diff --git a/bin/libboost_math_tr1f-mt.dll b/bin/libboost_math_tr1f-mt.dll new file mode 100644 index 0000000..0f8248c Binary files /dev/null and b/bin/libboost_math_tr1f-mt.dll differ diff --git a/bin/libboost_math_tr1l-mt.dll b/bin/libboost_math_tr1l-mt.dll new file mode 100644 index 0000000..6c9ee5a Binary files /dev/null and b/bin/libboost_math_tr1l-mt.dll differ diff --git a/bin/libboost_prg_exec_monitor-mt.dll b/bin/libboost_prg_exec_monitor-mt.dll new file mode 100644 index 0000000..7d19379 Binary files /dev/null and b/bin/libboost_prg_exec_monitor-mt.dll differ diff --git a/bin/libboost_program_options-mt.dll b/bin/libboost_program_options-mt.dll new file mode 100644 index 0000000..21c4d35 Binary files /dev/null and b/bin/libboost_program_options-mt.dll differ diff --git a/bin/libboost_python-mt.dll b/bin/libboost_python-mt.dll new file mode 100644 index 0000000..a101291 Binary files /dev/null and b/bin/libboost_python-mt.dll differ diff --git a/bin/libboost_python3-mt.dll b/bin/libboost_python3-mt.dll new file mode 100644 index 0000000..436c4bc Binary files /dev/null and b/bin/libboost_python3-mt.dll differ diff --git a/bin/libboost_random-mt.dll b/bin/libboost_random-mt.dll new file mode 100644 index 0000000..f626fd7 Binary files /dev/null and b/bin/libboost_random-mt.dll differ diff --git a/bin/libboost_regex-mt.dll b/bin/libboost_regex-mt.dll new file mode 100644 index 0000000..3cf12bc Binary files /dev/null and b/bin/libboost_regex-mt.dll differ diff --git a/bin/libboost_serialization-mt.dll b/bin/libboost_serialization-mt.dll new file mode 100644 index 0000000..998153b Binary files /dev/null and b/bin/libboost_serialization-mt.dll differ diff --git a/bin/libboost_signals-mt.dll b/bin/libboost_signals-mt.dll new file mode 100644 index 0000000..d470a58 Binary files /dev/null and b/bin/libboost_signals-mt.dll differ diff --git a/bin/libboost_system-mt.dll b/bin/libboost_system-mt.dll new file mode 100644 index 0000000..2cbbb7a Binary files /dev/null and b/bin/libboost_system-mt.dll differ diff --git a/bin/libboost_thread-mt.dll b/bin/libboost_thread-mt.dll new file mode 100644 index 0000000..db6baa1 Binary files /dev/null and b/bin/libboost_thread-mt.dll differ diff --git a/bin/libboost_timer-mt.dll b/bin/libboost_timer-mt.dll new file mode 100644 index 0000000..6507fbd Binary files /dev/null and b/bin/libboost_timer-mt.dll differ diff --git a/bin/libboost_type_erasure-mt.dll b/bin/libboost_type_erasure-mt.dll new file mode 100644 index 0000000..6938b37 Binary files /dev/null and b/bin/libboost_type_erasure-mt.dll differ diff --git a/bin/libboost_unit_test_framework-mt.dll b/bin/libboost_unit_test_framework-mt.dll new file mode 100644 index 0000000..001326d Binary files /dev/null and b/bin/libboost_unit_test_framework-mt.dll differ diff --git a/bin/libboost_wave-mt.dll b/bin/libboost_wave-mt.dll new file mode 100644 index 0000000..39e9b7b Binary files /dev/null and b/bin/libboost_wave-mt.dll differ diff --git a/bin/libboost_wserialization-mt.dll b/bin/libboost_wserialization-mt.dll new file mode 100644 index 0000000..6811cb3 Binary files /dev/null and b/bin/libboost_wserialization-mt.dll differ diff --git a/bin/libbz2-1.dll b/bin/libbz2-1.dll new file mode 100644 index 0000000..b4281bc Binary files /dev/null and b/bin/libbz2-1.dll differ diff --git a/bin/libcairo-2.dll b/bin/libcairo-2.dll new file mode 100644 index 0000000..67433a3 Binary files /dev/null and b/bin/libcairo-2.dll differ diff --git a/bin/libcairo-gobject-2.dll b/bin/libcairo-gobject-2.dll new file mode 100644 index 0000000..cea07f8 Binary files /dev/null and b/bin/libcairo-gobject-2.dll differ diff --git a/bin/libcairo-script-interpreter-2.dll b/bin/libcairo-script-interpreter-2.dll new file mode 100644 index 0000000..896dcfd Binary files /dev/null and b/bin/libcairo-script-interpreter-2.dll differ diff --git a/bin/libcurl-4.dll b/bin/libcurl-4.dll new file mode 100644 index 0000000..67f83a8 Binary files /dev/null and b/bin/libcurl-4.dll differ diff --git a/bin/libeay32.dll b/bin/libeay32.dll new file mode 100644 index 0000000..df18818 Binary files /dev/null and b/bin/libeay32.dll differ diff --git a/bin/libexpat-1.dll b/bin/libexpat-1.dll new file mode 100644 index 0000000..efd5d76 Binary files /dev/null and b/bin/libexpat-1.dll differ diff --git a/bin/libexslt-0.dll b/bin/libexslt-0.dll new file mode 100644 index 0000000..8a2d5b3 Binary files /dev/null and b/bin/libexslt-0.dll differ diff --git a/bin/libffi-6.dll b/bin/libffi-6.dll new file mode 100644 index 0000000..f87af2d Binary files /dev/null and b/bin/libffi-6.dll differ diff --git a/bin/libfontconfig-1.dll b/bin/libfontconfig-1.dll new file mode 100644 index 0000000..87bdc3d Binary files /dev/null and b/bin/libfontconfig-1.dll differ diff --git a/bin/libfreetype-6.dll b/bin/libfreetype-6.dll new file mode 100644 index 0000000..55b4afd Binary files /dev/null and b/bin/libfreetype-6.dll differ diff --git a/bin/libgcc_s_dw2-1.dll b/bin/libgcc_s_dw2-1.dll new file mode 100644 index 0000000..c923420 Binary files /dev/null and b/bin/libgcc_s_dw2-1.dll differ diff --git a/bin/libglib-2.0-0.dll b/bin/libglib-2.0-0.dll new file mode 100644 index 0000000..75ad317 Binary files /dev/null and b/bin/libglib-2.0-0.dll differ diff --git a/bin/libgmp-10.dll b/bin/libgmp-10.dll new file mode 100644 index 0000000..9886875 Binary files /dev/null and b/bin/libgmp-10.dll differ diff --git a/bin/libgmpxx-4.dll b/bin/libgmpxx-4.dll new file mode 100644 index 0000000..6b52ee0 Binary files /dev/null and b/bin/libgmpxx-4.dll differ diff --git a/bin/libgnutls-30.dll b/bin/libgnutls-30.dll new file mode 100644 index 0000000..3bdd79c Binary files /dev/null and b/bin/libgnutls-30.dll differ diff --git a/bin/libgnutlsxx-28.dll b/bin/libgnutlsxx-28.dll new file mode 100644 index 0000000..b78d42e Binary files /dev/null and b/bin/libgnutlsxx-28.dll differ diff --git a/bin/libgomp-1.dll b/bin/libgomp-1.dll new file mode 100644 index 0000000..9c80271 Binary files /dev/null and b/bin/libgomp-1.dll differ diff --git a/bin/libgraphite2.dll b/bin/libgraphite2.dll new file mode 100644 index 0000000..428bd31 Binary files /dev/null and b/bin/libgraphite2.dll differ diff --git a/bin/libharfbuzz-0.dll b/bin/libharfbuzz-0.dll new file mode 100644 index 0000000..37b61d2 Binary files /dev/null and b/bin/libharfbuzz-0.dll differ diff --git a/bin/libharfbuzz-gobject-0.dll b/bin/libharfbuzz-gobject-0.dll new file mode 100644 index 0000000..30afa57 Binary files /dev/null and b/bin/libharfbuzz-gobject-0.dll differ diff --git a/bin/libharfbuzz-icu-0.dll b/bin/libharfbuzz-icu-0.dll new file mode 100644 index 0000000..eb13621 Binary files /dev/null and b/bin/libharfbuzz-icu-0.dll differ diff --git a/bin/libhogweed-4.dll b/bin/libhogweed-4.dll new file mode 100644 index 0000000..7553efc Binary files /dev/null and b/bin/libhogweed-4.dll differ diff --git a/bin/libiconv-2.dll b/bin/libiconv-2.dll new file mode 100644 index 0000000..9a2b2e5 Binary files /dev/null and b/bin/libiconv-2.dll differ diff --git a/bin/libicudt58.dll b/bin/libicudt58.dll new file mode 100644 index 0000000..49c5a4c Binary files /dev/null and b/bin/libicudt58.dll differ diff --git a/bin/libicuin58.dll b/bin/libicuin58.dll new file mode 100644 index 0000000..5662320 Binary files /dev/null and b/bin/libicuin58.dll differ diff --git a/bin/libicuio58.dll b/bin/libicuio58.dll new file mode 100644 index 0000000..eb30856 Binary files /dev/null and b/bin/libicuio58.dll differ diff --git a/bin/libicutest58.dll b/bin/libicutest58.dll new file mode 100644 index 0000000..9aa7492 Binary files /dev/null and b/bin/libicutest58.dll differ diff --git a/bin/libicutu58.dll b/bin/libicutu58.dll new file mode 100644 index 0000000..9ae0b0d Binary files /dev/null and b/bin/libicutu58.dll differ diff --git a/bin/libicuuc58.dll b/bin/libicuuc58.dll new file mode 100644 index 0000000..fb6e0b1 Binary files /dev/null and b/bin/libicuuc58.dll differ diff --git a/bin/libidn-11.dll b/bin/libidn-11.dll new file mode 100644 index 0000000..101ddfc Binary files /dev/null and b/bin/libidn-11.dll differ diff --git a/bin/libintl-8.dll b/bin/libintl-8.dll new file mode 100644 index 0000000..2424330 Binary files /dev/null and b/bin/libintl-8.dll differ diff --git a/bin/libjpeg-8.dll b/bin/libjpeg-8.dll new file mode 100644 index 0000000..f8d259b Binary files /dev/null and b/bin/libjpeg-8.dll differ diff --git a/bin/liblzma-5.dll b/bin/liblzma-5.dll new file mode 100644 index 0000000..5bd73f8 Binary files /dev/null and b/bin/liblzma-5.dll differ diff --git a/bin/libnettle-6.dll b/bin/libnettle-6.dll new file mode 100644 index 0000000..f81f863 Binary files /dev/null and b/bin/libnettle-6.dll differ diff --git a/bin/libnghttp2-14.dll b/bin/libnghttp2-14.dll new file mode 100644 index 0000000..1451cb1 Binary files /dev/null and b/bin/libnghttp2-14.dll differ diff --git a/bin/libngspice-0.dll b/bin/libngspice-0.dll new file mode 100644 index 0000000..6d44c72 Binary files /dev/null and b/bin/libngspice-0.dll differ diff --git a/bin/libp11-kit-0.dll b/bin/libp11-kit-0.dll new file mode 100644 index 0000000..88aa150 Binary files /dev/null and b/bin/libp11-kit-0.dll differ diff --git a/bin/libpcre-1.dll b/bin/libpcre-1.dll new file mode 100644 index 0000000..a667a91 Binary files /dev/null and b/bin/libpcre-1.dll differ diff --git a/bin/libpcre16-0.dll b/bin/libpcre16-0.dll new file mode 100644 index 0000000..98a872a Binary files /dev/null and b/bin/libpcre16-0.dll differ diff --git a/bin/libpcre32-0.dll b/bin/libpcre32-0.dll new file mode 100644 index 0000000..90d2b9b Binary files /dev/null and b/bin/libpcre32-0.dll differ diff --git a/bin/libpcrecpp-0.dll b/bin/libpcrecpp-0.dll new file mode 100644 index 0000000..cd1fd78 Binary files /dev/null and b/bin/libpcrecpp-0.dll differ diff --git a/bin/libpcreposix-0.dll b/bin/libpcreposix-0.dll new file mode 100644 index 0000000..d575c59 Binary files /dev/null and b/bin/libpcreposix-0.dll differ diff --git a/bin/libpixman-1-0.dll b/bin/libpixman-1-0.dll new file mode 100644 index 0000000..748b469 Binary files /dev/null and b/bin/libpixman-1-0.dll differ diff --git a/bin/libpng16-16.dll b/bin/libpng16-16.dll new file mode 100644 index 0000000..5ce387b Binary files /dev/null and b/bin/libpng16-16.dll differ diff --git a/bin/libpython2.7.dll b/bin/libpython2.7.dll new file mode 100644 index 0000000..1713a8a Binary files /dev/null and b/bin/libpython2.7.dll differ diff --git a/bin/libpython3.6m.dll b/bin/libpython3.6m.dll new file mode 100644 index 0000000..d9db668 Binary files /dev/null and b/bin/libpython3.6m.dll differ diff --git a/bin/librtmp-1.dll b/bin/librtmp-1.dll new file mode 100644 index 0000000..81e6a05 Binary files /dev/null and b/bin/librtmp-1.dll differ diff --git a/bin/libssh2-1.dll b/bin/libssh2-1.dll new file mode 100644 index 0000000..331726e Binary files /dev/null and b/bin/libssh2-1.dll differ diff --git a/bin/libstdc++-6.dll b/bin/libstdc++-6.dll new file mode 100644 index 0000000..6ef46f9 Binary files /dev/null and b/bin/libstdc++-6.dll differ diff --git a/bin/libtasn1-6.dll b/bin/libtasn1-6.dll new file mode 100644 index 0000000..a6ff9d8 Binary files /dev/null and b/bin/libtasn1-6.dll differ diff --git a/bin/libtiff-5.dll b/bin/libtiff-5.dll new file mode 100644 index 0000000..ec5e544 Binary files /dev/null and b/bin/libtiff-5.dll differ diff --git a/bin/libtiffxx-5.dll b/bin/libtiffxx-5.dll new file mode 100644 index 0000000..d3150d3 Binary files /dev/null and b/bin/libtiffxx-5.dll differ diff --git a/bin/libturbojpeg-0.dll b/bin/libturbojpeg-0.dll new file mode 100644 index 0000000..b76b510 Binary files /dev/null and b/bin/libturbojpeg-0.dll differ diff --git a/bin/libunistring-2.dll b/bin/libunistring-2.dll new file mode 100644 index 0000000..33cde31 Binary files /dev/null and b/bin/libunistring-2.dll differ diff --git a/bin/libwinpthread-1.dll b/bin/libwinpthread-1.dll new file mode 100644 index 0000000..c458c57 Binary files /dev/null and b/bin/libwinpthread-1.dll differ diff --git a/bin/libxml2-2.dll b/bin/libxml2-2.dll new file mode 100644 index 0000000..b524d57 Binary files /dev/null and b/bin/libxml2-2.dll differ diff --git a/bin/libxslt-1.dll b/bin/libxslt-1.dll new file mode 100644 index 0000000..3debcd4 Binary files /dev/null and b/bin/libxslt-1.dll differ diff --git a/bin/pcb_calculator.exe b/bin/pcb_calculator.exe new file mode 100644 index 0000000..a564efa Binary files /dev/null and b/bin/pcb_calculator.exe differ diff --git a/bin/pcbnew.exe b/bin/pcbnew.exe new file mode 100644 index 0000000..f3780df Binary files /dev/null and b/bin/pcbnew.exe differ diff --git a/bin/pip-script.py b/bin/pip-script.py new file mode 100644 index 0000000..6b0a456 --- /dev/null +++ b/bin/pip-script.py @@ -0,0 +1,12 @@ +#!python.exe +# EASY-INSTALL-ENTRY-SCRIPT: 'pip==9.0.1','console_scripts','pip' +__requires__ = 'pip==9.0.1' +import re +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit( + load_entry_point('pip==9.0.1', 'console_scripts', 'pip')() + ) diff --git a/bin/pip.exe b/bin/pip.exe new file mode 100644 index 0000000..49b476e Binary files /dev/null and b/bin/pip.exe differ diff --git a/bin/pip.exe.manifest b/bin/pip.exe.manifest new file mode 100644 index 0000000..dd6f562 --- /dev/null +++ b/bin/pip.exe.manifest @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/bin/pl_editor.exe b/bin/pl_editor.exe new file mode 100644 index 0000000..4090fd1 Binary files /dev/null and b/bin/pl_editor.exe differ diff --git a/bin/python.exe b/bin/python.exe new file mode 100644 index 0000000..57df250 Binary files /dev/null and b/bin/python.exe differ diff --git a/bin/pythonw.exe b/bin/pythonw.exe new file mode 100644 index 0000000..a84c1d3 Binary files /dev/null and b/bin/pythonw.exe differ diff --git a/bin/scripting/plugins/README-bom.txt b/bin/scripting/plugins/README-bom.txt new file mode 100644 index 0000000..7a53d7d --- /dev/null +++ b/bin/scripting/plugins/README-bom.txt @@ -0,0 +1,38 @@ +bom_?.py are some python scripts which read a generic xml netlist from eeschema, +and create a bom. + +All examples use kicad_netlist_reader.py, which is a python utility to read +and parse this generic xml netlist and create the corresponding data +used to build the bom. + +You can modify them to build the bom you want. + +to use them, you should install python, and run: +python bom_example?.py + +See Eeschema doc, chapter 14 for info about the generic xml netlist format, +and how to run a script from Eeschema to create a customized netlist or BOM. + +If the python comment +""" + @package + some comments +""" +is added to the begining of the python script, the comment will be displayed +in Eescheam, in the BOM dialog + +For instance: +""" + @package + Generate a HTML BOM list. + Components are sorted and grouped by value + Fields are (if exist) + Ref, Quantity, Value, Part, Datasheet, Description, Vendor +""" + +displays: + Generate a HTML BOM list. + Components are sorted and grouped by value + Fields are (if exist) + Ref, Quantity, Value, Part, Datasheet, Description, Vendor +in BOM dialog diff --git a/bin/scripting/plugins/bom2csv.xsl b/bin/scripting/plugins/bom2csv.xsl new file mode 100644 index 0000000..67d588b --- /dev/null +++ b/bin/scripting/plugins/bom2csv.xsl @@ -0,0 +1,99 @@ + + + + + +]> + + + + + + + + + + + Reference, Value, Footprint, Datasheet + + + + , + + + &nl; + + + + + + + + " + "," + "," + "," + " + + &nl; + + + + + + + + + + + + ," + + + + + + + + + + + + + " + + + + diff --git a/bin/scripting/plugins/bom2grouped_csv.xsl b/bin/scripting/plugins/bom2grouped_csv.xsl new file mode 100644 index 0000000..e9b8446 --- /dev/null +++ b/bin/scripting/plugins/bom2grouped_csv.xsl @@ -0,0 +1,104 @@ + + + + + +]> + + + + + + + + + + + + + + Reference, Quantity, Value, Footprint, Datasheet + + + + , + + + + + + + + + + + + &nl; + + + + + , + + , + " + "," + "," + " + + + + + + + + + + + + + + ," + + + + + + + + + " + + + + + + + \ No newline at end of file diff --git a/bin/scripting/plugins/bom_csv_grouped_by_value.py b/bin/scripting/plugins/bom_csv_grouped_by_value.py new file mode 100644 index 0000000..b582d61 --- /dev/null +++ b/bin/scripting/plugins/bom_csv_grouped_by_value.py @@ -0,0 +1,167 @@ +# +# Example python script to generate a BOM from a KiCad generic netlist +# +# Example: Sorted and Grouped CSV BOM +# +""" + @package + Generate a csv BOM list. + Components are sorted by ref and grouped by value + Fields are (if exist) + Item, Qty, Reference(s), Value, LibPart, Footprint, Datasheet + + Command line: + python "pathToFile/bom_csv_grouped_by_value.py" "%I" "%O.csv" +""" + +from __future__ import print_function + +# Import the KiCad python helper module and the csv formatter +import kicad_netlist_reader +import csv +import sys + +def myEqu(self, other): + """myEqu is a more advanced equivalence function for components which is + used by component grouping. Normal operation is to group components based + on their value and footprint. + + In this example of a custom equivalency operator we compare the + value, the part name and the footprint. + """ + result = True + if self.getValue() != other.getValue(): + result = False + elif self.getPartName() != other.getPartName(): + result = False + elif self.getFootprint() != other.getFootprint(): + result = False + + return result + +# Override the component equivalence operator - it is important to do this +# before loading the netlist, otherwise all components will have the original +# equivalency operator. +kicad_netlist_reader.comp.__eq__ = myEqu + +if len(sys.argv) != 3: + print("Usage ", __file__, " ", file=sys.stderr) + sys.exit(1) + + +# 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 +net = kicad_netlist_reader.netlist(sys.argv[1]) + +# Open a file to write to, if the file cannot be opened output to stdout +# instead +try: + f = open(sys.argv[2], 'w') +except IOError: + e = "Can't open output file for writing: " + sys.argv[2] + print( __file__, ":", e, sys.stderr ) + f = sys.stdout + +# subset the components to those wanted in the BOM, controlled +# by block in kicad_netlist_reader.py +components = net.getInterestingComponents() + +compfields = net.gatherComponentFieldUnion(components) +partfields = net.gatherLibPartFieldUnion() + +# remove Reference, Value, Datasheet, and Footprint, they will come from 'columns' below +partfields -= set( ['Reference', 'Value', 'Datasheet', 'Footprint'] ) + +columnset = compfields | partfields # union + +# prepend an initial 'hard coded' list and put the enchillada into list 'columns' +columns = ['Item', 'Qty', 'Reference(s)', 'Value', 'LibPart', 'Footprint', 'Datasheet'] + sorted(list(columnset)) + +# Create a new csv writer object to use as the output formatter +out = csv.writer( f, lineterminator='\n', delimiter=',', quotechar='\"', quoting=csv.QUOTE_ALL ) + +# override csv.writer's writerow() to support encoding conversion (initial encoding is utf8): +def writerow( acsvwriter, columns ): + utf8row = [] + for col in columns: + utf8row.append( str(col) ) # currently, no change + acsvwriter.writerow( utf8row ) + +# Output a set of rows as a header providing general information +writerow( out, ['Source:', net.getSource()] ) +writerow( out, ['Date:', net.getDate()] ) +writerow( out, ['Tool:', net.getTool()] ) +writerow( out, ['Generator:', sys.argv[0]] ) +writerow( out, ['Component Count:', len(components)] ) +writerow( out, [] ) +writerow( out, ['Individual Components:'] ) +writerow( out, [] ) # blank line +writerow( out, columns ) + +# Output all the interesting components individually first: +row = [] +for c in components: + del row[:] + row.append('') # item is blank in individual table + row.append('') # Qty is always 1, why print it + row.append( c.getRef() ) # Reference + row.append( c.getValue() ) # Value + row.append( c.getLibName() + ":" + c.getPartName() ) # LibPart + #row.append( c.getDescription() ) + row.append( c.getFootprint() ) + row.append( c.getDatasheet() ) + + # from column 7 upwards, use the fieldnames to grab the data + for field in columns[7:]: + row.append( c.getField( field ) ); + + writerow( out, row ) + + +writerow( out, [] ) # blank line +writerow( out, [] ) # blank line +writerow( out, [] ) # blank line + +writerow( out, ['Collated Components:'] ) +writerow( out, [] ) # blank line +writerow( out, columns ) # reuse same columns + + + +# Get all of the components in groups of matching parts + values +# (see kicad_netlist_reader.py) +grouped = net.groupComponents(components) + + +# Output component information organized by group, aka as collated: +item = 0 +for group in grouped: + del row[:] + refs = "" + + # Add the reference of every component in the group and keep a reference + # to the component so that the other data can be filled in once per group + for component in group: + if len(refs) > 0: + refs += ", " + refs += component.getRef() + c = component + + # Fill in the component groups common data + # columns = ['Item', 'Qty', 'Reference(s)', 'Value', 'LibPart', 'Footprint', 'Datasheet'] + sorted(list(columnset)) + item += 1 + row.append( item ) + row.append( len(group) ) + row.append( refs ); + row.append( c.getValue() ) + row.append( c.getLibName() + ":" + c.getPartName() ) + row.append( net.getGroupFootprint(group) ) + row.append( net.getGroupDatasheet(group) ) + + # from column 7 upwards, use the fieldnames to grab the data + for field in columns[7:]: + row.append( net.getGroupField(group, field) ); + + writerow( out, row ) + +f.close() diff --git a/bin/scripting/plugins/bom_csv_grouped_by_value_with_fp.py b/bin/scripting/plugins/bom_csv_grouped_by_value_with_fp.py new file mode 100644 index 0000000..dd14af0 --- /dev/null +++ b/bin/scripting/plugins/bom_csv_grouped_by_value_with_fp.py @@ -0,0 +1,65 @@ +# +# Example python script to generate a BOM from a KiCad generic netlist +# +# Example: Sorted and Grouped CSV BOM +# + +""" + @package + Generate a Tab delimited list (csv file type). + Components are sorted by ref and grouped by value with same footprint + Fields are (if exist) + 'Ref', 'Qnty', 'Value', 'Cmp name', 'Footprint', 'Description', 'Vendor' + + Command line: + python "pathToFile/bom_csv_grouped_by_value_with_fp.py" "%I" "%O.csv" +""" + +# Import the KiCad python helper module and the csv formatter +import kicad_netlist_reader +import csv +import sys + +# 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 +net = kicad_netlist_reader.netlist(sys.argv[1]) + +# Open a file to write to, if the file cannot be opened output to stdout +# instead +try: + f = open(sys.argv[2], 'w') +except IOError: + e = "Can't open output file for writing: " + sys.argv[2] + print(__file__, ":", e, sys.stderr) + f = sys.stdout + +# Create a new csv writer object to use as the output formatter +out = csv.writer(f, lineterminator='\n', delimiter=',', quotechar='\"', quoting=csv.QUOTE_ALL) + +# Output a set of rows for a header providing general information +out.writerow(['Source:', net.getSource()]) +out.writerow(['Date:', net.getDate()]) +out.writerow(['Tool:', net.getTool()]) +out.writerow( ['Generator:', sys.argv[0]] ) +out.writerow(['Component Count:', len(net.components)]) +out.writerow(['Ref', 'Qnty', 'Value', 'Cmp name', 'Footprint', 'Description', 'Vendor']) + +# Get all of the components in groups of matching parts + values +# (see ky_generic_netlist_reader.py) +grouped = net.groupComponents() + +# Output all of the component information +for group in grouped: + refs = "" + + # Add the reference of every component in the group and keep a reference + # to the component so that the other data can be filled in once per group + for component in group: + refs += component.getRef() + ", " + c = component + + # Fill in the component groups common data + out.writerow([refs, len(group), c.getValue(), c.getPartName(), c.getFootprint(), + c.getDescription(), c.getField("Vendor")]) + + diff --git a/bin/scripting/plugins/bom_csv_sorted_by_ref.py b/bin/scripting/plugins/bom_csv_sorted_by_ref.py new file mode 100644 index 0000000..e66cc13 --- /dev/null +++ b/bin/scripting/plugins/bom_csv_sorted_by_ref.py @@ -0,0 +1,62 @@ +# +# Example python script to generate a BOM from a KiCad generic netlist +# +# Example: Ungrouped (One component per row) CSV output +# + +""" + @package + Generate a csv list file. + Components are sorted by ref + One component per line + Fields are (if exist) + Ref, value, Part, footprint, Datasheet, Manufacturer, Vendor + + Command line: + python "pathToFile/bom_csv_sorted_by_ref.py" "%I" "%O.csv" +""" + +from __future__ import print_function + +# Import the KiCad python helper module +import kicad_netlist_reader +import csv +import sys + +# 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 +net = kicad_netlist_reader.netlist(sys.argv[1]) + +# Open a file to write to, if the file cannot be opened output to stdout +# instead +try: + f = open(sys.argv[2], 'w') +except IOError: + e = "Can't open output file for writing: " + sys.argv[2] + print( __file__, ":", e, sys.stderr ) + f = sys.stdout + +# Create a new csv writer object to use as the output formatter +out = csv.writer(f, lineterminator='\n', delimiter=',', quotechar="\"", quoting=csv.QUOTE_ALL) + +# override csv.writer's writerow() to support utf8 encoding: +def writerow( acsvwriter, columns ): + utf8row = [] + for col in columns: + utf8row.append( str(col) ) + acsvwriter.writerow( utf8row ) + +components = net.getInterestingComponents() + +# Output a field delimited header line +writerow( out, ['Source:', net.getSource()] ) +writerow( out, ['Date:', net.getDate()] ) +writerow( out, ['Tool:', net.getTool()] ) +writerow( out, ['Component Count:', len(components)] ) +writerow( out, ['Ref', 'Value', 'Footprint', 'Datasheet', 'Manufacturer', 'Vendor'] ) + +# Output all of the component information (One component per row) +for c in components: + writerow( out, [c.getRef(), c.getValue(), c.getFootprint(), c.getDatasheet(), + c.getField("Manufacturer"), c.getField("Vendor")]) + diff --git a/bin/scripting/plugins/bom_html_grouped_by_value.py b/bin/scripting/plugins/bom_html_grouped_by_value.py new file mode 100644 index 0000000..80def66 --- /dev/null +++ b/bin/scripting/plugins/bom_html_grouped_by_value.py @@ -0,0 +1,98 @@ +# +# Example python script to generate a BOM from a KiCad generic netlist +# +# Example: Sorted and Grouped HTML BOM +# +""" + @package + Generate a HTML BOM list. + Components are sorted by ref and grouped by value + Fields are (if exist) + Ref, Quantity, Value, Part, Datasheet, Description, Vendor + + Command line: + python "pathToFile/bom_html_grouped_by_value.py" "%I" "%O.html" +""" + +from __future__ import print_function + +# Import the KiCad python helper module and the csv formatter +import kicad_netlist_reader +import sys + +# Start with a basic html template +html = """ + + + + + + +

+

+

+

+ + +
+ + + """ + +# 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 +net = kicad_netlist_reader.netlist(sys.argv[1]) + +# Open a file to write to, if the file cannot be opened output to stdout +# instead +try: + f = open(sys.argv[2], 'w') +except IOError: + e = "Can't open output file for writing: " + sys.argv[2] + print(__file__, ":", e, file=sys.stderr) + f = sys.stdout + +components = net.getInterestingComponents() + +# Output a set of rows for a header providing general information +html = html.replace('', net.getSource()) +html = html.replace('', net.getDate()) +html = html.replace('', net.getTool()) +html = html.replace('', "Component Count:" + \ + str(len(components))) + +row = "Ref" +row += "Qnty" +row += "Value" + "Part" + "Datasheet" +row += "Description" + "Vendor" + +html = html.replace('', row + "") + +# Get all of the components in groups of matching parts + values +# (see kicad_netlist_reader.py) +grouped = net.groupComponents(components) + +# Output all of the component information +for group in grouped: + refs = "" + + # Add the reference of every component in the group and keep a reference + # to the component so that the other data can be filled in once per group + for component in group: + if len(refs) > 0: + refs += ", " + refs += component.getRef() + c = component + + row = "" + refs +"" + str(len(group)) + row += "" + c.getValue() + row += "" + c.getLibName() + ":" + c.getPartName() + row += "" + c.getDatasheet() + row += "" + c.getDescription() + row += "" + c.getField("Vendor")+ "" + + html = html.replace('', row + "") + +# Print the formatted html to the file +print(html, file=f) diff --git a/bin/scripting/plugins/bom_html_with_advanced_grouping.py b/bin/scripting/plugins/bom_html_with_advanced_grouping.py new file mode 100644 index 0000000..a091351 --- /dev/null +++ b/bin/scripting/plugins/bom_html_with_advanced_grouping.py @@ -0,0 +1,132 @@ +# +# Example python script to generate a BOM from a KiCad generic netlist +# +# Example: Sorted and Grouped HTML BOM with advanced grouping +# + +""" + @package + Generate a HTML BOM list. + Components are sorted and grouped by value + Fields are (if exist) + Ref, Quantity, Value, Part, Footprint, Description, Vendor + + Command line: + python "pathToFile/bom_with_advanced_grouping.py" "%I" "%O.html" +""" + + +from __future__ import print_function + +# Import the KiCad python helper module and the csv formatter +import kicad_netlist_reader +import sys + +# Start with a basic html template +html = """ + + + + + KiCad BOM Example 5 + + +

+

+

+

+ + +
+ + + """ + +def myEqu(self, other): + """myEqu is a more advanced equivalence function for components which is + used by component grouping. Normal operation is to group components based + on their Value and Footprint. + + In this example of a more advanced equivalency operator we also compare the + custom fields Voltage, Tolerance and Manufacturer as well as the assigned + footprint. If these fields are not used in some parts they will simply be + ignored (they will match as both will be empty strings). + + """ + result = True + if self.getValue() != other.getValue(): + result = False + elif self.getPartName() != other.getPartName(): + result = False + elif self.getFootprint() != other.getFootprint(): + result = False + elif self.getField("Tolerance") != other.getField("Tolerance"): + result = False + elif self.getField("Manufacturer") != other.getField("Manufacturer"): + result = False + elif self.getField("Voltage") != other.getField("Voltage"): + result = False + + return result + +# Override the component equivalence operator - it is important to do this +# before loading the netlist, otherwise all components will have the original +# equivalency operator. +kicad_netlist_reader.comp.__eq__ = myEqu + +# Generate an instance of a generic netlist, and load the netlist tree from +# .tmp. If the file doesn't exist, execution will stop +net = kicad_netlist_reader.netlist(sys.argv[1]) + +# Open a file to write too, if the file cannot be opened output to stdout +# instead +try: + f = open(sys.argv[2], 'w') +except IOError: + e = "Can't open output file for writing: " + sys.argv[2] + print(__file__, ":", e, file=sys.stderr) + f = sys.stdout + +# Output a set of rows for a header providing general information +html = html.replace('', net.getSource()) +html = html.replace('', net.getDate()) +html = html.replace('', net.getTool()) +html = html.replace('', "Component Count:" + \ + str(len(net.components))) + +row = "Ref" + "Qnty" +row += "Value" + "Part" + "Footprint" +row += "Description" + "Vendor" + +html = html.replace('', row + "") + +components = net.getInterestingComponents() + +# Get all of the components in groups of matching parts + values +# (see kicad_netlist_reader.py) +grouped = net.groupComponents(components) + +# Output all of the component information +for group in grouped: + refs = "" + + # Add the reference of every component in the group and keep a reference + # to the component so that the other data can be filled in once per group + for component in group: + if len(refs) > 0: + refs += ", " + refs += component.getRef() + c = component + + row = "\n " + row += "" + refs +"" + str(len(group)) + row += "" + c.getValue() + "" + c.getLibName() + ":" + row += c.getPartName() + "" + c.getFootprint() + "" + row += c.getDescription() + "" + c.getField("Vendor") + row += "" + + html = html.replace('', row + "") + +# Print the formatted html to output file +print(html, file=f) diff --git a/bin/scripting/plugins/bom_sorted_by_ref.py b/bin/scripting/plugins/bom_sorted_by_ref.py new file mode 100644 index 0000000..6dd28d5 --- /dev/null +++ b/bin/scripting/plugins/bom_sorted_by_ref.py @@ -0,0 +1,61 @@ +# +# Example python script to generate a BOM from a KiCad generic netlist +# +""" + @package + Generate a BOM list file (a simple text). + Components are sorted by ref + One component per line + Fields are (if exist) + Ref, Quantity, value, Part, footprint, Description, Vendor + Fields are separated by tabs + + Command line: + python "pathToFile/bom_sorted_by_ref.py" "%I" "%O.txt" +""" + +from __future__ import print_function + +# Import the KiCad python helper module and the csv formatter +import kicad_netlist_reader +import csv +import sys + +# 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 +net = kicad_netlist_reader.netlist(sys.argv[1]) + +# Open a file to write to, if the file cannot be opened output to stdout +# instead +try: + f = open(sys.argv[2], 'w') +except IOError: + e = "Can't open output file for writing: " + sys.argv[2] + print(__file__, ":", e, sys.stderr) + f = sys.stdout + +# Create a new csv writer object to use as the output formatter, although we +# are created a tab delimited list instead! +out = csv.writer(f, lineterminator='\n', delimiter='\t', quoting=csv.QUOTE_NONE) + +# override csv.writer's writerow() to support utf8 encoding: +def writerow( acsvwriter, columns ): + utf8row = [] + for col in columns: + txt=str(col); + utf8row.append( txt ) + acsvwriter.writerow( utf8row ) + +components = net.getInterestingComponents() + +# Output a field delimited header line +writerow( out, ['Source:', net.getSource()] ) +writerow( out, ['Date:', net.getDate()] ) +writerow( out, ['Tool:', net.getTool()] ) +writerow( out, ['Component Count:', len(components)] ) +writerow( out, ['Ref', 'Value', 'Part', 'Footprint', 'Description', 'Vendor'] ) + +# Output all of the component information +for c in components: + writerow( out, [c.getRef(), c.getValue(), c.getLibName() + ":" + c.getPartName(), + c.getFootprint(), c.getDescription(), c.getField("Vendor")]) diff --git a/bin/scripting/plugins/bom_with_title_block_2_csv.xsl b/bin/scripting/plugins/bom_with_title_block_2_csv.xsl new file mode 100644 index 0000000..feed1ce --- /dev/null +++ b/bin/scripting/plugins/bom_with_title_block_2_csv.xsl @@ -0,0 +1,167 @@ + + + + +]> + + + + + + + + + + Source,&nl; + Kicad Rev,&nl; + Generated Date,&nl; + + &nl; + + + + + &nl; + + + Reference,Value, + + + , + + Library,Library Ref + &nl; + + + + + + + + + + + Title,&nl; + + + Title,Not Set&nl; + + + + + + + Company,&nl; + + + Company,Not Set&nl; + + + + + + Revision,&nl; + + + Revision,Not Set&nl; + + + + + + Date Issue,&nl; + + + Date Issue,Not Set&nl; + + + + + + + + + + + Comment,&nl; + + + + + + + + + , + , + + + &nl; + + + + + , + + + + + + + + + + + + + + + + + + + + + + + + , + + + + diff --git a/bin/scripting/plugins/kicad_netlist_reader.py b/bin/scripting/plugins/kicad_netlist_reader.py new file mode 100644 index 0000000..407f572 --- /dev/null +++ b/bin/scripting/plugins/kicad_netlist_reader.py @@ -0,0 +1,764 @@ +# +# KiCad python module for interpreting generic netlists which can be used +# to generate Bills of materials, etc. +# +# Remember these files use UTF8 encoding +# +# No string formatting is used on purpose as the only string formatting that +# is current compatible with python 2.4+ to 3.0+ is the '%' method, and that +# is due to be deprecated in 3.0+ soon +# + +""" + @package + Helper module for interpreting generic netlist and build custom + bom generators or netlists in foreign format +""" + + +from __future__ import print_function +import sys +import xml.sax as sax +import re +import pdb + +#--------------------------------------------------------------------- + +# excluded_fields is a list of regular expressions. If any one matches a field +# from either a component or a libpart, then that will not be included as a +# column in the BOM. Otherwise all columns from all used libparts and components +# will be unionized and will appear. Some fields are impossible to blacklist, such +# as Ref, Value, Footprint, and Datasheet. Additionally Qty and Item are supplied +# unconditionally as columns, and may not be removed. +excluded_fields = [ + #'Price@1000' + ] + + +# You may exlude components from the BOM by either: +# +# 1) adding a custom field named "Installed" to your components and filling it +# with a value of "NU" (Normally Uninstalled). +# See netlist.getInterestingComponents(), or +# +# 2) blacklisting it in any of the three following lists: + + +# regular expressions which match component 'Reference' fields of components that +# are to be excluded from the BOM. +excluded_references = [ + 'TP[0-9]+' # all test points + ] + + +# regular expressions which match component 'Value' fields of components that +# are to be excluded from the BOM. +excluded_values = [ + 'MOUNTHOLE', + 'SCOPETEST', + 'MOUNT_HOLE', + 'SOLDER_BRIDGE.*' + ] + + +# regular expressions which match component 'Footprint' fields of components that +# are to be excluded from the BOM. +excluded_footprints = [ + #'MOUNTHOLE' + ] + +#-------------------------------------------------------------------- + + +class xmlElement(): + """xml element which can represent all nodes of the netlist tree. It can be + used to easily generate various output formats by propogating format + requests to children recursively. + """ + def __init__(self, name, parent=None): + self.name = name + self.attributes = {} + self.parent = parent + self.chars = "" + self.children = [] + + def __str__(self): + """String representation of this netlist element + + """ + return self.name + "[" + self.chars + "]" + " attr_count:" + str(len(self.attributes)) + + def formatXML(self, nestLevel=0, amChild=False): + """Return this element formatted as XML + + Keywords: + nestLevel -- increases by one for each level of nesting. + amChild -- If set to True, the start of document is not returned. + + """ + s = "" + + indent = "" + for i in range(nestLevel): + indent += " " + + if not amChild: + s = "\n" + + s += indent + "<" + self.name + for a in self.attributes: + s += " " + a + "=\"" + self.attributes[a] + "\"" + + if (len(self.chars) == 0) and (len(self.children) == 0): + s += "/>" + else: + s += ">" + self.chars + + for c in self.children: + s += "\n" + s += c.formatXML(nestLevel+1, True) + + if (len(self.children) > 0): + s += "\n" + indent + + if (len(self.children) > 0) or (len(self.chars) > 0): + s += "" + + return s + + def formatHTML(self, amChild=False): + """Return this element formatted as HTML + + Keywords: + amChild -- If set to True, the start of document is not returned + + """ + s = "" + + if not amChild: + s = """ + + + + + + + + """ + + s += "\n" + + for c in self.children: + s += c.formatHTML(True) + + if not amChild: + s += """
" + self.name + "
" + self.chars + "
    " + for a in self.attributes: + s += "
  • " + a + " = " + self.attributes[a] + "
  • " + + s += "
+ + """ + + return s + + def addAttribute(self, attr, value): + """Add an attribute to this element""" + if type(value) != str: value = value.encode('utf-8') + self.attributes[attr] = value + + def setAttribute(self, attr, value): + """Set an attributes value - in fact does the same thing as add + attribute + + """ + self.attributes[attr] = value + + def setChars(self, chars): + """Set the characters for this element""" + self.chars = chars + + def addChars(self, chars): + """Add characters (textual value) to this element""" + self.chars += chars + + def addChild(self, child): + """Add a child element to this element""" + self.children.append(child) + return self.children[len(self.children) - 1] + + def getParent(self): + """Get the parent of this element (Could be None)""" + return self.parent + + def getChild(self, name): + """Returns the first child element named 'name' + + Keywords: + name -- The name of the child element to return""" + for child in self.children: + if child.name == name: + return child + return None + + def getChildren(self, name=None): + if name: + # return _all_ children named "name" + ret = [] + for child in self.children: + if child.name == name: + ret.append(child) + return ret + else: + return self.children + + def get(self, elemName, attribute="", attrmatch=""): + """Return the text data for either an attribute or an xmlElement + """ + if (self.name == elemName): + if attribute != "": + try: + if attrmatch != "": + if self.attributes[attribute] == attrmatch: + ret = self.chars + if type(ret) != str: ret = ret.encode('utf-8') + return ret + else: + ret = self.attributes[attribute] + if type(ret) != str: ret = ret.encode('utf-8') + return ret + except AttributeError: + ret = "" + if type(ret) != str: ret = ret.encode('utf-8') + return ret + else: + ret = self.chars + if type(ret) != str: ret = ret.encode('utf-8') + return ret + + for child in self.children: + ret = child.get(elemName, attribute, attrmatch) + if ret != "": + if type(ret) != str: ret = ret.encode('utf-8') + return ret + + ret = "" + if type(ret) != str: ret = ret.encode('utf-8') + return ret + + + +class libpart(): + """Class for a library part, aka 'libpart' in the xml netlist file. + (Components in eeschema are instantiated from library parts.) + This part class is implemented by wrapping an xmlElement with accessors. + This xmlElement instance is held in field 'element'. + """ + def __init__(self, xml_element): + # + self.element = xml_element + + #def __str__(self): + # simply print the xmlElement associated with this part + #return str(self.element) + + def getLibName(self): + return self.element.get("libpart", "lib") + + def getPartName(self): + return self.element.get("libpart", "part") + + def getDescription(self): + return self.element.get("description") + + def getField(self, name): + return self.element.get("field", "name", name) + + def getFieldNames(self): + """Return a list of field names in play for this libpart. + """ + fieldNames = [] + fields = self.element.getChild('fields') + if fields: + for f in fields.getChildren(): + fieldNames.append( f.get('field','name') ) + return fieldNames + + def getDatasheet(self): + return self.getField("Datasheet") + + def getFootprint(self): + return self.getField("Footprint") + + def getAliases(self): + """Return a list of aliases or None""" + aliases = self.element.getChild("aliases") + if aliases: + ret = [] + children = aliases.getChildren() + # grab the text out of each child: + for child in children: + ret.append( child.get("alias") ) + return ret + return None + + +class comp(): + """Class for a component, aka 'comp' in the xml netlist file. + This component class is implemented by wrapping an xmlElement instance + with accessors. The xmlElement is held in field 'element'. + """ + + def __init__(self, xml_element): + self.element = xml_element + self.libpart = None + + # Set to true when this component is included in a component group + self.grouped = False + + def __eq__(self, other): + """ Equivalency operator, remember this can be easily overloaded + 2 components are equivalent ( i.e. can be grouped + if they have same value and same footprint + + Override the component equivalence operator must be done before + loading the netlist, otherwise all components will have the original + equivalency operator. + + You have to define a comparison module (for instance named myEqu) + and add the line; + kicad_netlist_reader.comp.__eq__ = myEqu + in your bom generator script before calling the netliste reader by something like: + net = kicad_netlist_reader.netlist(sys.argv[1]) + """ + result = False + if self.getValue() == other.getValue(): + if self.getFootprint() == other.getFootprint(): + result = True + return result + + def setLibPart(self, part): + self.libpart = part + + def getLibPart(self): + return self.libpart + + def getPartName(self): + return self.element.get("libsource", "part") + + def getLibName(self): + return self.element.get("libsource", "lib") + + def setValue(self, value): + """Set the value of this component""" + v = self.element.getChild("value") + if v: + v.setChars(value) + + def getValue(self): + return self.element.get("value") + + def getField(self, name, libraryToo=True): + """Return the value of a field named name. The component is first + checked for the field, and then the components library part is checked + for the field. If the field doesn't exist in either, an empty string is + returned + + Keywords: + name -- The name of the field to return the value for + libraryToo -- look in the libpart's fields for the same name if not found + in component itself + """ + + field = self.element.get("field", "name", name) + if field == "" and libraryToo: + field = self.libpart.getField(name) + return field + + def getFieldNames(self): + """Return a list of field names in play for this component. Mandatory + fields are not included, and they are: Value, Footprint, Datasheet, Ref. + The netlist format only includes fields with non-empty values. So if a field + is empty, it will not be present in the returned list. + """ + fieldNames = [] + fields = self.element.getChild('fields') + if fields: + for f in fields.getChildren(): + fieldNames.append( f.get('field','name') ) + return fieldNames + + def getRef(self): + return self.element.get("comp", "ref") + + def getFootprint(self, libraryToo=True): + ret = self.element.get("footprint") + if ret =="" and libraryToo: + ret = self.libpart.getFootprint() + return ret + + def getDatasheet(self, libraryToo=True): + ret = self.element.get("datasheet") + if ret == '' and libraryToo: + ret = self.libpart.getDatasheet() + return ret + + def getTimestamp(self): + return self.element.get("tstamp") + + def getDescription(self): + return self.libpart.getDescription() + + +class netlist(): + """ Kicad generic netlist class. Generally loaded from a kicad generic + netlist file. Includes several helper functions to ease BOM creating + scripts + + """ + def __init__(self, fname=""): + """Initialiser for the genericNetlist class + + Keywords: + fname -- The name of the generic netlist file to open (Optional) + + """ + self.design = None + self.components = [] + self.libparts = [] + self.libraries = [] + self.nets = [] + + # The entire tree is loaded into self.tree + self.tree = [] + + self._curr_element = None + + # component blacklist regexs, made from exluded_* above. + self.excluded_references = [] + self.excluded_values = [] + self.excluded_footprints = [] + + if fname != "": + self.load(fname) + + def addChars(self, content): + """Add characters to the current element""" + self._curr_element.addChars(content) + + def addElement(self, name): + """Add a new kicad generic element to the list""" + if self._curr_element == None: + self.tree = xmlElement(name) + self._curr_element = self.tree + else: + self._curr_element = self._curr_element.addChild( + xmlElement(name, self._curr_element)) + + # If this element is a component, add it to the components list + if self._curr_element.name == "comp": + self.components.append(comp(self._curr_element)) + + # Assign the design element + if self._curr_element.name == "design": + self.design = self._curr_element + + # If this element is a library part, add it to the parts list + if self._curr_element.name == "libpart": + self.libparts.append(libpart(self._curr_element)) + + # If this element is a net, add it to the nets list + if self._curr_element.name == "net": + self.nets.append(self._curr_element) + + # If this element is a library, add it to the libraries list + if self._curr_element.name == "library": + self.libraries.append(self._curr_element) + + return self._curr_element + + def endDocument(self): + """Called when the netlist document has been fully parsed""" + # When the document is complete, the library parts must be linked to + # the components as they are seperate in the tree so as not to + # duplicate library part information for every component + for c in self.components: + for p in self.libparts: + if p.getLibName() == c.getLibName(): + if p.getPartName() == c.getPartName(): + c.setLibPart(p) + break + else: + aliases = p.getAliases() + if aliases and self.aliasMatch( c.getPartName(), aliases ): + c.setLibPart(p) + break; + + if not c.getLibPart(): + print( 'missing libpart for ref:', c.getRef(), c.getPartName(), c.getLibName() ) + + + def aliasMatch(self, partName, aliasList): + for alias in aliasList: + if partName == alias: + return True + return False + + def endElement(self): + """End the current element and switch to its parent""" + self._curr_element = self._curr_element.getParent() + + def getDate(self): + """Return the date + time string generated by the tree creation tool""" + return self.design.get("date") + + def getSource(self): + """Return the source string for the design""" + return self.design.get("source") + + def getTool(self): + """Return the tool string which was used to create the netlist tree""" + return self.design.get("tool") + + def gatherComponentFieldUnion(self, components=None): + """Gather the complete 'set' of unique component fields, fields found in any component. + """ + if not components: + components=self.components + + s = set() + for c in components: + s.update( c.getFieldNames() ) + + # omit anything matching any regex in excluded_fields + ret = set() + for field in s: + exclude = False + for rex in excluded_fields: + if re.match( rex, field ): + exclude = True + break + if not exclude: + ret.add(field) + + return ret # this is a python 'set' + + def gatherLibPartFieldUnion(self): + """Gather the complete 'set' of part fields, fields found in any part. + """ + s = set() + for p in self.libparts: + s.update( p.getFieldNames() ) + + # omit anything matching any regex in excluded_fields + ret = set() + for field in s: + exclude = False + for rex in excluded_fields: + if re.match( rex, field ): + exclude = True + break + if not exclude: + ret.add(field) + + return ret # this is a python 'set' + + def getInterestingComponents(self): + """Return a subset of all components, those that should show up in the BOM. + Omit those that should not, by consulting the blacklists: + excluded_values, excluded_refs, and excluded_footprints, which hold one + or more regular expressions. If any of the the regular expressions match + the corresponding field's value in a component, then the component is exluded. + """ + + # pre-compile all the regex expressions: + del self.excluded_references[:] + del self.excluded_values[:] + del self.excluded_footprints[:] + + for rex in excluded_references: + self.excluded_references.append( re.compile( rex ) ) + + for rex in excluded_values: + self.excluded_values.append( re.compile( rex ) ) + + for rex in excluded_footprints: + self.excluded_footprints.append( re.compile( rex ) ) + + # the subset of components to return, considered as "interesting". + ret = [] + + # run each component thru a series of tests, if it passes all, then add it + # to the interesting list 'ret'. + for c in self.components: + exclude = False + if not exclude: + for refs in self.excluded_references: + if refs.match(c.getRef()): + exclude = True + break; + if not exclude: + for vals in self.excluded_values: + if vals.match(c.getValue()): + exclude = True + break; + if not exclude: + for mods in self.excluded_footprints: + if mods.match(c.getFootprint()): + exclude = True + break; + + if not exclude: + # This is a fairly personal way to flag DNS (Do Not Stuff). NU for + # me means Normally Uninstalled. You can 'or in' another expression here. + if c.getField( "Installed" ) == 'NU': + exclude = True + + if not exclude: + ret.append(c) + + # Sort first by ref as this makes for easier to read BOM's + def f(v): + return re.sub(r'([A-z]+)[0-9]+', r'\1', v) + '%08i' % int(re.sub(r'[A-z]+([0-9]+)', r'\1', v)) + ret.sort(key=lambda g: f(g.getRef())) + + return ret + + + def groupComponents(self, components = None): + """Return a list of component lists. Components are grouped together + when the value, library and part identifiers match. + + Keywords: + components -- is a list of components, typically an interesting subset + of all components, or None. If None, then all components are looked at. + """ + if not components: + components = self.components + + groups = [] + + # Make sure to start off will all components ungrouped to begin with + for c in components: + c.grouped = False + + # Group components based on the value, library and part identifiers + for c in components: + if c.grouped == False: + c.grouped = True + newgroup = [] + newgroup.append(c) + + # Check every other ungrouped component against this component + # and add to the group as necessary + for ci in components: + if ci.grouped == False and ci == c: + newgroup.append(ci) + ci.grouped = True + + # Add the new component group to the groups list + groups.append(newgroup) + + # Each group is a list of components, we need to sort each list first + # to get them in order as this makes for easier to read BOM's + def f(v): + return re.sub(r'([A-z]+)[0-9]+', r'\1', v) + '%08i' % int(re.sub(r'[A-z]+([0-9]+)', r'\1', v)) + for g in groups: + g = sorted(g, key=lambda g: f(g.getRef())) + + # Finally, sort the groups to order the references alphabetically + groups = sorted(groups, key=lambda group: f(group[0].getRef())) + + return groups + + def getGroupField(self, group, field): + """Return the whatever is known about the given field by consulting each + component in the group. If any of them know something about the property/field, + then return that first non-blank value. + """ + for c in group: + ret = c.getField(field, False) + if ret != '': + return ret + return group[0].getLibPart().getField(field) + + def getGroupFootprint(self, group): + """Return the whatever is known about the Footprint by consulting each + component in the group. If any of them know something about the Footprint, + then return that first non-blank value. + """ + for c in group: + ret = c.getFootprint() + if ret != "": + return ret + return group[0].getLibPart().getFootprint() + + def getGroupDatasheet(self, group): + """Return the whatever is known about the Datasheet by consulting each + component in the group. If any of them know something about the Datasheet, + then return that first non-blank value. + """ + for c in group: + ret = c.getDatasheet() + if ret != "": + return ret + + if len(group) > 0: + return group[0].getLibPart().getDatasheet() + else: + print("NULL!") + return '' + + def formatXML(self): + """Return the whole netlist formatted in XML""" + return self.tree.formatXML() + + def formatHTML(self): + """Return the whole netlist formatted in HTML""" + return self.tree.formatHTML() + + def load(self, fname): + """Load a kicad generic netlist + + Keywords: + fname -- The name of the generic netlist file to open + + """ + try: + self._reader = sax.make_parser() + self._reader.setContentHandler(_gNetReader(self)) + self._reader.parse(fname) + except IOError as e: + print( __file__, ":", e, file=sys.stderr ) + sys.exit(-1) + + + +class _gNetReader(sax.handler.ContentHandler): + """SAX kicad generic netlist content handler - passes most of the work back + to the 'netlist' class which builds a complete tree in RAM for the design + + """ + def __init__(self, aParent): + self.parent = aParent + + def startElement(self, name, attrs): + """Start of a new XML element event""" + element = self.parent.addElement(name) + + for name in attrs.getNames(): + element.addAttribute(name, attrs.getValue(name)) + + def endElement(self, name): + self.parent.endElement() + + def characters(self, content): + # Ignore erroneous white space - ignoreableWhitespace does not get rid + # of the need for this! + if not content.isspace(): + self.parent.addChars(content) + + def endDocument(self): + """End of the XML document event""" + self.parent.endDocument() diff --git a/bin/scripting/plugins/netlist_form_OrcadPcb2.xsl b/bin/scripting/plugins/netlist_form_OrcadPcb2.xsl new file mode 100644 index 0000000..3017711 --- /dev/null +++ b/bin/scripting/plugins/netlist_form_OrcadPcb2.xsl @@ -0,0 +1,210 @@ + + + + +]> + + + + + + + ( { EESchema Netlist Version 1.1 + + + + + }&nl; + + + + + + )&nl;*&nl; + + + + + + + + + + + &nl; + + + + + ( + + + + + + 00000000 + + + + + + + + + $noname + + + + + + + + + + + "~" + + + &nl; + + + + + )&nl; + + + + + + + + + + + + + + + + + + + + + + ( + + + + + + + + + + + + + + + + + + )&nl; + + + + + + + + + + + + + + + + + + + + $N-0 + + + + + ? + + + + + + + diff --git a/bin/scripting/plugins/netlist_form_cadstar-RINF.xsl b/bin/scripting/plugins/netlist_form_cadstar-RINF.xsl new file mode 100644 index 0000000..7df4b76 --- /dev/null +++ b/bin/scripting/plugins/netlist_form_cadstar-RINF.xsl @@ -0,0 +1,131 @@ + + + + +]> + + + + + + + .HEA&nl; + + + &nl; + + &nl;&nl; + + &nl;.END&nl; + + + + + .APP " + + "&nl; + + + + + .TIM + + &nl; + + + + + + .ADD_COM + + + + + + + + ? + + + + + + + + + + + &nl; + + + + + + + + + + + + + + + N- + + + + &nl; + + + + + + + + + + + .ADD_TER + + . + + + + + + + + + + + .TER + + + + + + + + . + + &nl; + + + + diff --git a/bin/scripting/plugins/netlist_form_cadstar.xsl b/bin/scripting/plugins/netlist_form_cadstar.xsl new file mode 100644 index 0000000..0c72f53 --- /dev/null +++ b/bin/scripting/plugins/netlist_form_cadstar.xsl @@ -0,0 +1,123 @@ + + + + +]> + + + + + + + .HEA&nl; + + + &nl; + + &nl;&nl; + + &nl;.END&nl; + + + + + .APP " + + "&nl; + + + + + .TIM + + &nl; + + + + + + .ADD_COM + + + + + " " + + + "" + + + &nl; + + + + + + + + + " + + + + + + N- + + + + "&nl; + + + + + + + + + + + .ADD_TER + + . + + + + + + + + + + + .TER + + + + + + + + . + + &nl; + + + + diff --git a/bin/scripting/plugins/netlist_form_pads-pcb.xsl b/bin/scripting/plugins/netlist_form_pads-pcb.xsl new file mode 100644 index 0000000..355072c --- /dev/null +++ b/bin/scripting/plugins/netlist_form_pads-pcb.xsl @@ -0,0 +1,69 @@ + + + + +]> + + + + + + *PADS-PCB*&nl;*PART*&nl; + + &nl;*NET*&nl; + + *END*&nl; + + + + + + + + + + + + + unknown + + + &nl; + + + + + + + *SIGNAL* + + + + + + N- + + + + &nl; + + + + + + + + + . + + &nl; + + + diff --git a/bin/ssleay32.dll b/bin/ssleay32.dll new file mode 100644 index 0000000..18f9df2 Binary files /dev/null and b/bin/ssleay32.dll differ diff --git a/bin/wxbase30u_gcc_custom.dll b/bin/wxbase30u_gcc_custom.dll new file mode 100644 index 0000000..8b43755 Binary files /dev/null and b/bin/wxbase30u_gcc_custom.dll differ diff --git a/bin/wxbase30u_net_gcc_custom.dll b/bin/wxbase30u_net_gcc_custom.dll new file mode 100644 index 0000000..ac85a38 Binary files /dev/null and b/bin/wxbase30u_net_gcc_custom.dll differ diff --git a/bin/wxbase30u_xml_gcc_custom.dll b/bin/wxbase30u_xml_gcc_custom.dll new file mode 100644 index 0000000..5a888a3 Binary files /dev/null and b/bin/wxbase30u_xml_gcc_custom.dll differ diff --git a/bin/wxmsw30u_adv_gcc_custom.dll b/bin/wxmsw30u_adv_gcc_custom.dll new file mode 100644 index 0000000..a01a815 Binary files /dev/null and b/bin/wxmsw30u_adv_gcc_custom.dll differ diff --git a/bin/wxmsw30u_aui_gcc_custom.dll b/bin/wxmsw30u_aui_gcc_custom.dll new file mode 100644 index 0000000..0be85af Binary files /dev/null and b/bin/wxmsw30u_aui_gcc_custom.dll differ diff --git a/bin/wxmsw30u_core_gcc_custom.dll b/bin/wxmsw30u_core_gcc_custom.dll new file mode 100644 index 0000000..76a5ff8 Binary files /dev/null and b/bin/wxmsw30u_core_gcc_custom.dll differ diff --git a/bin/wxmsw30u_gl_gcc_custom.dll b/bin/wxmsw30u_gl_gcc_custom.dll new file mode 100644 index 0000000..bc2c224 Binary files /dev/null and b/bin/wxmsw30u_gl_gcc_custom.dll differ diff --git a/bin/wxmsw30u_html_gcc_custom.dll b/bin/wxmsw30u_html_gcc_custom.dll new file mode 100644 index 0000000..ab066bc Binary files /dev/null and b/bin/wxmsw30u_html_gcc_custom.dll differ diff --git a/bin/wxmsw30u_propgrid_gcc_custom.dll b/bin/wxmsw30u_propgrid_gcc_custom.dll new file mode 100644 index 0000000..4cdf0e0 Binary files /dev/null and b/bin/wxmsw30u_propgrid_gcc_custom.dll differ diff --git a/bin/wxmsw30u_qa_gcc_custom.dll b/bin/wxmsw30u_qa_gcc_custom.dll new file mode 100644 index 0000000..321da88 Binary files /dev/null and b/bin/wxmsw30u_qa_gcc_custom.dll differ diff --git a/bin/wxmsw30u_ribbon_gcc_custom.dll b/bin/wxmsw30u_ribbon_gcc_custom.dll new file mode 100644 index 0000000..0d394ba Binary files /dev/null and b/bin/wxmsw30u_ribbon_gcc_custom.dll differ diff --git a/bin/wxmsw30u_richtext_gcc_custom.dll b/bin/wxmsw30u_richtext_gcc_custom.dll new file mode 100644 index 0000000..b44b249 Binary files /dev/null and b/bin/wxmsw30u_richtext_gcc_custom.dll differ diff --git a/bin/wxmsw30u_stc_gcc_custom.dll b/bin/wxmsw30u_stc_gcc_custom.dll new file mode 100644 index 0000000..da3e895 Binary files /dev/null and b/bin/wxmsw30u_stc_gcc_custom.dll differ diff --git a/bin/wxmsw30u_webview_gcc_custom.dll b/bin/wxmsw30u_webview_gcc_custom.dll new file mode 100644 index 0000000..8e4a71e Binary files /dev/null and b/bin/wxmsw30u_webview_gcc_custom.dll differ diff --git a/bin/wxmsw30u_xrc_gcc_custom.dll b/bin/wxmsw30u_xrc_gcc_custom.dll new file mode 100644 index 0000000..d66d00f Binary files /dev/null and b/bin/wxmsw30u_xrc_gcc_custom.dll differ diff --git a/bin/xsltproc.exe b/bin/xsltproc.exe new file mode 100644 index 0000000..3659bf2 Binary files /dev/null and b/bin/xsltproc.exe differ diff --git a/bin/zlib1.dll b/bin/zlib1.dll new file mode 100644 index 0000000..c8c39e3 Binary files /dev/null and b/bin/zlib1.dll differ -- cgit