Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X
Hi,
I have a mapkey which takes the current model and save it as igs,step and 3dpdf and puts it in c:\temp.
The problem is that these files needs to be moved to a spesfic folder, this folder name is the same as the workspace/winchill folder name and is located at : Z:Project/%PROJ_NO/Files
I tried to launch this OS script: start excel Z:\Dokumentstyring\Parameters.xlsm \e\%PROJ_NO, but it seems like i cant pass parameters from creo to the script, is that correct?
This thread is inactive and closed by the PTC Community Management Team. If you would like to provide a reply and re-open this thread, please notify the moderator and reference the thread. You may also use "Start a topic" button to ask a new question. Please be sure to include what version of the PTC product you are using so another community member knowledgeable about your version may be able to assist.
Solved! Go to Solution.
I solved it,I figured out I could launch several mapkeys :
mapkey _del @MAPKEY_LABELDelete Files;@SYSTEMc:\\Temp\\Creo\\delete.bat;
mapkey _start @MAPKEY_LABELStart Files;@SYSTEMc:\\Temp\\Creo\\start.bat;
mapkey <g @MAPKEY_LABELGenerate Files;%Delete Files;%Create Jpeg File;%Create Step File;%Create Iges file;%Create 3DPdf File;%Start Files;
You can pass variables. I am not exactly sure what you are doing, but I have passed variables like this before:
mapkey(continued) @SYSTEMZ:\\folder\\subfolder\\script.VBS variable ;\
Where "variable" is the variable that you are passing. Note that the "variable" in the mapkey is going to be static - that is to say it will not change. Mapkeys are not a programming language in that you can not place variables that change with in them. They are just a recording of what functions you call and what you type with in Creo. If you need something that is dynamic you will have to do some outside processing or use one of the APIs.
Well what i ment was that i want to pass model number, project number etc to my script. Pretty much like u said mapkey(continued) @SYSTEMZ:\\folder\\subfolder\\script.VBS variable
However the variable should be model name/number, so if i run my mapkey with part 1234.prt as active it will be @SYSTEMZ:\\folder\\subfolder\\script.VBS 1234
and if then 2345.prt is active it will be @SYSTEMZ:\\folder\\subfolder\\script.VBS 2345
In table in drawing mode/relations etc you use %PTC_MODELNUMBER but i am unable to get this to work in mapkey.
So basically what I want to do, what I now do manually outside creo is:
I have finished making a part, I then want to let our project leader know about this as well as our drawing expert(it also add it to the list of parts to be produced,etc..). So my nice excel script do all this, but i need to type in the filename manually, and i would like to avoid this step.
Kim,
see Gunnar Hansen in MCAD Central Opening drawing of active part
He uses a VBS script to walk through the Creo dialog, copies the filename to clipboard and pastes it into the dialog.
Comment sign in VBS is ' so comment all steps out and recall them one by one to see it working.
I think you could use this method.
Reinhard
More information here: Mapkey: Zeichnung öffnen vom Part (PTC Engineering Solutions/Pro ENGINEER) - Lösung vorhanden! - Foren auf CAD.de
(in German)
The only way to do what you are looking for is to do some post processing with an outside script or with one of the APIs (which are very criptic and requires higher level programming)
Another way to do what Reinhard is suggesting above is to dump the info you want to a text file and then post process that with VBA or other external processing lang. For instance if they were all pramaters, you could export all of your parameters to a text file. Another way is to create a new blank page in the drawing and then save that as a text file and post process that for the information I want.
You may also want to examine using mapkeys to export the model data/information before running your script, and have your script read the information from the file(s) instead of trying to place a variable on the script line.
For example, you can export the model tree to a .txt file via a mapkey, and have your VBS script read the model file name from the tree.txt file. You can also export the parameters, relations, etc. to various file types (.csv, .txt, etc.) and have your script get information from those files.
You may want to look at AutoIt for automated interaction with Creo dialogs (and Windows dialogs in general). https://www.autoitscript.com/site/
Regards,
Kim,
if you tell me from where do you get %PROJ_NO (this means workspace/winchill folder name) then I can prepare AutoHotkey script for you.
Martin Hanak
Hi,
We store the information in parameters in the model. I started to look autohotkey, seems promissing:)
Thanks heaps
I solved it,I figured out I could launch several mapkeys :
mapkey _del @MAPKEY_LABELDelete Files;@SYSTEMc:\\Temp\\Creo\\delete.bat;
mapkey _start @MAPKEY_LABELStart Files;@SYSTEMc:\\Temp\\Creo\\start.bat;
mapkey <g @MAPKEY_LABELGenerate Files;%Delete Files;%Create Jpeg File;%Create Step File;%Create Iges file;%Create 3DPdf File;%Start Files;
Don't forget to mark your answer as correct for those who may search on this topic.