Cabinet furniture design tools workbench

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
User avatar
iogui
Posts: 93
Joined: Tue Mar 19, 2019 3:44 pm
Location: São Paulo
Contact:

Re: A cabinet furneture disign tools

Postby iogui » Thu Mar 21, 2019 12:51 pm

chrisb wrote:
Thu Mar 21, 2019 5:27 am
Kunda1 wrote:
Thu Mar 21, 2019 1:52 am
@chrisb OP posted this back in Thu Oct 30, 2014 5:50 pm :lol:
:lol: ok, that one made me laugh too! I think it is not too intrusive to change the subject after that time.
Indeed!!! :D
Be the change you want to see in the world. - Mahatma Gandhi
User avatar
iogui
Posts: 93
Joined: Tue Mar 19, 2019 3:44 pm
Location: São Paulo
Contact:

Re: Cabinet furniture design tools workbench

Postby iogui » Thu Mar 21, 2019 4:04 pm

Ok, friends,

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
User avatar
yorik
Site Admin
Posts: 11377
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Cabinet furniture design tools workbench

Postby yorik » Thu Mar 21, 2019 7:51 pm

iogui wrote:
Thu Mar 21, 2019 4:04 pm
What do you guys think about it?
Pretty good analysis. The more there is a good "plan", the easiest it is for several people to work on this.

I think the next step would be to describe better, technically, the different features. In FreeCAD we use the word "Feature" more or less to describe 3D objects, but with a broader meaning, for example a hole in another object is a feature, but not really a 3D object. However, it can be moved, etc.. like a 3D object.

It's important to determine what should be done with existing FreeCAD features, and what needs new ones. Indeed some panels might be done with Part Boxes. But what if you need non-rectangular panels? Or with holes inside? Then the ideal would be: panels can be just any other feature.

The driving shape is something we experimented with some time ago, to have indeed the general dimensions of a cabinet taken from a base shape, in that case a cube. But indeed it could as easily be another kind of object with for example added Height, Width and Length properties.

I would suggest starting with the most abstract and generic definitions as possible, for ex:

- A cabinet feature, with Height, Width and Length properties, and a Group property that holds its different parts/panels. Maybe later it should also gain some additional properties to quickly and automatically add panels (Horizontal divisions,...) but I would start without. Maybe indeed it can be an App Part, but one has to test well how that behaves (might be cyclic dependency problems if the parts depend on the cabinet, but the cabinet also depends on the parts)
- Cabinet parts can be just anything. Just other features

If that model works well, then I would start thinking about how to have different presets, or wizards, to automatically design cabinets (that is, automatically create panels). Additional properties might need to be added to the cabinet, to keep all this parametric (the user can change settings later on)

- maybe then you will also need a new panel feature, that can hold more complex behaviours such as changing a fixture, etc

All this could be done by hand, using other freecad workbenches. The key is to determine well what should become parameters of a feature, from what should be kept as separate objects. Both have their opposite advantages. Parametric objects are strict structures, with which you can't do anything you want, while other FreeCAD features might be just anything imaginable. Predictability vs freedom.
zohozer
Posts: 39
Joined: Mon Jul 28, 2014 8:35 pm

Re: Cabinet furniture design tools workbench

Postby zohozer » Thu Mar 21, 2019 8:01 pm

Hi iogui. Nice to know you are interested in doing some software development for FreeCAD.

Please bear in mind that yorik has already worked out a nesting solution for FreeCAD. Never used personally, but it is there if I remember correctly. Maybe you can improve this one.

Regarding the other points you replayed to, I will respond this Sunday. I have quite a busy week.
User avatar
iogui
Posts: 93
Joined: Tue Mar 19, 2019 3:44 pm
Location: São Paulo
Contact:

Re: Cabinet furniture design tools workbench

Postby iogui » Fri Mar 22, 2019 4:08 pm

yorik wrote: I think the next step would be to describe better, technically, the different features. In FreeCAD we use the word "Feature" more or less to describe 3D objects, but with a broader meaning, for example a hole in another object is a feature, but not really a 3D object. However, it can be moved, etc.. like a 3D object.
Well... I think I can imagine two basic features here:
  1. The panel feature
  2. The cabinet feature
The panel feature is important because you will be almost allays building a furniture based in those basic features and it will be easier to draw than cubes, also it will be easier to track specific objects (panels) to build a cutting plan, and it can have another important property that is the grain orientation also important for the cutting plan.

The cabinet feature is interesting to give a boost in the building time of a model like a cabinet for example but not when you just want to build a table. Almost all furniture has a box shape but not all (and almost all cabinets, a box shape with box shapes inside it too). There are exceptions like a table.
yorik wrote: It's important to determine what should be done with existing FreeCAD features, and what needs new ones. Indeed some panels might be done with Part Boxes. But what if you need non-rectangular panels? Or with holes inside? Then the ideal would be: panels can be just any other feature.
Fair point. You may need a non-rectangular panel and almost always will need panels with holes for screws or fixtures but you also will need to know the width, height and grain orientation from the original peaces of boards to use in a cutting plan so the panel feature is still important to keep this important properties. But it is also important that this feature be able to store it's transformations to be able to have another shapes besides rectangular ones and also the ability to have holes for screws and fixtures.
yorik wrote: The driving shape is something we experimented with some time ago, to have indeed the general dimensions of a cabinet taken from a base shape, in that case a cube. But indeed it could as easily be another kind of object with for example added Height, Width and Length properties.

I would suggest starting with the most abstract and generic definitions as possible, for ex:

- A cabinet feature, with Height, Width and Length properties, and a Group property that holds its different parts/panels. Maybe later it should also gain some additional properties to quickly and automatically add panels (Horizontal divisions,...) but I would start without. Maybe indeed it can be an App Part, but one has to test well how that behaves (might be cyclic dependency problems if the parts depend on the cabinet, but the cabinet also depends on the parts)
- Cabinet parts can be just anything. Just other features
Interesting. We can elaborate on it but I keep thinking that the panel feature is a more important and basic thing to think about it. I see a cabinet feature or part necessarily as a collection or grouping of panel features that is more a helper then a basic need. Yet I see a panel feature as a basic need for making FreeCAD more friendly to model furniture.
yorik wrote: If that model works well, then I would start thinking about how to have different presets, or wizards, to automatically design cabinets (that is, automatically create panels). Additional properties might need to be added to the cabinet, to keep all this parametric (the user can change settings later on)
Yes, sure!
yorik wrote: - maybe then you will also need a new panel feature, that can hold more complex behaviours such as changing a fixture, etc
That is what I'm talking about. I think this panel feature is the most important entity to work on at first.
yorik wrote: All this could be done by hand, using other freecad workbenches. The key is to determine well what should become parameters of a feature, from what should be kept as separate objects. Both have their opposite advantages. Parametric objects are strict structures, with which you can't do anything you want, while other FreeCAD features might be just anything imaginable. Predictability vs freedom.
I see your point here and I think it is an important thing to bear in mind.
In the case of panel features I think it can't be addressed with just parameters in other features because of what I've said about how I think it should behave and also not every other feature can have the same properties of a panel feature, e.g. You can't use an MDF board to build a ball so it doesn't make sense to put panels parameters like thickness or grain orientation in a sphere solid part.
zohozer wrote: Please bear in mind that yorik has already worked out a nesting solution for FreeCAD. Never used personally, but it is there if I remember correctly. Maybe you can improve this one.
I think that first I will need to understand what is it for. Why have you thought about it?
zohozer wrote: Regarding the other points you replayed to, I will respond this Sunday. I have quite a busy week.
Sure! I've been pretty busy too. But, in the time we have when possible, let's make this FreeCAD improvements happen. It is already a great software but let's make it even better! I will wait to better know your thoughts so we can reach more solid plans for this possible new workbench.

Thanks in advance for all the help, folks!
Be the change you want to see in the world. - Mahatma Gandhi
User avatar
Kunda1
Posts: 4766
Joined: Thu Jan 05, 2017 9:03 pm

Re: Cabinet furniture design tools workbench

Postby Kunda1 » Mon Mar 25, 2019 9:21 pm

Might be useful to start a wiki page logging some of the info in this thread so far
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
User avatar
yorik
Site Admin
Posts: 11377
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Cabinet furniture design tools workbench

Postby yorik » Tue Mar 26, 2019 7:02 pm

iogui wrote:
Fri Mar 22, 2019 4:08 pm
zohozer wrote:
Please bear in mind that yorik has already worked out a nesting solution for FreeCAD. Never used personally, but it is there if I remember correctly. Maybe you can improve this one.

I think that first I will need to understand what is it for. Why have you thought about it?
That's something I wrote some time ago when working with wikihouses... But it doesn't work well at all. The idea is basically that it arranges pieces on a sheet automatically, for CNC cutting for example. But it is very buggy.

There was some effort to port SVGnest to other languages somewhere I think, will try to remember where. That might be an interesting joint effort
User avatar
iogui
Posts: 93
Joined: Tue Mar 19, 2019 3:44 pm
Location: São Paulo
Contact:

Re: Cabinet furniture design tools workbench

Postby iogui » Fri Mar 29, 2019 1:20 am

I haven't forgot this post guys... I've just using and studying FreeCAD daily to learn it better to be able to do my models and to have and improve ideas to use in this furniture workbench development. I've been doing it as my time allows me though. But I've been following everything in this thread and I'm also waiting for zohozer clarifications on his views... Anyway I'm still here ;)
Be the change you want to see in the world. - Mahatma Gandhi
User avatar
yorik
Site Admin
Posts: 11377
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Cabinet furniture design tools workbench

Postby yorik » Fri Mar 29, 2019 2:38 pm

No worries! Don't forget the FreeCAD official motto: "It's done when it's done" ;)
paullee
Posts: 1589
Joined: Wed May 04, 2016 3:58 pm

Re: Cabinet furniture design tools workbench

Postby paullee » Sun Mar 31, 2019 8:57 am

Built-in furniture is indeed one of the most included item in a building contract - not necessarily those stylish designer tailor made items :)

So a workbench would be very helpful indeed !

Looking forward to it being realised !