I have a sneaking suspicion that this is not possible but maybe someone can think of something I can't.
I am specifically trying to find all cad models (part or assembly) that contain a coordinate system named "csys-entry". However this question extends to any feature in a model.
Can anyone think of a way to do this?
I am asking this in the Windchill section because of its reporting capabilities but am open to solutions that may include other tools.
I'm guessing you would need code that could run in non-graphics mode that would open up the files and do a search and then report back to a text file.
1. For datums only, if the datum feature has a very specific name, you can use ModelCHECK in batch mode with PRT_DATUM_CSYS CSYS-ENTRY defined in the start_config_options. You can check for Axis, Plane, Csys, Point, or curve.
2. For other features, if the feature doesn't have a specific name, but a layer is defined for the feature type, you can use the ModelCHECK Layers start_config_option to check for the existence of the layer.
3. If the feature doesn't have a specific name, and a layer is not defined for the feature type, you can use ModelCHECK to move the features onto a specific layer. The ModelCHECK report may list the feature as being moved, and there is your confirmation the feature exists. If the report doesn't show the feature being moved, you can always run ModelCHECK again using option 2 above.
4. You can run MC that uses a mapkey to determine if a feature with a specific name exists.
For a WC search to work, you would need to expose the feature names (or types) to WC in order for it to be able to search for them.
Thanks for the reply!
Well I guess I am going to have to read up on model check. I don't know a lot about model check and wasn't aware it could do anything you are talking about.
With what little I know about model check, I assume that I will need all my parts and assembly items open in one large assembly, correct? Or is there some way to run model check against windchill?
There is no need for any custom coding.
Once you've configured ModelCHECK, you can set it up to run in batch mode.
You'll need to have "Distributed Batch" installed (installed as an option when installing Creo Parametric). You can check for it by seeing if the file <installpath>\PTC\Creo 4.0\M###\Parametric\bin\ptcdbatch.bat (in Creo Parametric 4) exists. If that file exists, it's installed.
Distributed batch can connect to your WC system. You only need to create a WS, and add the files you wish to check.
In distributed batch, you can setup a task group for ModelCHECK or Retrieve and Check Model Integrity (under the Misc heading). It's been a while since I've run this, so I don't recall which one is the better choice.
Once you select a task group, you can define the objects on which to perform the task. Assuming you've connected to WC in distributed batch, you can select the models from your WS.
Once all the options have been defined, you can run the task group.
Your ModelCHECK configuration will determine where the reports are stored (config_init.mc).
You wouldn't have a good resource for instructions on how to configure model check would you?
Googling isn't turning up a lot, I will keep searching but if you just happen to know of a good resource you could pass on that would be helpful.
This is the definitive source, written by the former product manager at PTC:
I know everyone is going to be dismayed by this but...…..I think I found a Creo feature that isn't well documented......I know, what are the chances.
I am working on getting the book that was suggested but in the mean time I am trying to figure some of this model check thing out. I think I have the PRT_DTM_CSYS set in the start file correctly but what it seems to be acting like i have to know what the model feature number is. This csys can technically be anywhere in the model tree but it will always be a specific name.
Am I understanding the way this works correctly?
ok, figured that part out. Yes that is the way it works and if you just don't populate the field it will search for name only. Which is what I need.
Now on to the batch processing part.