bomcheck


Namebomcheck JSON
Version 1.9.7 PyPI version JSON
download
home_pagehttps://github.com/kcarlton55/bomcheck
SummaryCompare BOMs stored in Excel files.
upload_time2024-04-29 03:05:14
maintainerNone
docs_urlNone
authorKenneth Edward Carlton
requires_python>=3.8
licenseGPLv3+
keywords bom boms compare bill materials solidworks syteline erp
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # **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](https://en.wikipedia.org/wiki/Pip_(package_manager))
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 from the CAD program has 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](https://github.com/kcarlton55/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  ***I***tem, ***Q***uantity, ***D***escription,
or ***U***nit 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](https://github.com/kcarlton55/bomcheck/tree/master/docs),
then open the file with a text editor and modify it as suits you best.

 

<hr style="border:2px solid grey">

&nbsp;

You can try out the program online by clicking:&nbsp; &nbsp;
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/kcarlton55/bomcheck/blob/master/bc-colab.ipynb) or
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/kcarlton55/bomcheck/master?labpath=bomcheck.ipynb),&nbsp; &nbsp;
These are both
[Jupyter Notebooks](https://www.codecademy.com/article/how-to-use-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](https://htmlpreview.github.io/?https://github.com/kcarlton55/bomcheck/blob/master/help_files/bomcheck_help.html)




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/kcarlton55/bomcheck",
    "name": "bomcheck",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "BOM, BOMs, compare, bill, materials, SolidWorks, SyteLine, ERP",
    "author": "Kenneth Edward Carlton",
    "author_email": "kencarlton55@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/db/60/02a13e198c770c7819565ee0156a93dc787f5e922ce3a733fe411dd3aa53/bomcheck-1.9.7.tar.gz",
    "platform": null,
    "description": "# **bomcheck**\n\n\n## **What the program does**\nThe bomcheck.py program compares Bills of Materials (BOMs). BOMs from\na CAD (Computer Aided Design) program like SolidWorks are compared to\nBOMs from an ERP (Enterprise Resource Planning) program like SyteLine.\nThe CAD and ERP programs must be able to export to Excel files\nbecause that is where bomcheck gathers data from.\n\n## **How to install**\nAssuming that you already have Python on your machine, use the package\nmanager software [pip](https://en.wikipedia.org/wiki/Pip_(package_manager))\nthat comes with Python and run this from a command line:\n\n`pip install bomcheck`\n\n## **Compared BOMs come from Excel files**\nThe name of a file containing a BOM from the CAD program has the syntax:\n`PartNumberOfBOM_sw.xlsx`.  That is, names like 0399-2344-005_sw.xlsx,\n093352_sw.xlsx, and 35K2445_sw.xlsx are all legitimate file names. The\nnames of the files from the ERP program have the same syntax, but instead\nend with `_sl.xlsx`. Thus the names will look like 0399-2344-005_sl.xlsx,\n093352_sl.xlsx, and 35K2445_sl.xlsx. The program will match the\n0399-2344-005_**sw**.xlsx file to the 0399-2344-005_**sl**.xlsx\nfile, and so forth.\n\n\n## **Multilevel BOMs are allowed**\nA file can contain a mulilevel BOM.  In which case individual BOMs are\nextracted from a top level BOM.  For a BOM from the ERP program to be\nrecognized as a multilevel BOM, a column named \"Level\" must exist\nthat gives the relative level of a subassembly to the main assembly.\n(The name \"Level\" can be altered with the file bomcheck.cfg.  See info\nbelow.) The Level column starts out with \"0\" for the top level assembly,\n\"1\" for part/subassemblies under the main assembly, \"2\" for a\npart/subassembly under a Level \"1\" subassembly, and so forth. From the\nCAD program, it is similar.  However item nos. indicate the Level, for\nexample item nos. like 1, 2, 3, 3.1, 3.2, 3.2.1, 3.2.2, 3.3, 4, etc.,\nwhere item 3 is a subassembly with parts under it.\n\n\n## **How to run**\n\nEnter this on the command line to run:\n\n`bomcheck`\n\n(An easier way to get started is to use [bomcheckgui](https://github.com/kcarlton55/bomcheckgui))\n\n\n## **Sample output**\nAn Excel file is output. Shown below is an example of the result of a BOM\ncomparison:\n\n| assy   | Item   | IQDU | Q_sw | Q_sl | Descripton_sw | Description_sl | U_sw | U_sl |\n|--------|--------|------| :-:  | :-:  |---------------|----------------| :-:  | :-:  |\n| 730322 | 130031 | XXXX |      |  1   |               | HOUSING        |      |  EA  |\n|        | 130039 | XXXX |  1   |      | HOUSING       |                |  EA  |      |\n|        | 220978 | \u2012\u2012\u2012\u2012 |  1   |  1   | SPUR GEAR     | SPUR GEAR      |  EA  |  EA  |\n|        | 275000 | \u2012\u2012\u2012\u2012 | 0.35 | 0.35 | TUBE          | TUBE           |  FT  |  FT  |\n|        | 380000 | \u2012\u2012\u2012\u2012 |  2   |  2   | BEARING       | BEARING        |  EA  |  EA  |\n|        | 441530 | \u2012\u2012\u2012\u2012 |  1   |  1   | SHIFT ASSY    | SHIFT ASSY     |  EA  |  EA  |\n|        | 799944 | \u2012\u2012X\u2012 |  1   |  1   | SHAFT         | AXLE           |  EA  |  EA  |\n|        | 877325 | \u2012XX\u2012 |  3   |  1   | PLUG          | SQ. HEAD PLUG  |  EA  |  EA  |\n|        | 900000 | \u2012\u2012\u2012\u2012 | 0.75 | 0.75 | OIL           | OIL            |  GAL |  GAL |\n| 441530 | 433255 | \u2012\u2012\u2012\u2012 |  1   |  1   | ROD           | ROD            |  EA  |  EA  |\n|        | 500000 | \u2012\u2012\u2012\u2012 |  1   |  1   | SHIFT FORK    | SHIFT FORK     |  EA  |  EA  |\n|        | K34452 | \u2012\u2012\u2012\u2012 |  1   |  1   | SPRING PIN    | SPRING PIN     |  EA  |  EA  |\n\nThe column IQDU shows Xs if  ***I***tem, ***Q***uantity, ***D***escription,\nor ***U***nit of measure don't match between the two BOMs. Q_sw is the quantity\nper the CAD BOM, Q_sl per the ERP BOM, and so forth. In the example above,\n1309031 is in the  ERP BOM, but not in SolidWorks. 130039 is in the CAD's BOM,\nbut not in the ERP's BOM.\n\n\n## **Units of measure**\nIf a Unit of Measure (U/M) is not given for a value in the Length column of\na SolidWorks' BOM, then the U/M is assumed to be inches unless explicity\nspecified, e.g. 336.7 mm. The program recognizes the follwing U/Ms:\n\n`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`\n\nWhen the program is run, values will be converted to the U/M given in the ERP's\nBOM.  For example, if the ERP program uses FT as a U/M, then comparison results\nwill be shown in feet.\n\n\n## **bomcheck.cfg**\nBomcheck has a configuration file available named bomcheck.cfg.  With it the\ndefault U/M measure can be switched from inches to mm, or to some other U/M.\nAlso, column names can be changed, and so forth.  Within the bomcheck.cfg\nfile are explanations about settings that can be employed.  To get started, download\nthe bomcheck.cfg from [here](https://github.com/kcarlton55/bomcheck/tree/master/docs),\nthen open the file with a text editor and modify it as suits you best.\n\n&nbsp;\n\n<hr style=\"border:2px solid grey\">\n\n&nbsp;\n\nYou can try out the program online by clicking:&nbsp; &nbsp;\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/kcarlton55/bomcheck/blob/master/bc-colab.ipynb) or\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/kcarlton55/bomcheck/master?labpath=bomcheck.ipynb),&nbsp; &nbsp;\nThese are both\n[Jupyter Notebooks](https://www.codecademy.com/article/how-to-use-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.\n\nFor more information, see the web page [bomcheck_help.html](https://htmlpreview.github.io/?https://github.com/kcarlton55/bomcheck/blob/master/help_files/bomcheck_help.html)\n\n\n\n",
    "bugtrack_url": null,
    "license": "GPLv3+",
    "summary": "Compare BOMs stored in Excel files.",
    "version": "1.9.7",
    "project_urls": {
        "Homepage": "https://github.com/kcarlton55/bomcheck"
    },
    "split_keywords": [
        "bom",
        " boms",
        " compare",
        " bill",
        " materials",
        " solidworks",
        " syteline",
        " erp"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e9fd327803e6c5ad2b2f731cf8d9b75d00463d040ca5aa3ec36b68c2f3309b0f",
                "md5": "5d25eaee6e3b65b126153ef52393e99b",
                "sha256": "37c92efaffe99ed85a1217c9a70b884a371c69faa0b3237a6871426e1d6d5cc0"
            },
            "downloads": -1,
            "filename": "bomcheck-1.9.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5d25eaee6e3b65b126153ef52393e99b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 36061,
            "upload_time": "2024-04-29T03:05:12",
            "upload_time_iso_8601": "2024-04-29T03:05:12.311594Z",
            "url": "https://files.pythonhosted.org/packages/e9/fd/327803e6c5ad2b2f731cf8d9b75d00463d040ca5aa3ec36b68c2f3309b0f/bomcheck-1.9.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "db6002a13e198c770c7819565ee0156a93dc787f5e922ce3a733fe411dd3aa53",
                "md5": "0ca62ac26100343b7f7fef9a95e6d35f",
                "sha256": "17c7cbbbf753d594047a1f753195d7d1112d47312bf5a14b21068a68cf639024"
            },
            "downloads": -1,
            "filename": "bomcheck-1.9.7.tar.gz",
            "has_sig": false,
            "md5_digest": "0ca62ac26100343b7f7fef9a95e6d35f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 962390,
            "upload_time": "2024-04-29T03:05:14",
            "upload_time_iso_8601": "2024-04-29T03:05:14.574967Z",
            "url": "https://files.pythonhosted.org/packages/db/60/02a13e198c770c7819565ee0156a93dc787f5e922ce3a733fe411dd3aa53/bomcheck-1.9.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-29 03:05:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "kcarlton55",
    "github_project": "bomcheck",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "bomcheck"
}
        
Elapsed time: 0.51212s