Skip to main content

Compare BOMs stored in Excel files

Project description

bomcheck

What the program does

The bomcheck.py program compares Bills of Materials (BOMs). BOMs from a CAD (Computer Aided Design) program like SolidWorks are compared to BOMs from an ERP (Enterprise Resource Planning) program like SyteLine. The CAD and ERP programs must be able to export to Excel files because that is where bomcheck gathers data from.

How to install

Assuming that you already have Python on your machine, use the package manager software pip that comes with Python and run this from a command line:

pip install bomcheck

Compared BOMs come from Excel files

The name of a file containing a BOM that comes from a CAD program must have the syntax: PartNumberOfBOM_sw.xlsx. That is, names like 0399-2344-005_sw.xlsx, 093352_sw.xlsx, and 35K2445_sw.xlsx are all legitimate file names. The names of the files from the ERP program have the same syntax, but instead end with _sl.xlsx. Thus the names will look like 0399-2344-005_sl.xlsx, 093352_sl.xlsx, and 35K2445_sl.xlsx. The program will match the 0399-2344-005_sw.xlsx file to the 0399-2344-005_sl.xlsx file, and so forth.

Multilevel BOMs are allowed

A file can contain a mulilevel BOM. In which case individual BOMs are extracted from a top level BOM. For a BOM from the ERP program to be recognized as a multilevel BOM, a column named "Level" must exist that gives the relative level of a subassembly to the main assembly. (The name "Level" can be altered with the file bomcheck.cfg. See info below.) The Level column starts out with "0" for the top level assembly, "1" for part/subassemblies under the main assembly, "2" for a part/subassembly under a Level "1" subassembly, and so forth. From the CAD program, it is similar. However item nos. indicate the Level, for example item nos. like 1, 2, 3, 3.1, 3.2, 3.2.1, 3.2.2, 3.3, 4, etc., where item 3 is a subassembly with parts under it.

How to run

Enter this on the command line to run:

bomcheck

(An easier way to get started is to use bomcheckgui)

Sample output

An Excel file is output. Shown below is an example of the result of a BOM comparison:

assy Item IQDU Q_sw Q_sl Descripton_sw Description_sl U_sw U_sl
730322 130031 XXXX 1 HOUSING EA
130039 XXXX 1 HOUSING EA
220978 ‒‒‒‒ 1 1 SPUR GEAR SPUR GEAR EA EA
275000 ‒‒‒‒ 0.35 0.35 TUBE TUBE FT FT
380000 ‒‒‒‒ 2 2 BEARING BEARING EA EA
441530 ‒‒‒‒ 1 1 SHIFT ASSY SHIFT ASSY EA EA
799944 ‒‒X‒ 1 1 SHAFT AXLE EA EA
877325 ‒XX‒ 3 1 PLUG SQ. HEAD PLUG EA EA
900000 ‒‒‒‒ 0.75 0.75 OIL OIL GAL GAL
441530 433255 ‒‒‒‒ 1 1 ROD ROD EA EA
500000 ‒‒‒‒ 1 1 SHIFT FORK SHIFT FORK EA EA
K34452 ‒‒‒‒ 1 1 SPRING PIN SPRING PIN EA EA

The column IQDU shows Xs if Item, Quantity, Description, or Unit of measure don't match between the two BOMs. Q_sw is the quantity per the CAD BOM, Q_sl per the ERP BOM, and so forth. In the example above, 1309031 is in the ERP BOM, but not in SolidWorks. 130039 is in the CAD's BOM, but not in the ERP's BOM.

Units of measure

If a Unit of Measure (U/M) is not given for a value in the Length column of a SolidWorks' BOM, then the U/M is assumed to be inches unless explicity specified, e.g. 336.7 mm. The program recognizes the follwing U/Ms:

in, inch, ", ft, ', feet, foot, yrd, yd, yard, mm, millimeter, cm, centimeter, m, meter, mtr, sqin, sqi, sqft, sqf, sqyd, sqy, sqmm, sqcm, sqm, pint, pt, qt, quart, gal, g, gallon, ltr, l, liter

When the program is run, values will be converted to the U/M given in the ERP's BOM. For example, if the ERP program uses FT as a U/M, then comparison results will be shown in feet.

bomcheck.cfg

Bomcheck has a configuration file available named bomcheck.cfg. With it the default U/M measure can be switched from inches to mm, or to some other U/M. Also, column names can be changed, and so forth. Within the bomcheck.cfg file are explanations about settings that can be employed. To get started, download the bomcheck.cfg from here, then open the file with a text editor and modify it as suits you best.

 


 

You can try out the program online by clicking:    Open In Colab or Binder,    These are both Jupyter Notebooks. Open the file browser of the notebook (folder icon at upper left), create a folder named "mydata", and upload your data to it.

For more information, see the web page bomcheck_help.html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bomcheck-2.0.0.tar.gz (907.6 kB view details)

Uploaded Source

Built Distribution

bomcheck-2.0.0-py3-none-any.whl (39.2 kB view details)

Uploaded Python 3

File details

Details for the file bomcheck-2.0.0.tar.gz.

File metadata

  • Download URL: bomcheck-2.0.0.tar.gz
  • Upload date:
  • Size: 907.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for bomcheck-2.0.0.tar.gz
Algorithm Hash digest
SHA256 35bba5600f14df36ec0bee1c0e4cbfdb3df6712aa2c7cc76f3c74bd5efb4d1bc
MD5 193b69c771b1a804c0a2ec54a560fb98
BLAKE2b-256 460c866bac483019ac2b0f3e6b5802563b6e7db6ba3bae2b06370922dcb721ed

See more details on using hashes here.

File details

Details for the file bomcheck-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: bomcheck-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 39.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for bomcheck-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f2cce50a9ef9e9ad88a2cc8562230a57e3842fa6d5a983205ba49012e893239
MD5 2195072b2b02375662b0244c973d2931
BLAKE2b-256 2d3b362d37d55e7fd7489956f56b49303af332c4e5555626fbfd2cabc3087344

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page