Find us on Google+ Where to Put that Widget? Bill of Materials Organization ~ Inventor Tales

Sunday, November 22, 2009

Where to Put that Widget? Bill of Materials Organization

“The secret of all victory lies in the organization of the non-obvious.”

Marcus Aurelius - Roman Emperor

Over the weekend, I was working on a night stand for a future wood shop project (all I have to do is get the tools for the shop!).

During the ongoing design, I ran into an interesting challenge I hadn't really put too much thought into previously.

The table top is an assembly of components, in this case, four boards. The lower table on the other hand, is a separate assembly comprised of several components and subassemblies.

(click to enlarge)

Joining the two, are four plates of metal called 'desktop fasteners' (click here for a picture). Essentially you screw into the end table from one side, and the table top from the other, joining the two components.

The first issue I had to resolve was the lack of a CAD model. I couldn't find one. Given the simplicity of thet part. I modeled my own, and put it into Autodesk Vault. Now I'll have it for all time. So long as I follow proper backup practices, of course!

(click to enlarge)

But my next issue was how to organize it? I thought about putting it into the lower table assemlby, but it isn't really a part of that, after all, what if I choose to put a different table top on it, and decide to fasten it in a different way?

Hey, anything is possible. Plus I want to keep flexibility in mind, right?

The same goes for the table top. What if I use the same subassembly elsewhere, with a different fastening technique? I don't think it's likely, but experience has taught me that 'not likely to happen' can be very different from 'not going to happen'.

Looking at that, I took the 'sleep on it approach'.

For once, sleeping on it was the right thing to do.

I woke up in the morning, and the answer seemed clear to me, even before coffee.

Why does it have to belong to either assembly? Why not put it at the top level, or general assembly?

I couldn't think of a reason why not. After all, this means that both the lower table and table top keep the flexibility they need, and the overall design intent is kept.

(click to enlarge)

I think to myself as I rub the sleep from my eyes. 'That'll work!"

So that's how the night stand goes together. Since the desktop fasteners are actually sold with the two screws, they become a subassembly of the plate and screws, and they're placed at the top level.

(click to enlarge)

Done! Whammo. For the way I wanted to organize things, it really does work!


  1. John,
    We have ran into the same issue here. Your solution is great when dealing with a small number of intermediate fasteners. But generally, assemblies require lots of fasteners in order to get them put together. It is common for us to have upwards of 50-100 different fasteners at the top level. Bolts washers, nuts, rivets, other loose items bolted on at the last stage etc. This leads to a lengthy BOM.
    I usually make design views of the assembly with and without the fasteners. This helps in making the assembly perform better on slower workstations. We have found that by using a field like vendor to filter out fasteners, the BOM can get simplified. When it is time to detail the fasteners in a drawing, usually we are doing it with some kind of detail view, and not the whole assembly. I have wanted to, but haven't yet tried to place all fasteners in an assembly of their own. Each fastener would be made flexible, and constrained in the next level up.

  2. Ed,

    I think that's a marvelous way to handle things as the number of fasteners get larger! It would probably be the next thing I'd consider should the projects I work on get to have that many unique fasteners. Although by nature, my projects don't have very many unique fasteners.

    May I ask, are you using the design view filters in the parts list to help create the filtered views?

  3. John,
    We seem to end up with a lot of loose parts in the top level assembly. I think I'll try to group them in a flexible assembly as well. We have tried the design view filters on the BOM, but found them to be a hassle when editing the file, especially if the person that created the design views is not the one that makes the changes to the assembly.

  4. I'm not sure where flexible assemblies would help you. Are you trying to place them in a sub assembly and then constrain them within the sub? I think I can see where you might be going with that.

    If you're just trying to keep the browser concise, and you're on R2010, you might try assembly folders. They can group components together in the browser without changing the actual BOM structure.

    Just a thought.

  5. Anonymous9:26 AM

    very useful read. I would love to follow you on twitter. By the way, did you guys learn that some chinese hacker had busted twitter yesterday again.