BOM (Bill Of Materials) function

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Jee-Bee
Veteran
Posts: 2566
Joined: Tue Jun 16, 2015 10:32 am
Location: Netherlands

Re: BOM (Bill Of Materials) function

Post by Jee-Bee »

yorik wrote: Sat Jul 29, 2017 3:05 pm 1) Organizing things "by assembly" requires that a BOM script will be able to know which object depends on which assembly. That pretty much restricts things to a strict structure like PartDesign bodies, for example. If you model some loose things with other workbenches, or choose to "unite" things in a way the person who coded the BOM script didn't think of, they might fall out of scope of the BOM.
Off course you give restrictions... That's always happens even if you create a BOM off all parts its have to filter for the assemblies otherwise you have everything twice.
I think a user should understand how partdesign work. if creating multiple bodies in a single part (probably a step file of a component you buy lets say an bearing) you have multiple components who have to be treated as a single part.
yorik wrote: Sat Jul 29, 2017 3:05 pm 2) If we say "a BOM is a list of parts + associated quantities", even so, there are particularities. For example, if you have a machine which contains rods and screws. You will want to get the lengths of the rods, but for the screws you will want only the amount, not their length.
Why not only screw M6x40 wouldn't be always useful. I have even seen cases where they add automatically 5% extra for bolds, nuts, screws etc..
emills2
Posts: 868
Joined: Tue Apr 28, 2015 11:23 pm

Re: BOM (Bill Of Materials) function

Post by emills2 »

Jee-Bee wrote: Sat Jul 29, 2017 4:26 pm yorik wrote: ↑Sat Jul 29, 2017 8:05 am
2) If we say "a BOM is a list of parts + associated quantities", even so, there are particularities. For example, if you have a machine which contains rods and screws. You will want to get the lengths of the rods, but for the screws you will want only the amount, not their length.
Why not only screw M6x40 wouldn't be always useful. I have even seen cases where they add automatically 5% extra for bolds, nuts, screws etc..

Each screw should have a part number. Unless it is functionally identical to another screw which already has a part number assigned. in which case it IS that part number. Only need an integer count.

Each rod should have a part number. Unless it is functionally identical to another rod which already has a part number assigned. in which case it IS that part number. Only need an integer count. i am dogmatic about '1 fabricated part model = 1 part drawing' so personally i would have a part file and drawing for each rod. the production planner would then get the length of each rod from a pdf of the drawing.

If you're lazy you can put the length in the part description so you can read it right off the BOM. If you're slick, each part file / physical body has an RM attribute that lists the raw material size required automatically derived from the bounding box of the model (pipe and rod have L, 2 patterns have LXW, machining stock has LXWXH. you can then have a separate column for RM quantity and type in your BOM (still shows part number/ integer quantity though).

Planning the stock purchase of total length to cut the rods from is not a function of the design. It necessarily has to involve local availability of specific stock, minimum order size allowed to be generated by an organization, minimum order size accepted by a supplier, etc. The necessary data to start these calcs is still an integer count of uniquely defined parts.

Let's say your local waterjet guy has a 12' by 6' table. if i only have access to an 8' by 4' table, we can't use the same stock sheet metal or nesting pattern to make a bunch of pattern cuts. (this example was completely made up as far as realistic waterjet table sizes, but the point stands).

What if you can get easy and cheap delivery for rods under 10', but 12' rods doubles the delivery cost. Most people will switch raw material even if the remnant quantity of metal is bigger. very few people like causing more scrap, but we have to meet deadlines.

On top of all this, obviously you ought to integrate these advanced BOMs with current inventory, subtract quantities on-hand, and flag every other user that you are reserving these quantities...

It is generally accepted practice to separate these concerns from the design itself. If you want to do full MRP in FreeCAD that's a great goal, but be careful, it is an ambitious goal, and it is unlikely you will get there by taking shortcuts.

There are different BOMs for different stages.
- BOM in the assembly model file (1)
- BOM for the physical assembly (2)
- BOM for the purchasing of parts needed to build a single instance of an assembly (3)
- BOM for the purchasing of parts need to build 2X one assembly, 3X another related assembly, plus 15X unrelated parts for stock (4)
- BOM for a specific purchase order to one supplier for the relevant parts from the BOM above this one (5)

a CAD system should focus on making (1) good enough to reliably accomplish (2), while striving to asymptotically reach (3). beyond that you're doing MRP or even ERP.
emills2
Posts: 868
Joined: Tue Apr 28, 2015 11:23 pm

Re: BOM (Bill Of Materials) function

Post by emills2 »

yorik wrote: Sat Jul 29, 2017 3:05 pm 1) Organizing things "by assembly" requires that a BOM script will be able to know which object depends on which assembly. That pretty much restricts things to a strict structure like PartDesign bodies, for example. If you model some loose things with other workbenches, or choose to "unite" things in a way the person who coded the BOM script didn't think of, they might fall out of scope of the BOM.
this is where the ability to flag an assembly "as single part" allows you to prevent going too deep in the rabbit hole.

Once you've decided what is small/simple enough to be a "part", you can add all relevant info to the drawing: planes, lines, text notes, control volumes, as well as all the actual part dimensions annotations that link parametrically to the part body/

if you are only going to build a small welded frame once and the RM calc is simple, you can flag the assembly "as single part", make a drawing for the assembly, but not for each tubing/bar cut. On the assembly drawing, you can put the dimensions directly and the welder can just pick his own stock. No BOM even needed. The welder will then pencil what he used on the drawing, and when you get the drawing and the weldment back from fab, you can decide if it's even worth adding the info as a text note on the drawing.

Solidworks has a fancy RM calculator for weldments, but i never use it. If it's complicated, give the welder a list of part drawings with quantity stamped on each. if it's simple, let him figure it out and take responsibility. The worst case scenario is a long cut list on a complex tube frame, which then is given to an apprentice to spend all day making cuts on a band saw. When the pile of cuts gets to the welder, they're all wrong...wrong tolerance, wrong weld gaps, compound angle was interpreted wrong because it was partially hidden in the assembly, and on and on. In this example, the potential problem is that you don't give enough opportunity for QC along the way. Individual drawings makes this possible even for a relatively low skilled operator.
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: BOM (Bill Of Materials) function

Post by triplus »

If specialized BOM feature would be made and it would be too complicated most of users likely wouldn't use it. As novice users wouldn't be able to grasp complexity behind it and expert users usually invest serious amount of time in it anyway. To achieve the exact result they are after for their use case in any possible way.

Therefore if in the future BOM command would be added to for example TechDraw. And once used by the user Spreadsheet View would be inserted and cells would be pre-filled and in-sync with all the features added to the drawing page. That i guess would be a good start. The concept of reusing the same part multiple times needs to mature first in general in FreeCAD. Once that happens i do imagine "count number" could be adapted in BOM.
emills2
Posts: 868
Joined: Tue Apr 28, 2015 11:23 pm

Re: BOM (Bill Of Materials) function

Post by emills2 »

triplus wrote: Sun Jul 30, 2017 12:34 am If specialized BOM feature would be made and it would be too complicated most of users likely wouldn't use it
I definitely agree. everything i said was just an attempt to say "don't try to do too much at once". Part and quantity is the universal basis of everything else, so that would be nice, and it is already a significant challenge.
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: BOM (Bill Of Materials) function

Post by Kunda1 »

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
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: BOM (Bill Of Materials) function

Post by Kunda1 »

shaise wrote:ping
Care to weigh in since you implemented BOM functionality for the Fastener WB, correct?
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
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: BOM (Bill Of Materials) function

Post by Kunda1 »

Kunda1 wrote: Fri Nov 10, 2017 5:31 pm
shaise wrote:ping
Care to weigh in since you implemented BOM functionality for the Fastener WB, correct?
double ping ;)
I'm wondering if drawing up a proposal for this for this GSOC or some future GSOC would be a popular idea?
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
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: BOM (Bill Of Materials) function

Post by Joel_graff »

This is a topic I'm watching closely. It will be an important part of the transportation workbench once we're able to generate 3D models. We have a plan to segment the model by material types so that volumes can be calculated easily... hopefully we'll be able to adapt the BOM to produce schedules of quantites / cost estimates.
FreeCAD Trails workbench for transportation engineering: https://www.github.com/joelgraff/freecad.trails

pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: BOM (Bill Of Materials) function

Post by Kunda1 »

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
Post Reply