For those who don't know me, I'm one of the UI designers at SolidWorks and I'm helping out with the "Model Lock" feature that you may have heard about. We're working on a few design questions at the moment and I thought it would be good to involve you all in the process.
As you probably know, the feature allows you to set a point in the history, and SolidWorks will not rebuild any features before that point. The main use of this is for those (hopefully rare) cases where SolidWorks needlessly rebuilds features that don't need it. It can also be used to control which features are rebuilt for parts where using Ctrl-Q has become necessary. (But please remember that using Ctrl-Q on parts where it isn't needed -- which is the vast majority of them -- does nothing but waste a lot of time, which is why SolidWorks doesn't officially support it.)
Another use I've heard mentioned for the feature is to "lock down" a part, perhaps when it gets released for production or to prevent others from changing it. And this is what we're a little worried about at the moment. The problem is that there are certain situations (which I'll be happy to explain if anyone wants the nitty-gritty) where we can't avoid rebuilding some of the features, even if they're locked. If things like in-context references exist, that rebuild could change the model (just like it does today). Now if your goal is just to prevent excessive rebuilding, having us do a rebuild one time out of 100 probably isn't going to be a huge problem. But if you're expecting that the part is permanently "set-in-stone" frozen, a rebuild that changes the geometry could be a major issue.
So the questions for the group are:
- Should we still release this feature given the above? Is near-but-not-complete control over rebuilds still valuable?
- Given that an unintended geometry change after release could cause a very expensive mistake, should we give this feature a different name to reflect that it's more of a "rebuild hold" than a true geometry lock? What would be a good name?
- Should we go further than just a name? A warning message the first time it's used? A special indicator? Something else?