I've gave a second read on zohozer's plans and I will comment on some of it now:
1) Driving shape volume
It seems, as I've understood from what zohozer wrote that this would be some kind of container like the body from Part Design workbench and it would represent a cabinet box with it's internal divisions (shelves, base, top, sides, background and others panels if there are others to represent). This container would have properties like width, height and length that would be integrated with it's internal panels properties in a way that if you change it's width, its internal panel widths should change accordingly.
I think it is really nice but I would start with the basics first so I would approach this feature just in a second or third iteration. I think it is possible to deliver a more simple furniture designer workbench with more basic functionality first.
2) Panels definitions
I think that here we have a first priority feature. In fact, we already have in the Part workbench a simpler object that can be used to represent the panels of a cabinet: the cube solid
So why would we create a different type of object?
Here I think it is util to understand the basics of building a cabinet:
- First you design your project (as you would in a cabinet workbench)
- Then, based on you project, you build a list of material to buy
- The main item of your list will probably be the boards (now a days it is not common to build cabinets with solid wood for many reasons but mainly by it's cost and the availability of materials, and also the fact that it is easier to customize those processed boards not to mention the ecological issues), we can mention some: MDF, MDP, OSB, Plywood, etc.
- Then you will need the hardware (locks, hinges, slides, etc.) and the screws and/or fixtures (minifix, rafix, vb35, dowels and so on)
- With dose materials in your hands you can use your tools to build your cabinet following the initial project
Ok, one important thing you will need to be able to turn a board into panels for your cabinet is to do a cutting plan so you can take better advantage of your boards without waste. That's an important thing to note here.
Well, boards have some characteristics like it's thickness, they can be raw or have a decorative melamine face in one or two of it's sizes.
Now, answering my own question: the panel object should be like a cube but instead of having a height property it should have a thickness as that from the boards that it is made of. So we can set it once globally e.g. 15mm or 18mm and change it just in the ones that are different so we can work just on the width and length of panels making it easier to draw and deal with it. And by been a different object it can be easy to use it to build a cutting plan.
3) Fixtures definitions
That one is nice too making it easy to get a heady to use panel object reducing the amount of work to build a cabinet on Freecad but just as in the item 1 above, I think it could be let to a second or third iteration.
4) wizards for creation of panels with edges&fixtures, doors and drawers
Nice too. Wizards for creation of panels already with the holes and grooves to use rafix, doves and so on. Wizards for creating meaningful and common parts of cabinets like doors, tops, bases. shelves, drawers (a collection of associated panels) and so on.
But those too could be addressed in a later iteration. They are not a first priority because you can do all this manually but they are good to boost the development time of the model.
5) Options for creation of dog-bones (orientation H-V, cross).
I'm not sure I know what are dog-bones. Is it a technique, a joint or something similar? Maybe I just don't know the term in english but I can know what it is and I'm not associating the term.
6) = DRAWINGS =========
6.1) Automatic drawings creation for individual parts, assemblies.
Like the wizards from the item 4 above? Can you elaborate, zohozer?
6.2) Dynamic section views
Can you elaborate, zohozer?
6.3) One button Exploded views (like Sketchup Eclate-Deplace)
I'm not really used to Sketchup but I think that this one may not be so easily achieved if it is what I'm thinking about. Maybe leave this too to a lather iteration? And discuss it more in the meantime.
6.4) Schematic views with door openings and dimensions
It seems nice but I think it can be let to a later iteration.
7) = BOM ==============
I don't know what it means. Can you elaborate, zohozer?
8) = NESTING ==========
You mean, in the Model panel view of Freecad? I don't think it is a good idea unless it is not mandatory or if it is in another view, maybe a new window panel.
8.1) Custom shape for board, if we need to use an offcut piece for producing the parts.
zohozer, can you elaborate on this one too?
9) = CNC ==============
I think it is nice though I don't know much about CNC. But I think this item is complex enough to be treated apart and even to have it's own workbench. Please correct me if I'm wrong.
10) = EXPORT ===========
Is it related with the item 9 above? I don't really know what is this item for.
Well... that was my thoughts on zohozers plans and, as I've said before, I think we can work on the creation of this new workbench iteratively.
From all the itens above, I think we should put only the essentials in the first iteration, the item 2 above.
The panel object could be named "Furniture::Panel" as a supported type or something like that.
And I think it would be very useful to make another workbench or a separated tool inside this furniture workbench exclusively to build a cutting plan optimizer like this one for example: http://www.cutlistoptimizer.com/
What do you guys think about it?
Be the change you want to see in the world. - Mahatma Gandhi