Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assembly: BOM follow up #14790

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

PaddleStroke
Copy link
Contributor

@PaddleStroke PaddleStroke commented Jun 19, 2024

  • Fixes some comments from @wwmayer
  • Make auto-generated columns bold to differentiate them from custom columns
  • Add a help button with details
  • Rename 'Detail parts' to 'Parts children' as I think it's clearer.

image

@github-actions github-actions bot added WB Spreadsheet Related to the Spreadsheet Workbench WB Assembly Related to the Integrated Assembly Workbench labels Jun 19, 2024
@pierreporte
Copy link

The BOM type names are still harder to understand than first level BOM, multi-level BOM, and components list, as described in my comment on the previous PR: #14198 (comment). Better text reduces the need of a help dialog (in fact, tooltips would be sufficient). BTW the only parts option is said to count assemblies which is misleading.

The column list can be better design, in a way that removes the need of a help dialog. The bold style meaning is not obvious: I propose an italic text after the column name, in parentheses:

File name (auto)

I propose to replace the add column button by a dropdown list, with all available options (with the auto indicator on relevant lines) and a “custom…” line that gives the focus to an empty text field in the list as is currently work. If an automatic column is removed, the user wouldn’t need to know its exact name. To remove columns, I propose to keep the del key working as it is and adding a remove column button with the same size on the left of the add button.

I believe that these changes will allow to remove the help dialog.

@PaddleStroke
Copy link
Contributor Author

The BOM type names are still harder to understand than first level BOM, multi-level BOM, and components list, as described in my comment on the previous PR: #14198 (comment). Better text reduces the need of a help dialog (in fact, tooltips would be sufficient). BTW the only parts option is said to count assemblies which is misleading.

@pierreporte I have seen your comment, and yesterday I was looking at it over and over. My problem is a translation problem. I failed to translate the windchill help into freecad concepts. I think the concept you are talking about are not a match to the options I created.

single level BOM: list of direct children of the root assembly;
multi-level BOM: list of direct children of the root assembly, children sub-assemblies are themselves followed by their multi-level BOM (think a tree view) with an explicit hierarchy;
multi-level component list: flattened multi-level BOM, duplicates are merged and their quantity added.

For instance you mention that multi-level component is flattened. I don't think any of the current options does that.

I am not opposed to use the options you mentioned. But I cannot just change the strings, the tool needs to behave as user would expect from the names. So I need more input :

  • Which softwares are using these concepts? Just to make sure it's industry standard.
  • Can you please detail exactly how each option should work in freecad concepts? Please give me some BOM simple examples for each option to make sure it's clear.

@PaddleStroke
Copy link
Contributor Author

Regarding the columns :

  • Adding (Auto) to the name is acceptable.
  • Using a button with a menu is also a good idea.

Rather than a remove column, I wonder if I can add 'x' buttons on each item that would remove the column.

@PaddleStroke
Copy link
Contributor Author

PaddleStroke commented Jun 20, 2024

Regarding the 'Only part' option, what name do you think would be better?
This option is rather 'List Part::Feature' but I think users are not going to understand. I could use 'List Bodies' which people would understand better, but that does not mention other kind of Part::Features.

Maybe 'List features (bodies, ...)'

@pierreporte
Copy link

pierreporte commented Jun 20, 2024

@PaddleStroke The different BOM types are used in all PDM/PLM solutions: Windchill, 3DExperience, Smarteam, … This is one of the most basic feature of this kind of system. The names can vary a little bit but it’s always the same principle.

Below is an example of several BOMs generated from a product structure (invented just for you but it’s realistic). The structure is what would be the FreeCAD design tree, limited to parts and assemblies (parts are lines with no children), with instance numbers. Expanded BOMs don’t group together parts that are identical while consolidated BOMs do. Multi-level BOMs give the whole structure while single level BOMs give only the direct children of the root. The components list is a flattened and consolidated multi-level BOM.

Regarding the “only parts” option, it would be best to settle the Part/Body problem first. It’s truly needed.


Product Structure

  • EQUIPPED MANIFOLD ASSEMBLY
    • BARE MANIFOLD<1>
    • HEX SCREW M6x60<1>
    • HEX SCREW M6x60<2>
    • HEX SCREW M6x60<3>
    • HEX SCREW M6x60<4>
    • JIC DASH 10 UNION<1>
    • JIC DASH 10 UNION<2>
    • JIC DASH 6 UNION<1>
    • JIC DASH 6 UNION<2>
    • JIC DASH 6 UNION<3>
    • JIC DASH 6 UNION<4>
    • O-RING 15x1.78 NBR<1>
    • O-RING 15x1.78 NBR<2>
    • O-RING 10x1.78 NBR<1>
    • O-RING 10x1.78 NBR<2>
    • O-RING 10x1.78 NBR<3>
    • O-RING 10x1.78 NBR<4>
    • LEE PLUG<1>
    • LEE PLUG<2>
    • LEE PLUG<3>
    • LEE CHECK VALVE<1>
    • 100 MICRON FILTER<1>
    • FLOWMETER<1>
      • PROPELLER CARTRIDGE<1>
      • HALL EFFECT SENSOR<1>
      • O-RING 15x1.78 NBR<1>
      • HEX SOCKET SCREW M3x8<1>
      • HEX SOCKET SCREW M3x8<2>
      • HEX SOCKET SCREW M3x8<3>
      • HEX SOCKET SCREW M3x8<4>
    • EQUIPPED PT100B TEMPERATURE SENSOR<1>
      • PT100B TEMPERATURE SENSOR<1>
      • O-RING 10x1.78 NBR<1>
      • 4-PIN CONNECTOR<1>
    • EQUIPPED PT100B TEMPERATURE SENSOR<2>
      • PT100B TEMPERATURE SENSOR<1>
      • O-RING 10x1.78 NBR<1>
      • 4-PIN CONNECTOR<1>
    • LABEL<1>
    • CAPTIVE DRAINAGE PLUG<1>
      • BARE DRAINAGE PLUG<1>
      • O-RING 15x1.78 NBR<1>
      • HEX SOCKET SCREW M3x8<1>
      • HEX SOCKET SCREW M3x8<2>
      • EQUIPPED ROPE<1>
        • NYLON ROPE 2MM<1>
        • CLIMPLED CLIP<1>
        • CRIMPLED CLIP<2>
        • ATTACH PLATE<1>
        • ATTACH PLATE<2>

Multi-level expanded BOM

Identical to product structure, with a similar format to the following.

Multi-level consolidated BOM

Level Component Qty
1 BARE MANIFOLD 1
2 HEX SCREW M6x60 4
3 JIC DASH 10 UNION 2
4 JIC DASH 6 UNION 4
5 O-RING 15x1.78 NBR 2
6 O-RING 10x1.78 NBR 4
7 LEE PLUG 3
8 LEE CHECK VALVE 1
9 100 MICRON FILTER 1
10 FLOWMETER 1
10.1 PROPELLER CARTRIDGE 1
10.2 HALL EFFECT SENSOR 1
10.3 O-RING 15x1.78 NBR 1
10.4 HEX SOCKET SCREW M3x8 4
11 EQUIPPED PT100B TEMPERATURE SENSOR 2
11.1 PT100B TEMPERATURE SENSOR 1
11.2 O-RING 10x1.78 NBR 1
11.3 4-PIN CONNECTOR 1
12 LABEL 1
13 CAPTIVE DRAINAGE PLUG 1
13.1 BARE DRAINAGE PLUG 1
13.2 O-RING 15x1.78 NBR 1
13.3 HEX SOCKET SCREW M3x8 2
13.4 EQUIPPED ROPE 1
13.4.1 NYLON ROPE 2MM 1
13.4.2 CLIMPLED CLIP 2
13.4.3 ATTACH PLATE 2

Single level expanded BOM

Level Component Qty
1 BARE MANIFOLD 1
2 HEX SCREW M6x60 1
3 HEX SCREW M6x60 1
4 HEX SCREW M6x60 1
5 HEX SCREW M6x60 1
6 JIC DASH 10 UNION 1
7 JIC DASH 10 UNION 1
8 JIC DASH 6 UNION 1
9 JIC DASH 6 UNION 1
10 JIC DASH 6 UNION 1
11 JIC DASH 6 UNION 1
12 O-RING 15x1.78 NBR 1
13 O-RING 15x1.78 NBR 1
14 O-RING 10x1.78 NBR 1
15 O-RING 10x1.78 NBR 1
16 O-RING 10x1.78 NBR 1
17 O-RING 10x1.78 NBR 1
18 LEE PLUG 1
19 LEE PLUG 1
20 LEE PLUG 1
21 LEE CHECK VALVE 1
22 100 MICRON FILTER 1
23 FLOWMETER 1
24 EQUIPPED PT100B TEMPERATURE SENSOR 1
25 EQUIPPED PT100B TEMPERATURE SENSOR 1
26 LABEL 1
27 CAPTIVE DRAINAGE PLUG 1

Single level consolidated BOM

Level Component Qty
1 BARE MANIFOLD 1
2 HEX SCREW M6x60 4
3 JIC DASH 10 UNION 2
4 JIC DASH 6 UNION 4
5 O-RING 15x1.78 NBR 2
6 O-RING 10x1.78 NBR 4
7 LEE PLUG 3
8 LEE CHECK VALVE 1
9 100 MICRON FILTER 1
10 FLOWMETER 1
11 EQUIPPED PT100B TEMPERATURE SENSOR 2
12 LABEL 1
13 CAPTIVE DRAINAGE PLUG 1

Components list

Component Qty
BARE MANIFOLD 1
HEX SCREW M6x60 4
JIC DASH 10 UNION 2
JIC DASH 6 UNION 4
O-RING 15x1.78 NBR 4
O-RING 10x1.78 NBR 6
LEE PLUG 3
LEE CHECK VALVE 1
100 MICRON FILTER 1
PROPELLER CARTRIDGE 1
HALL EFFECT SENSOR 1
HEX SOCKET SCREW M3x8 5
PT100B TEMPERATURE SENSOR 2
4-PIN CONNECTOR 2
LABEL 1
BARE DRAINAGE PLUG 1
NYLON ROPE 2MM 1
CLIMPLED CLIP 2
ATTACH PLATE 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WB Assembly Related to the Integrated Assembly Workbench WB Spreadsheet Related to the Spreadsheet Workbench
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants