I am wondering if you guys came across this issue:
We just switched to using Creo 3. We were using Creo 2 with Windchill 10.2
Our start parts have these standard relations:
PART_NUMBER = rel_model_name()
PART_NAME = PTC_COMMON_NAME
PART_NUMBER and PART_NAME are designated parameters, and they are used in standard drawing's BOM tables.
Anyway, with Creo 2, when I renamed the CAD object in Windchill commonspace and downloaded this object to a workspace, then upon opening it and doing a regeneration, we'd get a warning about regenerating a read-only model. Subsequently, when attempting to save it, the "checkout/continue/make read-only" dialog box would be shown.
Now, in Creo 3, sames scenario leads to the model regenerating without any notifications (which is kind of nice), and the model parameters are changed (silently).
However, if one does nothing else to this model, and tries to save it, then the system says "object not saved because it was not changed" But that's obviously wrong, since the values of the PART_NUMBER and PART_NAME parameters have changed.
Moreover, one cannot check in these changes; the workaround seems to be to make a non-change to a model such as moving a feature in the model tree to a new spot and them moving it back to its old spot.
Is this the intended action? On one hand, it kind of seems to work. But I also seems wrong, and I will be looking at how this works with "as stored" drawings.
In the meantime, are there some settings in Creo 3 that I should know about and modify our standard configurations?
I prefer the Add Layer, Delete Layer to make a non-change. But I'm not surprised as the detection of what constitutes a change is not easy. Maybe they have determined to include only changes that the user interface has initiated.
We have the config option save_objects set to changed_and_specified. This means every time I hit save, Creo will save the model regardless of whether or not it thinks it needed to. This is especially helpful for drawings where something changed on the model and is visibly different on the drawing the but the drawing itself doesn't detect that it changed.
hmm, well, I am surprised because it would seem pretty obvious to track that parameter values have been changed...
I am regenerating the part, and afterwards I open its "Parameters" window and I see the values have changed.
So the issue is that the part should be flagged as "changed" but it isn't.
Anyway, it worked properly in Creo 2 and now in Creo 3 it doesn't. I'm wondering if it's the same for others.
I think I'll open a support case with PTC and let you know what they tell me.
I have a question; suppose you have the "save_objects changed_and_specified" and you save the assembly.
Do all its constituent parts also get saved? Or just the ones that the system thinks have changed?
If it's a parameter that is supplied/controlled in Windchill then that change is made before the file is opened, so Creo should not be able to know that it has been changed. Flagging everything as changed that follows an undetectable change is tricky.
One way to handle this would be to keep a full, read-only, duplicate of the entire model database and then create a 'working' version and check both entire structures against each other to see if there is any change. This seems like a lot of overhead.
The other is to include in various routines the ability to set a 'changed' flag, so that logic can be applied to tell purposeful changes, initiated by the user from automated changes that result from evaluating the model logic. That is, if another user opens the same model and gets the same results, even if the model is different is there any reason to say that it has changed?
Suppose the change is that it automatically updates to the current date, so that it is always changed, every time it is opened. Is it worth while to check that into Windchill every time?
But the fact is that Creo 2 was able to detect this change, and Creo 3 does not. Somewhat off-topic, but I feel that when comparing the "response times of Windchill-interaction" between Creo 2 and Creo 3, the former wins... One of my explanations is that Creo 3 seems to know more about "out of date" objects than Creo 2 did (you have this "Notification Center" in its status that tells the user that they're not using the latest version of the model).
I maintain that keeping track of the model's "parameter table" and comparing the last stored to what's been generated after the file is retrieved and regenerated does not seem like a lot of "overhead".
In conclusion: I appreciate your arguments - I think they're insightful and discussions with you about implementation details are interesting. I do wish someone from PTC would pipe-in. Let's see what the support call brings...
And just to note here - "changed_and_specified" is the default setting for save_objects.
Set config option "upd_param_on_retr_mark_modified yes".
With this option any change in parameters or relations will be considered a model change and Creo save model.