Re: Dirty Files and what causes them.
Posted: Tue Jul 18, 2023 3:51 pm
I've got three more to add to this list. One is just a "facepalm". The other two are a little more insidious.
Prior to Swx2021, the software allowed the RHS of an equation to depend on a driven dimension without complaint. Then various service packs for 2021 started throwing errors or circular reference warnings. In theory they are spurious warnings, since there should be nothing circular going on, but when you did this in older versions, there was often a performance hit. Solidworks sort of discusses this in S-064386: Why might ‘Potential circular reference’ warnings display in the equation dialog box? They say programmatically the solver isn't as smart as you are, so does stuff like rebuild multiple times, etc. You can notice this in particular in sketcher environment where you might see a particularly laggy sketch that uses this workflow with equations. You can sketch faster by turning off "Automatic Solve", but that's only a bandaid.
On the 3ds knowledge base one finds articles like these:
Why is a user prompted with an error message when a driven dimension is chosen in an equation? QA0000010622]
- Your "History Options" registry setting is lower than when the model was last saved. It defaults to 10. But if your system has a lower value than the file was created with, the model will always be dirty on open as the stored history gets truncated. This option is not exposed in the Systems Options GUI, but you can access it by right-clicking the history folder when you have a model open. This one took me a lot of registry diffs to track down.
- You are using equations with "driven" dimensions on the right-hand side (RHS). While this is perfectly legit in terms of math and feature tree history, something about the internals of solidworks doesn't like this. It can trigger multiple rebuilds, circular reference warnings in some versions, inactive configurations losing the green checkmark, etc. Most of the time you can get creative with relations or "up to vertex" types of conditions to avoid using driven dimensions like this.
- You have equation expressions that evaluate to different values for different configurations (perhaps because the RHS uses a configured variable). I've posted about this before: in Part with two sketches -- switching configs causes the inactive to be out-of-date This will cause configurations to lose the green checkmark when you switch configs. Defeating the "rebuild all" approach to managing this dirty-files issue.
Prior to Swx2021, the software allowed the RHS of an equation to depend on a driven dimension without complaint. Then various service packs for 2021 started throwing errors or circular reference warnings. In theory they are spurious warnings, since there should be nothing circular going on, but when you did this in older versions, there was often a performance hit. Solidworks sort of discusses this in S-064386: Why might ‘Potential circular reference’ warnings display in the equation dialog box? They say programmatically the solver isn't as smart as you are, so does stuff like rebuild multiple times, etc. You can notice this in particular in sketcher environment where you might see a particularly laggy sketch that uses this workflow with equations. You can sketch faster by turning off "Automatic Solve", but that's only a bandaid.
On the 3ds knowledge base one finds articles like these:
Why is a user prompted with an error message when a driven dimension is chosen in an equation? QA0000010622]
In the ‘Equations’ dialog box, why does the 'Automatic solve order' option inactive? QA00000121117Since driven dimensions do not actually control the equation, the error message is warning that using a driven dimension will lead to multiple rebuilds when making changes to a part or assembly file. SOLIDWORKS™ does not prevent the user from choosing driven dimensions for equations, but it is not recommended.
[Some text omitted]
This is an enhanced behavior in SOLIDWORKS 2021 in order to avoid circular references which is caused due to Reference dimension (driven dimension) used for "value / Equation" for global variable or equation.For more clarification on this please refer the sample file,
- Open part “Part 2.sldprt” in SOLIDWORKS 2021.
- Go to Equations > Notice “Automatic solve order” is Greyed-Out.
- Delete "D1@Sketch2" from equation and add value. The expression will become "A = 55 / 2".
- Notice the option 'Automatic Solve order' is available.
- This happened because of driven dimension "D1@Sketch2". SOLIDWORKS recommends you to avoid use the reference dimension to create global variable and equations.