Modeling best practices tutorial

A place to share learning material: written tutorials, videos, etc.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
sjgallagher2
Posts: 12
Joined: Fri Mar 03, 2017 2:51 am

Modeling best practices tutorial

Post by sjgallagher2 »

Hey all, I wrote a tutorial on designing a chair with parametric modeling using best-practice techniques I've picked up. Makes extensive use of reference planes, and shape binders, so it's definitely written with 0.17 in mind. The idea is to design a chair using parameters (seat height, seat thickness, chair height) and a reference sketch (showing feet position) which can all be safely modified to create a stable and modifiable part. In my humble opinion, cross references are a must for CAD design, because they let you have several parts dependent on each other in powerful ways. In this case, the chair legs are boxes with a height that goes up to the bottom of the seat, wherever the seat bottom is, and in the cross section of the reference sketch.

At the moment, the tutorial is a PDF, on Google Drive: https://drive.google.com/file/d/1CPTAFF ... sp=sharing and I would like to put it on the wiki as well, but just wanted to get a basic version that people can comment on with improvements. Let me know what you think, and if I'm going against other FreeCAD best practices.
chrisb
Veteran
Posts: 54197
Joined: Tue Mar 17, 2015 9:14 am

Re: Modeling best practices tutorial

Post by chrisb »

sjgallagher2 wrote: Sun May 06, 2018 6:02 pm At the moment, the tutorial is a PDF, on Google Drive: https://drive.google.com/file/d/1CPTAFF ... sp=sharing and I would like to put it on the wiki as well, but just wanted to get a basic version that people can comment on with improvements. Let me know what you think, and if I'm going against other FreeCAD best practices.
I read your tutorial and will comment my observations here. Don't take them too serious, I mention details that might not seem worth mentioning and people tell me sometimes that I criticise too much. I mention these things anyway because I know from own experience that some kind of blindness is involved when having worked too long on a certain topic.

Overall I appreciate your tutorial!

And here are my comments:
  • I wouldn't start the introduction with something negative. People not knowing SolidWorks are not interested, for people knowing SolidWorks it is immediately repellent by shouting at them something like "you won't get happy with this". It is valuable at a later point, but I would start with things that FreeCAD can do.
  • At the end of the first section I would include a TechDraw image with the relevant measures.
  • You state
    Something that is worth noting is that in FreeCAD, there is no global origin.
    I don't agree on this. Creating a new part or body on top level it has its origin in the global (0,0,0) origin. If they are inside a container they are placed relative to the origin of their parent - which itself might be placed relative if it is contained as well in e.g. a part.
  • Screenshots: Making the Window narrower would result in a bigger scale and make things easier to read. The Python console could be made smaller or hidden.
  • I am not sure about the Floor DatumPlane. It is technically useless because the plane is the same as the principal plane. It just gives a name to it.
  • From an educational point of view it might be sensible to start on the floor. From a modeling point of view it would be easier to start with the seat, and add the four legs in one sketch.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
sjgallagher2
Posts: 12
Joined: Fri Mar 03, 2017 2:51 am

Re: Modeling best practices tutorial

Post by sjgallagher2 »

Chris, thanks for your comments. I agree maybe the wording is negative at first. For the floor datum plane, it is used because the floor can be offset to position the model in the z-direction, with a single parameter. Also, it creates a step of abstraction from the origin planes, because the 'floor' is conceptually different from the XY plane. I like the idea of starting the sketch at the seat and moving from there for modelling, but I do think the ground-up approach is useful for learning. I can make a note in the tutorial.
User avatar
Joel_graff
Veteran
Posts: 1949
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Modeling best practices tutorial

Post by Joel_graff »

sjgallagher2 wrote: Tue May 08, 2018 3:49 pm Chris, thanks for your comments. I agree maybe the wording is negative at first.
When I read it, I thought the same, though I really don't know that much about parametric modeling practices. If the negatives you listed are especially significant to your tutorial (and are worth addressing), I would recommend observing the lack of functionality, but then show how that can be overcome some other way in FreeCAD. If it isn't relevant to the tutorial, I wouldn't bother mentioning it.

Still, good tutorial. It presents an approach I wasn't familiar with - which is a good thing!
FreeCAD Trails workbench for transportation engineering: https://www.github.com/joelgraff/freecad.trails

pivy_trackers 2D coin3D library: https://www.github.com/joelgraff/pivy_trackers
KarenCorbett
Posts: 4
Joined: Thu Aug 02, 2018 7:22 am

Re: Modeling best practices tutorial

Post by KarenCorbett »

Great work done buddy. :)
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Re: Modeling best practices tutorial

Post by Kunda1 »

sjgallagher2 wrote: Sun May 06, 2018 6:02 pm At the moment, the tutorial is a PDF, on Google Drive: https://drive.google.com/file/d/1CPTAFF ... sp=sharing and I would like to put it on the wiki as well, but just wanted to get a basic version that people can comment on with improvements. Let me know what you think, and if I'm going against other FreeCAD best practices.
@sjgallagher2 would you be willing to incorporate the feedback from other users ?
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
catman
Posts: 412
Joined: Fri Jan 11, 2019 10:42 pm

Re: Modeling best practices tutorial

Post by catman »

sjgallagher2 wrote: Sun May 06, 2018 6:02 pm In my humble opinion, cross references are a must for CAD design, because they let you have several parts dependent on each other in powerful ways. In this case, the chair legs are boxes with a height that goes up to the bottom of the seat, wherever the seat bottom is, and in the cross section of the reference sketch.
[...]
Let me know what you think, and if I'm going against other FreeCAD best practices.
@sjgallagher2 I like the tutuorial very much. As a still starting FreeCAD user I would love to see advanced issues like that to appear in the wiki, thanks a lot for your efforts! For me your wording is good to understand and the process is overall well explained. I found I could apply some of your proposals directly to several of my little projects. Very useful!

Here is some specific feedback:
  • It was not clear to me why you introduce a shape binder. You did not explain it. I tested the cross-referenced master sketch approach in a quick model and it seemed to work fine without a shape binder. Maybe you could expand that a bit.
  • Is there a way to see in the model tree whether or not a sketch is a cross-referenced sketch? To me they look the same. Also the attachment mode is the same. Should you know please point it out
  • Are there some penalties for enlarging the scope of the sketch to "other parts and free objects" and enabling the use of cross-references? I am asking because I found that projecting geometry into a sketch is fragile to changes (due to Topological Naming I guess), so linking to other sketches underneath might be a better way, gerenally.
  • Please have a look at the new copy dialog in V0.19 (see screenshots, they appear when you press "Ctrl-C" in the tree.), maybe its a good thing to already include it . You can do more things, but the wording and appearance is quite different (e.g. does not mention "copy" at all) so that people might be confused in the future when reading your reference to the old dialog.
CopyDialog_V0.18.png
CopyDialog_V0.18.png (15.01 KiB) Viewed 5765 times
,
CopyDialog_V0.19.png
CopyDialog_V0.19.png (57.75 KiB) Viewed 5765 times
  • I would have love to see a screenshot that shows the situation where the height formula for the leg extrude is being entered. Myself, I was a long time not aware that you could enter anything beside numbers in those boxes, maybe others find it helpful as well.
Green88
Posts: 10
Joined: Tue Oct 13, 2020 12:10 am

Re: Modeling best practices tutorial

Post by Green88 »

Great write up.
Thanks for sharing your tips.

I did have one question, when I try to recreate the chair I find that the Dependency Graph shows some red lines as per the image below. Is this something I did wrong or are the red lines not an issue? (I should mention that I'm just starting out with FreeCAD so I find I often miss the nuances :oops:).
Attachments
Screenshot - 2020-10-19 , 10_13_00 AM.png
Screenshot - 2020-10-19 , 10_13_00 AM.png (131.95 KiB) Viewed 4774 times
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Modeling best practices tutorial

Post by GeneFC »

Green88 wrote: Mon Oct 19, 2020 2:21 pm Is this something I did wrong or are the red lines not an issue?
Red lines are always a concern. They mean that you have illegally linked between PD bodies, without using shape binders or some other method.

The illegal links do not always cause fatal problems, but they almost always indicate a very fragile model that will break easily with any future operations.

Gene
Green88
Posts: 10
Joined: Tue Oct 13, 2020 12:10 am

Re: Modeling best practices tutorial

Post by Green88 »

GeneFC wrote: Mon Oct 19, 2020 4:45 pm
Red lines are always a concern. They mean that you have illegally linked between PD bodies, without using shape binders or some other method.

The illegal links do not always cause fatal problems, but they almost always indicate a very fragile model that will break easily with any future operations.

Gene
Thanks for your input Gene. I'll have to have a closer look at what I did. Cheers.
Post Reply