Bounding box/Spaces driven parametric design for woodworkers/cabinet makers, and the others

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!
Post Reply
User avatar
silopolis
Posts: 74
Joined: Thu Oct 20, 2016 10:06 pm

Bounding box/Spaces driven parametric design for woodworkers/cabinet makers, and the others

Post by silopolis »

Hi,

Still looking for an improved/the best cabinet design methodology, I'm know thinking (inspired by other specialized softwares, I must admit !) it would be nice to have a kind of bounding box driven design system like in:
* draw a box (Arch Space, I'm looking at you !)
* select the box and run code that will ask for the parameters (or read them in a spreadsheet * ) and build the cabinet
* select two or three interior faces of the cabinet
* create another (nested) volume, linked to the previously selected faces
* select the new box and run code that will parametrically create inside separators
* again select faces of one of the separations created and again create a [sub-]volume
* select the last volume and run code that will add shelves or a drawer
* ...

At any stage, modify dimensions of one of the boxes/volumes, and all "child" objects are adapted.
A plus would be a feature to parametrically split a box with planes, and even funkier, in nested sub-boxes 3D arrays :)

I have "developed" cabinet base designs that sort of work like this: once all other parameters are set, I just have to define the outer dimensions of the cabinets and "save a copy" to create all the project cabinets in a row. Nice ! But... At this stage, I have to create a base design for every type of cabinet I come across (single door, double door, top drawer + lower door, drawer stack...) because it seems impossible to cover all cases in a single parametric design.

Then every project starts with plans defining the volume in which furnitures have to fit, so, having the design being driven by this 3D envelope seems interesting and rather natural.

I made a quick test some time ago in 0.16 with Arch Spaces but couldn't find a way to use them for this. First I'd have needed to have access to the inner faces and second I'd have needed this faces to be "sticky" to anchor other objects to them... Then with the advent of 0.17 and it's datum objets familly, I'm thinking that a kind of "datum cube" with an invertable Normals property could well be the design tool needed to base all this system on !?

So, while this datum cube doesn't exist, I'm wondering if I could build it with a combination of datum point/line/plane and shape binder objects ? Any thoughts, advices or criticisms before I give this a try ?

Thanks in advance for your answers

(*) if the spreadsheet could be shared across project files, that'd be even greater
Last edited by silopolis on Thu Apr 26, 2018 2:53 pm, edited 1 time in total.
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Bounding box driven parametric design for woodworkers/cabinet makers, and the others

Post by microelly2 »

If you use only planar faces for your cabinets it should be possible to create a datamodel of all faces, edges,vertexes with the topological properties and relations.
https://forum.freecadweb.org/viewtopic.php?f=8&t=25092
the next step can be a list of constraints between related subobjects.
User avatar
silopolis
Posts: 74
Joined: Thu Oct 20, 2016 10:06 pm

Re: Bounding box driven parametric design for woodworkers/cabinet makers, and the others

Post by silopolis »

microelly2 wrote: Thu Apr 26, 2018 8:49 am If you use only planar faces for your cabinets it should be possible to create a datamodel of all faces, edges,vertexes with the topological properties and relations.
https://forum.freecadweb.org/viewtopic.php?f=8&t=25092
the next step can be a list of constraints between related subobjects.
Thank you for your answer which indeed could bring a solution to what I want to achieve, but it takes the problem at a level much lower that I'd like. Moslty because of my programing skills and time available, and also because it'd be a pity not to benefit from all the features already available into higher level objects. Nevertheless, as far as I understand this matter, topological naming, properties and relations should hardly be avoided for long for woodworking CAD as woodworkers (and surely others) have to keep track of every faces of every parts, reference faces are not interchangeable with their opposits, etc.

Anyway, I've spent a part of the day testing all the ways I could think of and here is the my conclusion summary:

* Can't add materials to Part nor PartDesign objects so I'm "bound" to Arch objects, at least for base objects, because I'm already using these properties for basic BoM/cutlist generation and plan to use them even more in the future... Nevertheless, I can use Part and PartDesign features to design machinings on stock panels and bars. This isn't a problem per se because these are higher level and, Panel as well as Structure (for bars), even if partially, are adequately suited for woodworking design.

* Just went back to Arch Spaces annoucement post and (re)discovered that wall could be created from Arch Space faces (https://forum.freecadweb.org/viewtopic. ... 275#p35426), so the begining of the road may already paved, but couldn't manage to create wall this way.

* Being able to create Panels directly from Spaces faces would surely be a big step towards what I'd want to do. Bonus would be an alignment property to align them left[/center]/right of the face, ie inside or outside the Space volume. Icing on the cake would be an offset property for each edge of the face for assemblies and edge bandings, but may be I'm pushing this too far too early and better solutions for these questions may appear down the road.

* Can't flip sides/normal of Arch FaceBinder object so using it on the faces of a box/Space creates the panels outside of this box

* Part Reverse shapes creates a new object not linked with original box and without parameters, but using it on a box, then Draft Downgrade on the reversed box, creates six faces geared towards the inside from wich adequately oriented FaceBinders can be created. Panels can then be created from them, inside the initial volume... but the link with it is lost.

So, kind of back to square one and going to make another iteration on my spreadsheet driven designs and try to lead my BoM/cutlist generation macro to some kind of v0.1alpha stage... Unless some Arch Grand Master exercise its mighty magical Kung Fu on this ! ;-P

Take care
Post Reply