When I use the Import Parameters from an XML file. I have noticed 3 things.
1) If the parameter has a restricted parameter list associated with it, it will not import.
2) If the parameters are designated, when imported they have to be manually designated.
3) An imported parameter that already exists in the file will have its assigned value erased after the import.
I am on Creo 4 m080
Has anyone had an experience with overcoming these limitations?
We hired a couple of new designers and they created hundreds of parts using the piping and framework modules and these did not use our default start part so parameters we want in Windchill are now missing from their files. We are hoping an import will pf the parameters will allow us an easy method of correcting the files.
Solved! Go to Solution.
If you record a mapkey using the old parameter ui (hidden config), it can create any missing parameters, set their values, and designate them. A mapkey built with this old interface will not overwrite any existing parameter values and won't stop running if some parameters already exist. The ability to switch to this old parameter ui is going away in the near future, so I've been pushing on PTC to provide some way to continue this process with the new parameter UI. No luck so far. (See CS322155)
Below is an example mapkey. This will create a bunch of parameters, set their values (in this case blank), and designate them. Run it on a test part to see what it's doing. Let me know if you need a further explanation of anything.
mapkey tucp @MAPKEY_NAMECreate Parameters;@MAPKEY_LABELCreate Parameters;\
mapkey(continued) ~ Command `ProCmdRibbonOptionsDlg` ;\
mapkey(continued) ~ Select `ribbon_options_dialog` `PageSwitcherPageList` 1 `ConfigLayout`;\
mapkey(continued) ~ Activate `ribbon_options_dialog` `ConfigLayout.AddOpt`;\
mapkey(continued) ~ Input `add_opt` `InputOpt` `new_parameter_ui`;\
mapkey(continued) ~ Update `add_opt` `InputOpt` `new_parameter_ui`;\
mapkey(continued) ~ Input `add_opt` `EditPanel` `no`;~ Update `add_opt` `EditPanel` `no`;\
mapkey(continued) ~ Activate `add_opt` `AddOpt`;\
mapkey(continued) ~ Activate `ribbon_options_dialog` `OkPshBtn`;\
mapkey(continued) ~ Activate `UITools Msg Dialog Future` `no`;\
mapkey(continued) ~ Command `ProCmdMmParams`;~ Command `ProCmdDwgParameters` ;#PART;\
mapkey(continued) #CREATE;#STRING;CATEGORY;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;COATING;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_REVISION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DATE_CREATED;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESCRIPTION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESIGNER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MACHINE_LETTER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_SIZE;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;STATION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;SUB_CATEGORY;<EMPTY_STR>;\
mapkey(continued) #DESIGNATE;#PARAMETERS;#CATEGORY;#COATING;#CUSTOMER_NAME;#CUSTOMER_NUMBER;\
mapkey(continued) #CUSTOMER_REVISION;#DATE_CREATED;#DESCRIPTION;#DESIGNER_NAME;\
mapkey(continued) #DOC_CNTL_STATUS;#EXPORT_DATA;#MACHINE_LETTER;#MATERIAL_NAME;\
mapkey(continued) #MATERIAL_SIZE;#MFG_NAME;#MFG_NUMBER;#STATION;#SUB_CATEGORY;#DONE SEL;\
mapkey(continued) ~ Command `ProCmdMmParams`;~ Command `ProCmdDwgParameters` ;#ASSEMBLY;\
mapkey(continued) #CREATE;#STRING;CATEGORY;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;COATING;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_REVISION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DATE_CREATED;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESCRIPTION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESIGNER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MACHINE_LETTER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_SIZE;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;STATION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;SUB_CATEGORY;<EMPTY_STR>;\
mapkey(continued) #DESIGNATE;#PARAMETERS;#CATEGORY;#COATING;#CUSTOMER_NAME;#CUSTOMER_NUMBER;\
mapkey(continued) #CUSTOMER_REVISION;#DATE_CREATED;#DESCRIPTION;#DESIGNER_NAME;\
mapkey(continued) #DOC_CNTL_STATUS;#EXPORT_DATA;#MACHINE_LETTER;#MATERIAL_NAME;\
mapkey(continued) #MATERIAL_SIZE;#MFG_NAME;#MFG_NUMBER;#STATION;#SUB_CATEGORY;#DONE SEL;\
mapkey(continued) ~ Command `ProCmdMmParams`;~ Command `ProCmdDwgParameters` ;#DRAWING;\
mapkey(continued) #CREATE;#STRING;CATEGORY;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;COATING;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_REVISION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DATE_CREATED;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESCRIPTION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESIGNER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MACHINE_LETTER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_SIZE;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;STATION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;SUB_CATEGORY;<EMPTY_STR>;\
mapkey(continued) #DESIGNATE;#PARAMETERS;#CATEGORY;#COATING;#CUSTOMER_NAME;#CUSTOMER_NUMBER;\
mapkey(continued) #CUSTOMER_REVISION;#DATE_CREATED;#DESCRIPTION;#DESIGNER_NAME;\
mapkey(continued) #DOC_CNTL_STATUS;#EXPORT_DATA;#MACHINE_LETTER;#MATERIAL_NAME;\
mapkey(continued) #MATERIAL_SIZE;#MFG_NAME;#MFG_NUMBER;#STATION;#SUB_CATEGORY;#DONE SEL;\
mapkey(continued) #DONE/RETURN;#DONE/RETURN; ~ Command `ProCmdRibbonOptionsDlg` ;\
mapkey(continued) ~ Select `ribbon_options_dialog` `PageSwitcherPageList` 1 `ConfigLayout`;\
mapkey(continued) ~ Activate `ribbon_options_dialog` `ConfigLayout.AddOpt`;\
mapkey(continued) ~ Input `add_opt` `InputOpt` `new_parameter_ui`;\
mapkey(continued) ~ Update `add_opt` `InputOpt` `new_parameter_ui`;\
mapkey(continued) ~ Input `add_opt` `EditPanel` `yes`;~ Update `add_opt` `EditPanel` `yes`;\
mapkey(continued) ~ Activate `add_opt` `AddOpt`;\
mapkey(continued) ~ Activate `ribbon_options_dialog` `OkPshBtn`;\
mapkey(continued) ~ Activate `UITools Msg Dialog Future` `no`;
Model Check? But it sounds like you want a bit more user-level control.
Or - CREOSON... (FREE if you want to code a bit)
Nitro-BOM does most of what you want it sounds like (commercial option). Here are some video links:
Nitro-BOM is probably the most user friendly approach - and you can learn it in under 30-min. It is sold on an Annual Subscription for a Globally Floating License... So you can easily share with multiple users.
Dave
Dave,
I have downloaded CreoSon but do not have time to experiment with it at this time.
Are there any tutorials on how to program with CreoSon?
Ben
The Help Doc included in it is pretty awesome... The real question is what language do you want to use.
CREOPYSON is VERY POPULAR for this... It is Python based. I would recommend looking at that if you are a Python person.
If you want another language - there is JavaScript library in the distribution also - so if you want to develop in the browser, you can use that - or Node.js ...
Alternatively - you can pick any modern programming / scripting language and as long as you can do HTTP POST requests you will be able to figure it out.
Since CREOSON is a JSON Transaction based approach... you are just passing structured text to CREOSON's server to execute in Creo.
The FUNCTIONS are a good place for examples. They are on-line -- same in the doc.
Dave
Here is some CREOSON (OpenSource Creo Automation) code using the JavaScript Library included in the latest distribution.
You can launch CREOSON, open the Help Doc and go to the Playground. After you get there - request a sessionId -- and replace the code an editor with this:
function massCreateParams(itemName) {
let paramObj = new creo.ParameterObj()
paramObj.designate = true; // force designation true
paramObj.file = "*"; // hit any files in session
paramObj.name = itemName; // name of parameter to create/set/clear
return paramObj.set();
}
let creosonUtilObj = new creo.CreosonUtils();
let namesArr = ["CATEGORY","COATING","CUSTOMER_NAME","CUSTOMER_NUMBER","CUSTOMER_REVISION","DATE_CREATED","DESCRIPTION","DESIGNER_NAME","MACHINE_LETTER","MATERIAL_NAME","MATERIAL_SIZE","MFG_NAME","MFG_NUMBER","STATION","SUB_CATEGORY"];
creosonUtilObj.loopItems(namesArr, massCreateParams)
.then(function () {
alert("Finished Batching!");
})
.catch((err) => {
alert('ERROR: '+err);
});
You only need to make sure list of parameter names you want to create is in the namesArr as in the above example. And every model in session will get each parameter name added as an empty value. (so be careful) 🙂
When finished an Alert will tell you it is done.
Have Fun!
Dave
@DavidBigelow wrote:
Here is some CREOSON (OpenSource Creo Automation) code using the JavaScript Library included in the latest distribution.
You can launch CREOSON, open the Help Doc and go to the Playground. After you get there - request a sessionId -- and replace the code an editor with this:
function massCreateParams(itemName) { let paramObj = new creo.ParameterObj() paramObj.designate = true; // force designation true paramObj.file = "*"; // hit any files in session paramObj.name = itemName; // name of parameter to create/set/clear return paramObj.set(); } let creosonUtilObj = new creo.CreosonUtils(); let namesArr = ["CATEGORY","COATING","CUSTOMER_NAME","CUSTOMER_NUMBER","CUSTOMER_REVISION","DATE_CREATED","DESCRIPTION","DESIGNER_NAME","MACHINE_LETTER","MATERIAL_NAME","MATERIAL_SIZE","MFG_NAME","MFG_NUMBER","STATION","SUB_CATEGORY"]; creosonUtilObj.loopItems(namesArr, massCreateParams) .then(function () { alert("Finished Batching!"); }) .catch((err) => { alert('ERROR: '+err); });
You only need to make sure list of parameter names you want to create is in the namesArr as in the above example. And every model in session will get each parameter name added as an empty value. (so be careful) 🙂
When finished an Alert will tell you it is done.
Have Fun!
Dave
Hi,
is there some CREOSON function which is able to set parameter value ?
Sure - if you look at CREOSON Functions -- and search for parameter : set you will find all the options (and a few examples).
Note ... wildcards are allowed for filename and parameter name... which is why the example is so clean vs opening every model and running a mapkey to update it. 50-models + 50 mapkeys ... easily 20-30 min of work to manually do vs just a few seconds with CREOSON.
Here an updated version of the function that allows for values to be set... note it expects itemName and itemValue as inputs to the function.
function massCreateParams(itemObj) {
let paramObj = new creo.ParameterObj()
paramObj.designate = true; // force designation true
paramObj.file = "*"; // hit any files in session
paramObj.name = itemObj.name; // name of parameter to create/set/clear
paramObj.value = itemObj.value; // <------- value to set
return paramObj.set();
}
There are many ways to set values - since we used an array of names to generate, we can change that to an array of parameter names and values and pass that in like so:
let namesArr = [
{name : "CATEGORY", value : "IN-HOUSE"},
{name : "COATING", value : "TBD"},
{name : "CUSTOMER_NAME", value : "ABC CO."},
...];
The code will now create default values per parameter name in the object array vs just empty designated parameters in the previous post's example.
Hope that makes sense
Dave
If you record a mapkey using the old parameter ui (hidden config), it can create any missing parameters, set their values, and designate them. A mapkey built with this old interface will not overwrite any existing parameter values and won't stop running if some parameters already exist. The ability to switch to this old parameter ui is going away in the near future, so I've been pushing on PTC to provide some way to continue this process with the new parameter UI. No luck so far. (See CS322155)
Below is an example mapkey. This will create a bunch of parameters, set their values (in this case blank), and designate them. Run it on a test part to see what it's doing. Let me know if you need a further explanation of anything.
mapkey tucp @MAPKEY_NAMECreate Parameters;@MAPKEY_LABELCreate Parameters;\
mapkey(continued) ~ Command `ProCmdRibbonOptionsDlg` ;\
mapkey(continued) ~ Select `ribbon_options_dialog` `PageSwitcherPageList` 1 `ConfigLayout`;\
mapkey(continued) ~ Activate `ribbon_options_dialog` `ConfigLayout.AddOpt`;\
mapkey(continued) ~ Input `add_opt` `InputOpt` `new_parameter_ui`;\
mapkey(continued) ~ Update `add_opt` `InputOpt` `new_parameter_ui`;\
mapkey(continued) ~ Input `add_opt` `EditPanel` `no`;~ Update `add_opt` `EditPanel` `no`;\
mapkey(continued) ~ Activate `add_opt` `AddOpt`;\
mapkey(continued) ~ Activate `ribbon_options_dialog` `OkPshBtn`;\
mapkey(continued) ~ Activate `UITools Msg Dialog Future` `no`;\
mapkey(continued) ~ Command `ProCmdMmParams`;~ Command `ProCmdDwgParameters` ;#PART;\
mapkey(continued) #CREATE;#STRING;CATEGORY;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;COATING;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_REVISION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DATE_CREATED;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESCRIPTION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESIGNER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MACHINE_LETTER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_SIZE;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;STATION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;SUB_CATEGORY;<EMPTY_STR>;\
mapkey(continued) #DESIGNATE;#PARAMETERS;#CATEGORY;#COATING;#CUSTOMER_NAME;#CUSTOMER_NUMBER;\
mapkey(continued) #CUSTOMER_REVISION;#DATE_CREATED;#DESCRIPTION;#DESIGNER_NAME;\
mapkey(continued) #DOC_CNTL_STATUS;#EXPORT_DATA;#MACHINE_LETTER;#MATERIAL_NAME;\
mapkey(continued) #MATERIAL_SIZE;#MFG_NAME;#MFG_NUMBER;#STATION;#SUB_CATEGORY;#DONE SEL;\
mapkey(continued) ~ Command `ProCmdMmParams`;~ Command `ProCmdDwgParameters` ;#ASSEMBLY;\
mapkey(continued) #CREATE;#STRING;CATEGORY;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;COATING;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_REVISION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DATE_CREATED;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESCRIPTION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESIGNER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MACHINE_LETTER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_SIZE;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;STATION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;SUB_CATEGORY;<EMPTY_STR>;\
mapkey(continued) #DESIGNATE;#PARAMETERS;#CATEGORY;#COATING;#CUSTOMER_NAME;#CUSTOMER_NUMBER;\
mapkey(continued) #CUSTOMER_REVISION;#DATE_CREATED;#DESCRIPTION;#DESIGNER_NAME;\
mapkey(continued) #DOC_CNTL_STATUS;#EXPORT_DATA;#MACHINE_LETTER;#MATERIAL_NAME;\
mapkey(continued) #MATERIAL_SIZE;#MFG_NAME;#MFG_NUMBER;#STATION;#SUB_CATEGORY;#DONE SEL;\
mapkey(continued) ~ Command `ProCmdMmParams`;~ Command `ProCmdDwgParameters` ;#DRAWING;\
mapkey(continued) #CREATE;#STRING;CATEGORY;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;COATING;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;CUSTOMER_REVISION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DATE_CREATED;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESCRIPTION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;DESIGNER_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MACHINE_LETTER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MATERIAL_SIZE;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NAME;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;MFG_NUMBER;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;STATION;<EMPTY_STR>;\
mapkey(continued) #CREATE;#STRING;SUB_CATEGORY;<EMPTY_STR>;\
mapkey(continued) #DESIGNATE;#PARAMETERS;#CATEGORY;#COATING;#CUSTOMER_NAME;#CUSTOMER_NUMBER;\
mapkey(continued) #CUSTOMER_REVISION;#DATE_CREATED;#DESCRIPTION;#DESIGNER_NAME;\
mapkey(continued) #DOC_CNTL_STATUS;#EXPORT_DATA;#MACHINE_LETTER;#MATERIAL_NAME;\
mapkey(continued) #MATERIAL_SIZE;#MFG_NAME;#MFG_NUMBER;#STATION;#SUB_CATEGORY;#DONE SEL;\
mapkey(continued) #DONE/RETURN;#DONE/RETURN; ~ Command `ProCmdRibbonOptionsDlg` ;\
mapkey(continued) ~ Select `ribbon_options_dialog` `PageSwitcherPageList` 1 `ConfigLayout`;\
mapkey(continued) ~ Activate `ribbon_options_dialog` `ConfigLayout.AddOpt`;\
mapkey(continued) ~ Input `add_opt` `InputOpt` `new_parameter_ui`;\
mapkey(continued) ~ Update `add_opt` `InputOpt` `new_parameter_ui`;\
mapkey(continued) ~ Input `add_opt` `EditPanel` `yes`;~ Update `add_opt` `EditPanel` `yes`;\
mapkey(continued) ~ Activate `add_opt` `AddOpt`;\
mapkey(continued) ~ Activate `ribbon_options_dialog` `OkPshBtn`;\
mapkey(continued) ~ Activate `UITools Msg Dialog Future` `no`;
Tom,
Thank you, that works exactly like we need. I just changed the parameters to the 7 we need in each section and it works perfectly. Storing this in a separate file for another day, if needed.
Ben
Tom,
I am trying to add populated parameters and it is not working.
For example:
mapkey(continued) #CREATE;#STRING;CAGECODE;34234;\
Is there some formatting for the string when added by a mapkey that is needed. I did try:
mapkey(continued) #CREATE;#STRING;CAGECODE;'34234';\
and it did not update, either.
The first syntax looks correct. I just manually changed the config option and then recorded this mapkey. Deleting the parameter and rerunning the mapkey does create the parameter with the correct value.
mapkey param_test @MAPKEY_LABELparam_test;~ Command `ProCmdMmParams` ;\
mapkey(continued) #CREATE;#STRING;CAGECODE;34234;#DONE/RETURN;#DONE/RETURN;
Kind of amazed that that original mapkey # syntax still works....
@DavidBigelow wrote:
Kind of amazed that that original mapkey # syntax still works....
Hi,
old mapkey syntax works because new_parameter_ui no (config.pro) forces Creo to use old user interface for parameter manipulation.
@DavidBigelow and @MartinHanak,
Don't forget, the ability to use this old interface is going away soon. This is why I desperately want the new UI to to support the same functionality the old one offers (when controlled via a mapkey).
@TomU wrote:
@DavidBigelow and @MartinHanak,
Don't forget, the ability to use this old interface is going away soon. This is why I desperately want the new UI to to support the same functionality the old one offers (when controlled via a mapkey).
Hi,
I hope that new_parameter_ui no (config.pro) will be available in Creo 7.0, too.
See https://www.ptc.com/en/support/article/CS260154 article.
Hi
I had a similar issue in Creo 7. We did an upgrade to our document and it also required many new parameters in drawings. New drawings run without any problems but when old drawings need new revision the drawing parameters need to be updated.
It is solved in a mapkey first importing parameter file and the mapkey continues to add the checkmarks in the designated fields. It is running very fine - until one of the parameters, in a few of the drawings, is created and designated.
So if some of you had a good idea to get around this, plaese let mee know.
This is why Mapkeys are good for quick-and-dirty one-direction actions that require NO LOGIC to deal with state changes.
in this situation... the Mapkey was more of a hack to the problem than an actual solution.
This is why CREOSON.... should be looked at... it is FREE and gives you the control you are looking to accomplish more generically ... vs recording, pruning and building a mapkey manually or with another script/program that can not provide any flow control.
With CREOSON ... you can actually put Logic into your automation ... check state and make decisions as a result.
I would go back and check the previous post on CREOSON to review or visit the web site to learn a bit more.
dave
Hey Ben!
The easy answer is.....hire some new Designers? LOL
You can actually copy parameters from one part to another. We have a TON of parameters here, it's actually absurd. And it's tricky, but you can copy User Defined parameters to another part. I've had a ton of trouble remoting in to work today, I'll try and post up tomorrow about it...if I can.
Hi Frank,
I had no say in the contractors being hired and they were left alone to work as the 1 senior person we had left at the end of last year, before the second contractor was hired. I was busy setting up Windchill systems so no babysitting from me!
Anyway, Tom's mapkey has resolved 90% of our issues with older parts. The final 10% is getting the Creo users to update their part files with the proper parameter values.
'Morning Ben! Yeah, I hear ya. We hired an Engineer (permanent) recently. Sharp kid, but I didn't really get a chance to show him how to use Windchill before we started working from home. Now he's trying to check things in and I'm trying to explain how we do things (attach STEP and PDF files, etc.) via e-mail. It's good practice for my potential new position that I applied for here. I'd be helping set policy for the Lab and be part of the Creo/Windchill "help desk".
Anyways, I'll try and post up how I was able to copy the parameters. It's a mite tricky and the steps have to be followed exactly, but it works. Good thing because I think I have to do it to a bunch of parts now... *facepalm* Glad Tom was able to help ya!