trouble with fillet - topological naming

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!
renatorivo
Posts: 2162
Joined: Tue Feb 21, 2012 8:07 pm
Location: Torino - Italy

trouble with fillet - topological naming

Postby renatorivo » Wed Sep 28, 2016 8:35 pm

Hi,
reference to viewtopic.php?f=28&t=17566
I tried to solve this, it looked like a simple problem, but I found the greatest difficulty than expected.
OS: Windows 8.1
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.6706 (Git)
Build type: Release
Branch: releases/FreeCAD-0-16
Hash: f86a4e411ff7848dea98d7242f43b7774bee8fa0
Python version: 2.7.8
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17

My file:
achille inv-spig-no-mirror.FCStd
(58.97 KiB) Downloaded 16 times
I created this object with the radius 40 mm. I applied the 4 fillet. Everything is ok.
achille1.png
achille1.png (33.43 KiB) Viewed 937 times
I changed the radius from 40 to 50 mm, I got this: the fillet are performed on other edges
achille2.png
achille2.png (45.19 KiB) Viewed 937 times
New change of the radius. With a radius of 100 mm, it is correct.
achille3.png
achille3.png (34.86 KiB) Viewed 937 times
Another test, perform the fillet over the holes. Erased the fillet on the corners and selected circles. It works
achille4.png
achille4.png (28.6 KiB) Viewed 937 times
But if I change the radius the problem returns.
Renato
Last edited by renatorivo on Sun Oct 02, 2016 8:38 pm, edited 1 time in total.
renatorivo
Posts: 2162
Joined: Tue Feb 21, 2012 8:07 pm
Location: Torino - Italy

Re: trouble with fillet

Postby renatorivo » Wed Sep 28, 2016 8:39 pm

The result with radius 50 mm. Missing holes
achille5.png
achille5.png (28.89 KiB) Viewed 936 times
Radius 70 mm, all right. :?
achille6.png
achille6.png (33.44 KiB) Viewed 936 times
Renato
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: trouble with fillet

Postby NormandC » Wed Sep 28, 2016 11:48 pm

Hello Renato,

This problem has been known for years and is caused by edges and faces being renumbered after changes to sketches or features.

In your attached file (the radius is 70mm by the way), the Fillet feature is applied to Edge13, Edge14, Edge16 and Edge17. The problem is that FreeCAD does not affect these numbers in a permanent manner. After an edit, Edge13 may be a completely different edge. Yet the Fillet feature will fillet that new edge because it only knows to fillet Edge13.

This is an extremely complex problem that will most likely take a long time (maybe years) to fix. There have been many, many mentions of it over the years, and we have an expression for it: topological naming. The latest attempt by ezzieyguywuf to solve it is ongoing: viewtopic.php?f=10&t=15847

By the way Renato, your model was made with the "apply automatic refine to PartDesign features" option enabled. The problem with this, is that when I open your file and make a change, it totally breaks because I have not enabled this option. This happens for the same reason explained above.
FC_renatorivo_achille_01.png
FC_renatorivo_achille_01.png (44.03 KiB) Viewed 913 times
Therefore it is very important to mention that you have enabled this option when you share models.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: trouble with fillet

Postby NormandC » Wed Sep 28, 2016 11:57 pm

That being said, it is possible to make this part so it is more robust, but it requires to avoid:
  • linking external geometry in sketches
  • mapping sketches to faces
Therefore use of Part Booleans becomes necessary. Use of Expressions and a spreadsheet may be an alternative to linked external geometry.

Granted it greatly diminishes the advantages of PartDesign. :(

The new PartDesign work flow in 0.17 will help work around the topological naming issues.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: trouble with fillet

Postby NormandC » Thu Sep 29, 2016 2:34 am

EDIT: I just realized I didn't figure the fillets at the right place! I only checked your last screenshot with the radius at 70mm. The fillets are on the holes edges, rather than on the end tabs. This makes it easier: fillets can be added to the first Sketch, and instead of Revolutions, A Draft Array on a Part cylinder could be used.
NormandC wrote:it is possible to make this part so it is more robust
I made a new version of this model based on my suggestions. It seems to be pretty robust. I can change the outer diameter at will, and everything updates without trouble.

The trick was to use a combination of separate PartDesign parts, two Part Mirrors and a Part Cut, along with use of Expressions.
  • I started with a sketch on the XY plane and made a PartDesign Pad rather than a Revolution. This allowed me to include the two tabs directly in the first sketch, thus saving two sketches and two pads, plus the instability they brought to the model. Take notice of the two named dimensional constraints and one named reference dimension. They are used in expressions later.
  • Sketch001 and Pad001 make the cut underneath the large disk. The radius constraint inside the sketch is linked to the first sketch outer radius constraint.
  • I removed the fillet feature entirely from the equation. I built the fillet in the sketch I revolved (Sketch002) to create a single hole. The profile is set against the vertical sketch axis; the sketch itself is positioned at the right coordinates using (3 - Sketch.Constraints.TotalLength) for the Y coordinate. The height of the hole in Sketch002 is defined by Pad.Length.
  • I mirrored the Revolution on the YZ plane, made a compound of both objects, mirrored the compound on the XZ plane, then made a second compound containing Compound, its mirror, and Pad001.
  • I finished with a Part Cut.
I'm curious to see if other robust alternatives can be found.
Attachments
achille inv-spig_robusto_normandc1.FCStd
(30.76 KiB) Downloaded 15 times
Last edited by NormandC on Thu Sep 29, 2016 5:24 am, edited 1 time in total.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: trouble with fillet

Postby NormandC » Thu Sep 29, 2016 3:38 am

I made a new model replicating the dimensions and details from stemby's own and posted it in the original Italian topic.

viewtopic.php?f=28&t=17566&p=139206#p139206

Sorry for butchering your beautiful language! :D

Norm
stemby
Posts: 26
Joined: Wed Mar 30, 2011 4:53 pm
Location: Lombardy, Italy

Re: trouble with fillet

Postby stemby » Thu Sep 29, 2016 9:15 am

Thank you very much, Normand!

Carlo
renatorivo
Posts: 2162
Joined: Tue Feb 21, 2012 8:07 pm
Location: Torino - Italy

Re: trouble with fillet

Postby renatorivo » Thu Sep 29, 2016 7:59 pm

Thanks Normand.
NormandC wrote:This problem has been known for years and is caused by edges and faces being renumbered after changes to sketches or features.
Excuse me Normand, this is my serious forgetfulness, I knew, but I didn't think to "Robust references" for this event.
NormandC wrote:edges and faces being renumbered after changes to sketches or features.
In fact, I thought this happened only when you change the shape, that is, when a form is divided into sub-form (an edge becomes two "sub-edges", ...) as posted here (from Naming_project) :
robust-reference.png
robust-reference.png (167.18 KiB) Viewed 834 times
Now I find out that it happens also only changing the measures in a sketch. This is very important and useful to know.
I do not remember that it is described in the wiki, excluding Naming_project and Topological_Naming_Project. Where add something about this?

I tried your files, they work perfectly, no errors.
NormandC wrote:I'm curious to see if other robust alternatives can be found.
Now I try, but I am convinced that it is impossible to do better than you.

Thank you again.

Renato
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: trouble with fillet

Postby NormandC » Fri Sep 30, 2016 1:39 am

stemby wrote:Thank you very much, Normand!
My pleasure, Carlo. I really enjoy finding workarounds for these kinds of problems, of course I don't have as much fun when I do not succeed. :D
renatorivo wrote:In fact, I thought this happened only when you change the shape, that is, when a form is divided into sub-form (an edge becomes two "sub-edges", ...) as posted here (from Naming_project) :
Yes, that page is incomplete, it does not fully detail the problem in FreeCAD. It is also a developer page, not specifically intended for end users.
renatorivo wrote:I do not remember that it is described in the wiki, excluding Naming_project and Topological_Naming_Project. Where add something about this?
I've been wondering. I don't know if we should create a "Shortcomings" page that would list all known problems (fillets, Booleans etc.). Or add one entry to the FAQ? Unfortunately the FAQ is growing a lot. And this is a very complex problem, not explained in a sentence or two.
renatorivo wrote:Now I try, but I am convinced that it is impossible to do better than you.
:oops:
renatorivo
Posts: 2162
Joined: Tue Feb 21, 2012 8:07 pm
Location: Torino - Italy

Re: trouble with fillet

Postby renatorivo » Fri Sep 30, 2016 9:16 am

NormandC wrote:I don't know if we should create a "Shortcomings" page that would list all known problems (fillets, Booleans etc.).
"Shortcomings - major known bugs"
It could collect links to all discussions on important bugs that are still active, and give alternative solutions.