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 some problems with the textures and I ask you for help.
I would like to get a color that loads me a certain texture with "Flat" mapping and XY scale with a value of 4, but the program only saves the assignment to the texture file in the color but not the mapping or the scale values ...
This is the result that the program offers me by recalling the color I created:
I would like to obtain this result by pressing the color I created:
I made a few attempts:
1 - I tried to create a macro that sets the color and then changes its appearance, but in trying to change the appearance the program prompts me to reselect the model and that's something I would like to avoid ....
2- I tried to study the lines contained in the .dmt file. I found some interesting parameters but they don't work ....
Can anyone help me? Thank you.
P.S. Use creo 9.0.0.0
Solved! Go to Solution.
Hi,
unfortunately you cannot reselecting the model when you modify texture mapping.
If I were you I would use 2 mapkeys.
Step 1 ... select model node at the top of the model tree
Step 2 ... run x1 mapkey (name of my color is mh01, change it according your needs)
mapkey x1 ~ Select `main_dlg_cur` `View:ProCmdViewGallery`;\
mapkey(continued) ~ Select `main_dlg_cur` \
mapkey(continued) `ProCmdViewGallery_layoutph.palette_holder.myAppPalette.NamesList` 1 `mh01`;\
mapkey(continued) ~ Timer `UI Desktop` `UI Desktop` `Gallery_UI_Timer`;\
mapkey(continued) ~ Close `main_dlg_cur` `View:ProCmdViewGallery`;\
mapkey(continued) ~ Select `main_dlg_cur` `View:ProCmdViewGallery`;\
mapkey(continued) ~ RButtonArm `main_dlg_cur` \
mapkey(continued) `ProCmdViewGallery_layoutph.palette_holder.modelPalette.NamesList` `mh01`;\
mapkey(continued) ~ PopupOver `main_dlg_cur` \
mapkey(continued) `PM_ProCmdViewGallery_layoutph.palette_holder.modelPalette.NamesList` 1 \
mapkey(continued) `ProCmdViewGallery_layoutph.palette_holder.modelPalette.NamesList`;\
mapkey(continued) ~ Open `main_dlg_cur` \
mapkey(continued) `PM_ProCmdViewGallery_layoutph.palette_holder.modelPalette.NamesList`;\
mapkey(continued) ~ Close `main_dlg_cur` \
mapkey(continued) `PM_ProCmdViewGallery_layoutph.palette_holder.modelPalette.NamesList`;\
mapkey(continued) ~ Activate `main_dlg_cur` `ModelAppearanceEdit`;\
mapkey(continued) ~ Close `main_dlg_cur` `View:ProCmdViewGallery`;\
mapkey(continued) ~ Activate `pgl_appearance_manager` `model_palette_holder.btnSelectTool`;
Step 3 ... select model surface in graphic windows
Step 4 ... run x2 mapkey (change X, Y, rotate values according your needs)
mapkey x2 ~ Select `pgl_appearance_manager` `PropertiesDetailTab` 1 \
mapkey(continued) `TextureProperties`;\
mapkey(continued) ~ Open `pgl_appearance_manager` `TexturePlacement.ProjectionType`;\
mapkey(continued) ~ Close `pgl_appearance_manager` `TexturePlacement.ProjectionType`;\
mapkey(continued) ~ Select `pgl_appearance_manager` `TexturePlacement.ProjectionType` 1 \
mapkey(continued) `Planar`;~ Update `pgl_appearance_manager` `TexturePlacement.IWidth` `4`;\
mapkey(continued) ~ Activate `pgl_appearance_manager` `TexturePlacement.IWidth`;\
mapkey(continued) ~ FocusOut `pgl_appearance_manager` `TexturePlacement.IWidth`;\
mapkey(continued) ~ Update `pgl_appearance_manager` `TexturePlacement.IHeight` `4`;\
mapkey(continued) ~ Activate `pgl_appearance_manager` `TexturePlacement.IHeight`;\
mapkey(continued) ~ FocusOut `pgl_appearance_manager` `TexturePlacement.IHeight`;\
mapkey(continued) ~ Update `pgl_appearance_manager` `TexturePlacement.IRotate` `10`;\
mapkey(continued) ~ FocusOut `pgl_appearance_manager` `TexturePlacement.IRotate`;
You have defined some texture and you need to have it available for other uses. when searching the Help Center i have found this page: https://support.ptc.com/help/creo/creo_pma/r9.0/usascii/#page/fundamentals/fundamentals/To_Save_Textures.html that tells that the texture can be saved in the model thanks to an option.
To save it separately, basically you need to preview your texture and then RMB the preview itself, it will fire the Image Editor:
Where you can File > Save.
Also i don't recommend to leverage the dmt file rather use the UI.
Thanks for your answer,
what do you mean "i don't recommend to leverage the dmt file rather use the UI"?
How do you use the UI file to save colors?
Hi,
unfortunately you cannot reselecting the model when you modify texture mapping.
If I were you I would use 2 mapkeys.
Step 1 ... select model node at the top of the model tree
Step 2 ... run x1 mapkey (name of my color is mh01, change it according your needs)
mapkey x1 ~ Select `main_dlg_cur` `View:ProCmdViewGallery`;\
mapkey(continued) ~ Select `main_dlg_cur` \
mapkey(continued) `ProCmdViewGallery_layoutph.palette_holder.myAppPalette.NamesList` 1 `mh01`;\
mapkey(continued) ~ Timer `UI Desktop` `UI Desktop` `Gallery_UI_Timer`;\
mapkey(continued) ~ Close `main_dlg_cur` `View:ProCmdViewGallery`;\
mapkey(continued) ~ Select `main_dlg_cur` `View:ProCmdViewGallery`;\
mapkey(continued) ~ RButtonArm `main_dlg_cur` \
mapkey(continued) `ProCmdViewGallery_layoutph.palette_holder.modelPalette.NamesList` `mh01`;\
mapkey(continued) ~ PopupOver `main_dlg_cur` \
mapkey(continued) `PM_ProCmdViewGallery_layoutph.palette_holder.modelPalette.NamesList` 1 \
mapkey(continued) `ProCmdViewGallery_layoutph.palette_holder.modelPalette.NamesList`;\
mapkey(continued) ~ Open `main_dlg_cur` \
mapkey(continued) `PM_ProCmdViewGallery_layoutph.palette_holder.modelPalette.NamesList`;\
mapkey(continued) ~ Close `main_dlg_cur` \
mapkey(continued) `PM_ProCmdViewGallery_layoutph.palette_holder.modelPalette.NamesList`;\
mapkey(continued) ~ Activate `main_dlg_cur` `ModelAppearanceEdit`;\
mapkey(continued) ~ Close `main_dlg_cur` `View:ProCmdViewGallery`;\
mapkey(continued) ~ Activate `pgl_appearance_manager` `model_palette_holder.btnSelectTool`;
Step 3 ... select model surface in graphic windows
Step 4 ... run x2 mapkey (change X, Y, rotate values according your needs)
mapkey x2 ~ Select `pgl_appearance_manager` `PropertiesDetailTab` 1 \
mapkey(continued) `TextureProperties`;\
mapkey(continued) ~ Open `pgl_appearance_manager` `TexturePlacement.ProjectionType`;\
mapkey(continued) ~ Close `pgl_appearance_manager` `TexturePlacement.ProjectionType`;\
mapkey(continued) ~ Select `pgl_appearance_manager` `TexturePlacement.ProjectionType` 1 \
mapkey(continued) `Planar`;~ Update `pgl_appearance_manager` `TexturePlacement.IWidth` `4`;\
mapkey(continued) ~ Activate `pgl_appearance_manager` `TexturePlacement.IWidth`;\
mapkey(continued) ~ FocusOut `pgl_appearance_manager` `TexturePlacement.IWidth`;\
mapkey(continued) ~ Update `pgl_appearance_manager` `TexturePlacement.IHeight` `4`;\
mapkey(continued) ~ Activate `pgl_appearance_manager` `TexturePlacement.IHeight`;\
mapkey(continued) ~ FocusOut `pgl_appearance_manager` `TexturePlacement.IHeight`;\
mapkey(continued) ~ Update `pgl_appearance_manager` `TexturePlacement.IRotate` `10`;\
mapkey(continued) ~ FocusOut `pgl_appearance_manager` `TexturePlacement.IRotate`;
Thanks Martin for the answer but I wouldn't want to use two macros, thanks anyway.
@bmancini wrote:
Thanks Martin for the answer but I wouldn't want to use two macros, thanks anyway.
Hi,
I believe that "Step 3 ... select model surface in graphic windows" can be replaced by calling AutoIT script. Such script is able to place mouse cursor at specified location (eg. the middle of the Creo window) and click left mouse button. If this script is available then user is able to create single Creo mapkey with requested functionality.
As an exercise I created AutoIT script that performs following steps:
Please see uploaded video texture_mapping.mp4
Thanks Martin for your time and knowing, I'll try it.