Compatibility questions

Report observations made with the new Toponaming branch.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: Compatibility questions

Post by adrianinsaval »

I think onshape and realthunder's branch have the correct behavior, the breakage should be reported in the filet, personally I would find it annoying if FreeCAD was questioning my every move while sketching.
IPowIPi wrote: Tue Mar 21, 2023 11:28 pm and even a direct link between geometry and topology node wouldn't help.
Like I said before, this has nothing to do with TNP. I't the later part of the article that talks about persistent identifiers for topology that's relevant to TNP, notice how there is basically no mention of geometry in that section.
User avatar
onekk
Veteran
Posts: 6146
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Compatibility questions

Post by onekk »

Actually the problem as depicted in the article posted is that there should be an history of changes to permit to link the geometry to the topology map a topological element to a "name" that is consistent between topology changes as the "name" actually in FreeCAD is simply the topology type plus the index number returned by OCCT when creating the TopoShape and his not "stable".

It is speaking of AAG as a technique to mitigate TNP as avoiding TNP is even a matter of design, if you design a solid and refer to a face that disappear you could not blame the kernel when it not find deleted face.

But if the face is simply transformed the mapping will avoid breaking the model.

Only a rough explanation.

Regards

Carlo D.


Edited Post It was very badly conceived
Last edited by onekk on Thu Mar 23, 2023 6:31 am, edited 4 times in total.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
IPowIPi
Posts: 90
Joined: Sun Jul 25, 2021 9:37 am

Re: Compatibility questions

Post by IPowIPi »

Thanks everybody for your helpful explanations!
If we get the same behavior as in Onshape in FreeCad 1.0 this sounds great! At least for the given examples the behavior seems to be predictable, indicates the problem and looks easy to fix (by reassigning the orphaned feature).
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: Compatibility questions

Post by adrianinsaval »

onekk wrote: Wed Mar 22, 2023 3:45 pm Actually the problem as depicted in the article posted is that there should be an history of changes to permit to link the geometry to the topology between topology changes (as the index of topology element that actual FreeCAD uses is simply the index number that is returned by OCCT when cresting the TopoShape)
where do you get the idea that the issue is identifying geometry? that is not an issue, when you provide a topology reference the underlying geometry is known, for example FreeCAD has no such modelling history tracking right now and we can still know what geometry any selected topology element is. Or check the article itself:
TopoDS_Face object is a topological element holding an internal reference to the parametric surface subclassing the generic Geom_Surface type
The article later also says:
The fundamental question for the algorithms dealing with the Topology is how to identify a specific boundary element such as the face, edge or vertex.
notice how it talks of faces (topology) not surfaces (geometry)
then it talks of the issue we have here with freecad:
A modeling recipe (called a "history tree" in the feature-based systems) which operates with the transient IDs of a model could not be reevaluated because such reevaluation will create a brand new model with entirely different transient IDs inside. Therefore, it is generally impossible to organize the computation schemes basing on the transient pointers alone: such pointers should first be extracted from a more persistent descriptor.
this is true, we need a descriptor that will survive save and restore and recompute.
The simplest solution to the persistent identification problem is the usage of serial identifiers for the topological primitives. Such identifiers can be associated with the elements of a topology graph by sequentially visiting its nodes and counting them.
this is the approach we currently use
Although such an approach is persistent in a sense that the indices are not changed after the Topology-preserving reevaluation, such indexing is not stable enough. Indeed, any modification to the Topology of the model (i.e., to the topology graph) makes the previous enumeration invalid.
indeed this is the toponaming problem we face today, Edge3 can suddenly be something else entirely if you change a previous step.
A more "rigid" persistent identifier is necessary. As J. Kripac shows, a rigid persistent identification mechanism can be built on top of the modification history.
Indeed, this is essentially what the topo naming algorithm is doing, and it might even be at least partially based on the paper cited there too.
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: Compatibility questions

Post by adrianinsaval »

IPowIPi wrote: Wed Mar 22, 2023 4:15 pm Thanks everybody for your helpful explanations!
If we get the same behavior as in Onshape in FreeCad 1.0 this sounds great! At least for the given examples the behavior seems to be predictable, indicates the problem and looks easy to fix (by reassigning the orphaned feature).
btw, in a similar case FreeCAD with toponaming algorithm even beats onshape ;)
if in the same example you remove the line but then add again an equal line there (instead of an arc as I did) the fillet breaks in the same manner in onshape, but in realthunder's branch FreeCAD is smart enough to know that it is the same thing and restores the references successfully.
User avatar
onekk
Veteran
Posts: 6146
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Compatibility questions

Post by onekk »

adrianinsaval wrote: Wed Mar 22, 2023 7:10 pm ...
where do you get the idea that the issue is identifying geometry? that is not an issue, when you provide a topology reference the underlying geometry is known, for example FreeCAD has no such modelling history tracking right now and we can still know what geometry any selected topology element is.
...
Yes You are right, I have used geometry wrongly I will amend the post.

Thanks for noting.

Regards

Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
Post Reply