Community Tip - Have a PTC product question you need answered fast? Chances are someone has asked it before. Learn about the community search. X
Hello,
Is there some posibility to chnge color of a created part using a relation in start_part_solid.prt?
for example - if the PTC_COMMON_NAME_IS screw, then color of the part should be for ex. red....
Thanks in advance
T.
No, it's not possible. I don't know if it will ever be possible, even though it would be very useful. For example, if you use springs from a particular supplier, they tend to be color coded based on their type. It would be great to have them reflect that in the model when you use a specific one from a family table.
Oh, well.
so lets belive one day it will be possible
In terms of springs in family tables, a work around is to create as many quilts (copied from the geometry) as you need colours. Then include the quilts in the top level of the family table. (see image below) When you choose the strength of the spring then the colour changes in your assembly. (probably doesn't answer the original question but we find this useful).
Sometimes l use exactly same method as Steve Cooke and it works fine for me.
l think it depends on model complexity.
Don´t know better method than thise one.
I suppose you can use a offset feature of zero value to do that.
I tried and found out that it´s easier to do with offset from Flexible Modeling.
See if my video helps.
Jose
Okay, I tried next step, changing in relations and I think it can be done:
For this you need Pro/program and Relations.
For my example, I did it like this:
1. Created 3 parameters Yes/No type:
BLUE_RESUME
YELLOW_RESUME
GREEN_RESUME
And a Integer parameter:
COLOR
2.Created the following relations:
COLOR=0
/****************
BLUE_RESUME=NO
GREEN_RESUME=NO
YELLOW_RESUME=NO
/****************
IF COLOR==1
BLUE_RESUME=YES
GREEN_RESUME=NO
YELLOW_RESUME=NO
ENDIF
/****************
IF COLOR==2
BLUE_RESUME=NO
GREEN_RESUME=YES
YELLOW_RESUME=NO
ENDIF
/****************
IF COLOR==3
BLUE_RESUME=NO
GREEN_RESUME=NO
YELLOW_RESUME=YES
ENDIF
3. Enter the Program, search for the feature "BLUE" and change to:
IF BLUE_RESUME==YES
ADD FEATURE
INTERNAL FEATURE ID 1849
... .... ....
END ADD
END IF
Repeat for Yellow and Green.
It is also possible to use a family table, a much more simpler solution.
Jose
Great!
And is it possible to add a rule for ex.: if model_name=XXX then the color will be COLOR_1?
It will need some system in model naming.
Example:
Model name: part_01-red
Relation:
part_name=EXTRACT(REL_MODEL_NAME,1,SEARCH(EXTRACT(REL_MODEL_NAME,1,(\STRING_LENGTH(REL_MODEL_NAME))),"-")-1)
part_color=EXTRACT(REL_MODEL_NAME,(SEARCH(REL_MODEL_NAME,"-")+1),((\STRING_LENGTH(REL_MODEL_NAME))-(SEARCH(REL_MODEL_NAME,"-")+1)+1))
IMPORTANT: Use only 1 "-" in model name. This mark will divide part name into 2 parts.
Before "-" it´s parameter called part_name.
After "-" it´s parameter called part_color.
Relation:
IF part_color == red
.....
.....
....
ENDIF
Looks great! As soon as i have free time i will try it. Thanks a lot. T.
See attached file.
It´s Creo 2.0 M070 version. Hope you can open it.
l added some comments inside relations tab.
If it helps you, mark thise topic as answered.
Need regeneration after model name change.
Change name between 3 posibilities:
1. COLORED_CUBE-GREEN ---> green color
2. COLORED_CUBE-BLUE ---> blue color
3. COLORED_CUBE-XXXXX ---> part default color
Best regards
Milan Bonka
Hi Milan,
Thank you very much for files you sent me - it works fine and i got an idea how it works but i am not as good at programming to get those relations working for my purposes.
I would like to clarify a bit more what i need this relations for:
- i use creo to design welding fixtures. Those fixtures are made for several customers and each of these customers wants to have a different colour of the tool which is then indicated in the assembly drawing. The problem is that very often i just forget to fill in this in the drawing.
Based on that i got the idea to fill in this information automatically.
So there is an assembly with the fixture and welded part inside. The welded part has always a MODEL_NAME that starts with two letters jike "JD" or "MF" ,.... according to those letters i would like to assign information (for ex. for "JD" it would be "RAL_5018", "MF" RAL_1012,...). The idea is to assign a name of the particullar color in .dmt file to the assembly and mention in the drawing. Those relations would be in an assembly template.
Do you think it could work somehow?
I enclosed the example of my assembly template and appearance.dmt with all customer colours
I enclosed an example of assembly with appearance.dmt where are all colors starting with RAL
B.R.
Why would you want to do this? You can assign appearances to materials, and then specify the material. Then you also get material properties.
That would mean that the user would need to update the material everytime!!! LOL
So? You'd get proper material properties. As antonius mentioned, the appearance is a little buggy when using fam tables, but I think a second regen fixes that if I remember.
If you want to be lazy, you could simply wrote a relation to change the material. I.E. if TITLE1 == "SCREW" THEN ptc_material_name = steel
Not sure the syntax is 100% but you get the picture.
Creo appears to just take on a color and sticks to it like glue. I'd like to see it work in a short video if someone can make it work. It's a very wonky dialog only in the material appearance tab.
This appears to have been an issue for 3 years now beginning with WF5.
I don't suppose we can expect a fix any time soon since even Creo 3.0 is affected.
https://support.ptc.com/appserver/cs/view/solution.jsp?n=CS33983&source=minisearch
I wonder if the same problem exists with x-hatching style
According to the recommended workaround #2, if only one of the FT instances in in session, it works as intended.
Yeah, I remember trying it in WF4 and it being an issue. If I remember, ALL the instances changed to the last appearance placed in the assy, then you had to do another regen and they changed to what they should have been. That's what I seem to remember, it's been a while. I had this great idea to build our fasteners and o-rings etc. with appearances, so you could easily see if you had the wrong P/N installed if you needed, say, a stainless screw instead of a black oxide carbon steel, or a rubber o-ring vs a viton o-ring.... The bug put paid to that......
I don't know how PTC can ignore open issues such as this for so long and let them creep into new releases.
Someone needs to be hung! With the new appearance capabilities in Creo 3.0, this is embarrassing!
From a family table library standpoint, this "bug" defeats the entire purpose for having comprehensive libraries in family tables! A CORE FUNCTIONALITY!
Someone has got to be kidding as the 1st workaround form PTC is copying the surfaces. Come one; really!
Agreed! Shows their contempt for their customers. I have a friend who recently quit corporate life to start his own business. I halped train him in Pro/E, but he's starting his own business using.......Solidquirks. Surprised?
You can change materials in family tables but the appearance does not change. This appears to be a bug.
Mainly keep it simply!!!
Just some ideas:
What about BULK items? See ProE help for more informations...
What about restricted parameters? And restricted parameters tables? See ProE help...
How many different parts do you wanna create? Is it 10 or 100 000? Has it any sence to make so "coplicated" method?
I havent heard about bulk items yet - thanks for a suggestion.
I created one BULK item with two instances in family table. Now i would need to make following relations in assembly template:
- in case the assembly contains a part or subassembly with model name starting "JD_" then i need to assign a parameter "BARVA" (value RAL_5018) from the BULK into a table in asm drawing.
in case the assembly contains part or subassembly with model name starting "MF_" then i need to assign a parameter "BARVA" (value RAL_1012) from the BULK into a table in asm drawing.
All necessary information are here in this topic. Try it in your own...