DeepSOIC wrote:I remember that evil bit of code, I messed with it some long time ago. It makes it look like the sketch has no constraints if geometry types change, and eventually that state of no constraints is stored permanently, with no way back.jnxd wrote:Once the deletion is triggered, the code tries to delete constraints related to these external geometries, but due to the structure of the constraintlist object, we only get an empty list, and the code replaces the constraints with this empty list.
I searched up the commit that introduced the code, and it was some kind of an experimental measure against crashes when edge kind of external geometry changes.
I thought on how to solve it better, but unfortunately didn't come up with anything.
So the way to go should be to patch up validateExternalLinks, I think.
I could not figure out the logic behind constraintlist returing an empty getvalues() when the geometry is invalid. However, without changing that class, I was able to avoid it by calling acceptgeometry right before validateExternalLinks. Yet the battle is only half done, since we still need a way to validate datums!