What exactly causes references to break?
Posted: Sat Aug 17, 2024 8:18 am
Hi, I am designing another boat (yeah, again) model as a non-removable male mold (core) for composite resin infusion. The model is reasonably complex (345 features), done with hybrid surface and solid modeling. The dimensions are not final, and I may need to adjust them many times over during the rest of the project development, so I tried my very best to make features parametric, robust and reliable, so I don't get rebuild errors when I start changing things.
But for some reason, I am completely failing at it, and I don't get why. To my understanding, SW tracks references through internal ID of various geometric elements (sketch elements, vertexes, edges, faces, etc.). If modifying a dimension causes some element to disappear, then it's very logical that it results in an error.
However, I'm observing that even when I make absolutely tiny dimension changes that do not cause any geometric elements to disappear, model still breaks into pieces with tons of broken reference errors.
Note that if I do a forced CTRL+Q rebuild, nothing breaks, indicating that references are generally fine and there are no hidden errors in the tree.
However, if I'm modifying a dimension that has a very tiny impact on the geometry, and most certainly does not cause any elements to disappear...
...then everything is broken instantly. Which makes no sense because all geometric elements should be preserved, so no IDs should be changing.
Iterating through the errors, this is the behavior I observed:
1. Edge and face references become dangling;
2. Loft and Boundary features say "Please check input curves", although those curves are not dangling, and simply re-selecting them fixes the error;
3. Trim Surface loses reference of pieces to keep and delete (inverts them);
4. Fill Surface simply deletes the edges that were previously selected and then complain about it;
5. Merge Result and Combine lose body references or refer wrong body;
6. Sketch elements created with Convert Entities and Intersect go dangling as well.
Etc...
So for whatever reason whenever I make even a tiny change to the dimensions, it appears that SW shuffles these IDs around, and I can't find any obvious pattern as to why this occurs.
Now, I know my model is a bit dirty and I could improve it further (reduce the number of features, use less surfacing tools, reference sketch elements instead of solid/surface geometry, etc.), but these errors should not be appearing in the first place, because again, making these tiny dimensional changes should not destroy any IDs.
So I find myself repairing tons of features every time I need to make an adjustment to the model. I do try to utilize Display/Delete Relations and Replace Entity to preserve IDs as much as possible, but it is still a major headache.
Can anyone take a look at my model, and help me understand why SW behaves like this? File was saved in 2024 SP3.1 (yeah, I was forced to update), so if you can't open it, maybe you can give some general insights into why this tends to happen?
But for some reason, I am completely failing at it, and I don't get why. To my understanding, SW tracks references through internal ID of various geometric elements (sketch elements, vertexes, edges, faces, etc.). If modifying a dimension causes some element to disappear, then it's very logical that it results in an error.
However, I'm observing that even when I make absolutely tiny dimension changes that do not cause any geometric elements to disappear, model still breaks into pieces with tons of broken reference errors.
Note that if I do a forced CTRL+Q rebuild, nothing breaks, indicating that references are generally fine and there are no hidden errors in the tree.
However, if I'm modifying a dimension that has a very tiny impact on the geometry, and most certainly does not cause any elements to disappear...
...then everything is broken instantly. Which makes no sense because all geometric elements should be preserved, so no IDs should be changing.
Iterating through the errors, this is the behavior I observed:
1. Edge and face references become dangling;
2. Loft and Boundary features say "Please check input curves", although those curves are not dangling, and simply re-selecting them fixes the error;
3. Trim Surface loses reference of pieces to keep and delete (inverts them);
4. Fill Surface simply deletes the edges that were previously selected and then complain about it;
5. Merge Result and Combine lose body references or refer wrong body;
6. Sketch elements created with Convert Entities and Intersect go dangling as well.
Etc...
So for whatever reason whenever I make even a tiny change to the dimensions, it appears that SW shuffles these IDs around, and I can't find any obvious pattern as to why this occurs.
Now, I know my model is a bit dirty and I could improve it further (reduce the number of features, use less surfacing tools, reference sketch elements instead of solid/surface geometry, etc.), but these errors should not be appearing in the first place, because again, making these tiny dimensional changes should not destroy any IDs.
So I find myself repairing tons of features every time I need to make an adjustment to the model. I do try to utilize Display/Delete Relations and Replace Entity to preserve IDs as much as possible, but it is still a major headache.
Can anyone take a look at my model, and help me understand why SW behaves like this? File was saved in 2024 SP3.1 (yeah, I was forced to update), so if you can't open it, maybe you can give some general insights into why this tends to happen?