FC v0.17dev: Part Design Next Usecases and Best practices

Post here for help on using FreeCAD's graphical user interface (GUI).
User avatar
NormandC
Posts: 11281
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: FC v0.17dev: Part Design Next Usecases and Best practices

Postby NormandC » Wed Nov 09, 2016 2:32 am

Hi Chris and freecad-heini-1,

chrisb wrote:I have this model for a car's door lock, which I would like to discuss here in order to learn how to improve stability in terms of parametrization. And so I would like to hear your recommendations how to achieve this task.
It has a linear dependency graph and is supposed to be fully parametric. However, it brakes very easyly, even if I make only tiny changes.

Somehow I missed your post.

The topological naming issue remains in PartDesignNext, nothing has changed on that point, and unless many developers join ezzieyguywuf's work and combine all their energies on the problem (which is not realistic IMHO), I doubt anything will change by the time 0.17 is released sometime next year. But astute use of PartDesignNext's new stuff and possibly expressions and spreadsheet will help reduce the effects of topological naming problems. I believe it could be bypassed entirely if not for procedural features such as Chamfer, Draft and Fillet. At least in v0.17, these 3 types of features now can be edited to change edge/face selection, so if a PartDesign Fillet fails you can fix it rather than delete and redo it again.

Basically, you need to stop mapping sketches to faces - entirely! Place your sketches on standard planes, or on custom datum planes. And when creating datum geometry, do not base it on the part topology, base it on standard planes/axes and/or sketches. I think it's also worth pursuing a "master sketch" approach, since you can now create external geometry linked to an other sketch. I assume (maybe wrongly) that sketches may not suffer as much from the topological naming issue.

For really complex models, it may also be wise to work with separate bodies, that you'll combine at the end into a single part. Use of Shapebinders will allow links between them, but it may induce instability.

So, forget the nice linear dependency graph. It's what causes the models to break in the first place.

One thing that is still true: leave fillets, chamfers and drafts for the very end. In your doorlock.FCStd file, the second feature in the tree is a chamfer and toward the bottom of the tree you mixed a pocket with fillets. That's bad practice.

Also, I would not add the holes into the very first sketch. This adds a lot more faces to the first Pad, and consequently raises the chances that the face numbering could change after edits. In parametric design, it is considered good practice to first work on the basic shape of the model, then add holes, and finally add chamfers and fillets.

But all this is theoretical, it needs to be put to the test. ;)
User avatar
NormandC
Posts: 11281
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: FC v0.17dev: Part Design Next Usecases and Best practices

Postby NormandC » Wed Nov 09, 2016 4:22 am

I took the time to remake the model in 0.17. Wherever possible I simply copied sketches and mapped them to standard planes (the ones under BodyOrigin), but for reasons I don't understand I couldn't remap some sketches, and copying them created new datum planes. In those case I redrew the sketches from scratch.

NormandC wrote:toward the bottom of the tree you mixed a pocket with fillets. That's bad practice.

I found out that this was unavoidable, otherwise the fillet on the slopped edge cannot be done if the pocket cuts it first.

Some points :
  • I removed the holes from the PadBasePlate Sketch.
  • SketchBlock is mapped to DatumPlane rather than on top of the base plate. DatumPlane is offset from the XY_Plane; the offset value in Z is a formula linked to PadBasePlate's length (Pad.Length).
  • I created a new sketch with a pocket for the holes (only on one side). I mapped the sketch to DatumPlane. I created a Mirrored feature of the pocket.
  • I created a second datum plane (DatumPlane001) on which I mapped SketchSlitTop. The datum plane is offset from XZ_Plane using Expressions again with a formula (Sketch006.Constraints.BlockWidth / 2).
My model is probably not fully "topological naming-proof", but it should be pretty robust. Do test it out, and let me know if there are breakages. And don't hesitate to ask questions on my modelling choices! I won't pretend that what I did was the best method, I too am learning the new work flow. :)
Attachments
doorlock_fc017_normandc1.fcstd
(356.81 KiB) Downloaded 37 times
FC017_chrisb_doorlock_01.png
FC017_chrisb_doorlock_01.png (23.59 KiB) Viewed 556 times
chrisb
Posts: 1054
Joined: Tue Mar 17, 2015 9:14 am

Re: FC v0.17dev: Part Design Next Usecases and Best practices

Postby chrisb » Wed Nov 09, 2016 7:46 am

NormandC wrote:I took the time to remake the model in 0.17
Normand, Thank you very much for your comments - and the redesigned model!
I have now a better understanding of how to handle Part Desing Next. And even more: I have learned more about how to avoid the topological naming problem: First the big picture, then the details. Until now I have tried to keep the number of sketches as small as possible, thus putting everything possible in a plane. This lead me naturally to the holes in the first plane.
I knew that fillets should be applied last and that's what I recommend to others - and that's how I had done it in the first place. Alas, the object broke. The model I have uploaded here is by far not the first one, I had to redesign it several times. And these intermediate fillets worked.
With the knowledge I have now I think I would have reached the target much faster and clearer.
So for me the essence of Part Design Next is that it is easier to think big, i.e. use datum planes - which are usually a rough abstraction of the model - rather then the details of the model itself.
User avatar
NormandC
Posts: 11281
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: FC v0.17dev: Part Design Next Usecases and Best practices

Postby NormandC » Wed Dec 28, 2016 7:05 pm

Anyone here believing sukk741's first post here is legit? The topic he says is his own ("check out my thread") is actually fosselius'. http://forum.freecadweb.org/viewtopic.php?f=10&t=15442

Just do a forum search on any sentence in sukk741's reply and the first result will be fosselius' topic.

Seriously, mods, please put your suspecting hat on and take a hard stand on such posts. If it seems utter non sense, don't approve the post and ban the user. That's what I used to do when I was an admin, and I never saw any one of those come back and complain. Because they were spammers.

Have a look at your members list sometimes: there are thousands of non-legit accounts in there. You just need to look at their website address.
wmayer
Site Admin
Posts: 10971
Joined: Thu Feb 19, 2009 10:32 am

Re: FC v0.17dev: Part Design Next Usecases and Best practices

Postby wmayer » Wed Dec 28, 2016 8:52 pm

Seriously, mods, please put your suspecting hat on and take a hard stand on such posts.

I agree. The whole post is full of buzz words but doesn't make any sense to me.