BOM (Bill Of Materials) function
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Be nice to others! Read the FreeCAD code of conduct!
Re: BOM (Bill Of Materials) function
Very encouraging: KiCAD demo
Interactive Html Bom Plugin: https://forum.freecadweb.org/viewtopic.php?f=8&t=31344
Interactive Html Bom Plugin: https://forum.freecadweb.org/viewtopic.php?f=8&t=31344
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
-
- Posts: 16
- Joined: Tue Sep 05, 2017 2:03 am
Re: BOM (Bill Of Materials) function
My take on the bill of materials, which uses a 3D model as input (not technical drawings)
See this video on Product Breakdown Structure (PBS):
How to Organize Your Project with a PBS System - Marble Machine X #57 (sample PBS document and analytics document below video)
I have extended their work, to automate the creation of the document using a STEP imported to FreeCAD. I was not so interested in the analytics in the video, but the creation of a Bill of Materials (BOM) from the CAD model. Finds all instances of parts in model hierarchy and shows total quantity, among other teamwork features.
Example model (exported to STEP, imported to FreeCAD).
Example PBS/BOM document.
Process:
PBS hierarchy can be edited to include parts not within the CAD model (e.g. wires/nails). I hope to classify the part type (e.g. 3D print/hardware/lasercut/machined) by CAD color and separate into the appropriate BOM tab, so that it doesn't have to be classified by hand. Maybe made into a visual BOM via macro exporting images for each part/assembly.
See this video on Product Breakdown Structure (PBS):
How to Organize Your Project with a PBS System - Marble Machine X #57 (sample PBS document and analytics document below video)
I have extended their work, to automate the creation of the document using a STEP imported to FreeCAD. I was not so interested in the analytics in the video, but the creation of a Bill of Materials (BOM) from the CAD model. Finds all instances of parts in model hierarchy and shows total quantity, among other teamwork features.
Example model (exported to STEP, imported to FreeCAD).
Example PBS/BOM document.
Process:
- 1. FreeCAD Macro
- INPUTS: CAD model
- OUTPUT: CSV Export
- 1. Merge CSV Tab into PBS tab by hand, not automatic yet (copy CAD ID, name, quantity columns)
- INPUTS: PBS/BOM document (headers), CSV Import into new tab
- OUTPUT: PBS tab
- INPUTS: PBS tab
- OUTPUTS: PBS tab with PBS #s, and part categorization (assembly,part)
- INPUTS: PBS tab
- OUTPUTS: BOM tabs (overwrites existing BOM data)
PBS hierarchy can be edited to include parts not within the CAD model (e.g. wires/nails). I hope to classify the part type (e.g. 3D print/hardware/lasercut/machined) by CAD color and separate into the appropriate BOM tab, so that it doesn't have to be classified by hand. Maybe made into a visual BOM via macro exporting images for each part/assembly.
Last edited by andrew.j.smart1988 on Sun Dec 02, 2018 11:25 pm, edited 2 times in total.
Re: BOM (Bill Of Materials) function
Woah Nelly! This looks awesome!
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Re: BOM (Bill Of Materials) function
Very nice indeed! At the same time it also nicely shows how important the proper Assembly-Part structure is and that constraints (as the mayor focus in development in A2, A2Plus and A3) are NOT what makes Assemblies.
As a side note, in building constructions this is normally done not in a BOM (Bill Of Materials) like way but within "construction calculations" and they normally always include PBS (Product Breakdown system) + WBS (Work Breakdown System)... Just to show that if we want to satisfy all the different FreeCAD users things are not always so simple, but still we should try to do it.
As a side note, in building constructions this is normally done not in a BOM (Bill Of Materials) like way but within "construction calculations" and they normally always include PBS (Product Breakdown system) + WBS (Work Breakdown System)... Just to show that if we want to satisfy all the different FreeCAD users things are not always so simple, but still we should try to do it.
Re: BOM (Bill Of Materials) function
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Re: BOM (Bill Of Materials) function
Thx Kunda for the info !
Hi saso,saso wrote: At the same time it also nicely shows how important the proper Assembly-Part structure is and that constraints (as the mayor focus in development in A2, A2Plus and A3) are NOT what makes Assemblies.
this is a question of strategy. If for your work it is good enough to have all components in one file, you can prettily work with Part containers. But if you want to have each component in a separate file, as usual in industry, you need an assembly WB. A2plus is already now able to extract a partlist from all used components and subassemblies. Even without making use of Part containers.
KBWBE
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
Re: BOM (Bill Of Materials) function
Can you show me an example of an assembly tree structure of parts (components?) and subassemblies done in A2plus?
Here I did some examples of what an proper assembly structure inside FreeCAD would IMO look like https://forum.freecadweb.org/viewtopic. ... 00#p238042 and https://forum.freecadweb.org/viewtopic. ... wm#p253226 If those parts and assemblies are all in one file or if they are linked from different files or if there are constraints between those parts and subassemblies or not it should not matter because external links and constraints don't make assemblies.
-
- Veteran
- Posts: 2189
- Joined: Tue Jan 03, 2017 10:55 am
Re: BOM (Bill Of Materials) function
I was about to release my new version of asm3, then I was summoned here. So it looks like BOM list may be a popular demand. So I made some last minute commits to show what my branch is now capable of.

And if you wonder how such spreadsheet is made, here is a glimpse of its inside. The scripts uses Python syntax, but is not interpreted by Python. Instead it is fully interpreted by FC expression module. Except for defining object, you can pretty much do anything, even raise and catch exceptions. It gives user the ultimate freedom to do whatever he can image, or at least that's the goal.


And if you wonder how such spreadsheet is made, here is a glimpse of its inside. The scripts uses Python syntax, but is not interpreted by Python. Instead it is fully interpreted by FC expression module. Except for defining object, you can pretty much do anything, even raise and catch exceptions. It gives user the ultimate freedom to do whatever he can image, or at least that's the goal.

Re: BOM (Bill Of Materials) function
A2plus is able to generate a Partlist from an assembly and a cumulated Partlist over all included subassemblies. Nothing more i told.
Here are the screenshots:
The main-assembly: The partslist on level of the main-assembly: The partslist with all components, resolved from subassemblies: If you want to see everything in the treeview, it is not. But it is very easy to generate a list of all parts which are needed. I think this meets basic needs of users. If it does meet your needs, i do not know !
KBWBE
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
Re: BOM (Bill Of Materials) function
Hi @realthunder,
congratulations to your whole work up to now !
The spreadsheet improvements are very useful for many things.
One question: Is it possible to disable python code execution in spreadsheets if i get files from untrusted sources ?
Edit: Sorry, i do not want to highjack this thread!
KBWBE
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench
https://github.com/kbwbe/A2plus
latest release: v0.4.56, installable via FreeCAD's addon manager
Tutorial: gripper assembly https://www.youtube.com/watch?v=QMxcQ5tssWk
Documentation: https://www.freecadweb.org/wiki/A2plus_Workbench