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.5.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bomcheck-2.5-py3-none-any.whl (46.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bomcheck-2.5.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for bomcheck-2.5.tar.gz
Algorithm Hash digest
SHA256 f5579d8699dcc9076c0362101e1379926219219ad38e34a45646a9362035fc89
MD5 fc1caa3470a84429b8b1ba08c339b8fa
BLAKE2b-256 1c575204f2e1c3d4fac25da05e0f595fcb1dc13b0078685867f0bb54da09c9a5

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for bomcheck-2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b1a8c337594290456218b1c8a250ad1ff47fb69ad450b63ed5baa3bc31bac6e3
MD5 fb58c575ca7c826f4b96146f8853483f
BLAKE2b-256 3f28d032313d0eee293390fd0580e4342a2690d7fff23e6542cc405615917162

See more details on using hashes here.

Supported by

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