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.
Compatibility questions
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
- adrianinsaval
- Veteran
- Posts: 5548
- Joined: Thu Apr 05, 2018 5:15 pm
Re: Compatibility questions
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.
Re: Compatibility questions
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
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/
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.
Blog: https://okkmkblog.wordpress.com/
Re: Compatibility questions
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).
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).
- adrianinsaval
- Veteran
- Posts: 5548
- Joined: Thu Apr 05, 2018 5:15 pm
Re: Compatibility questions
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: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)
The article later also says:TopoDS_Face object is a topological element holding an internal reference to the parametric surface subclassing the generic Geom_Surface type
notice how it talks of faces (topology) not surfaces (geometry)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.
then it talks of the issue we have here with freecad:
this is true, we need a descriptor that will survive save and restore and recompute.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 the approach we currently useThe 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.
indeed this is the toponaming problem we face today, Edge3 can suddenly be something else entirely if you change a previous step.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 essentially what the topo naming algorithm is doing, and it might even be at least partially based on the paper cited there too.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.
- adrianinsaval
- Veteran
- Posts: 5548
- Joined: Thu Apr 05, 2018 5:15 pm
Re: Compatibility questions
btw, in a similar case FreeCAD with toponaming algorithm even beats onshapeIPowIPi 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).
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.
Re: Compatibility questions
Yes You are right, I have used geometry wrongly I will amend the post.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.
...
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/
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.
Blog: https://okkmkblog.wordpress.com/