Community Tip - Stay updated on what is happening on the PTC Community by subscribing to PTC Community Announcements. X
Hi everyone,
I need your help to replace a string content with the help of relations.
Ex. If the file name is "Bracket_Housing" then i need the description to be "Bracket Housing".
I use description=rel_model_name() in relation but the output in descriotion with "_" symbol is odd.
My component description is always the file name but without the "_".
I want to eleminate the "_" in the description.
Solved! Go to Solution.
Hi,
you can use simply relation
/*****************************************************************************************************************************
POSITION=Search(FILE_NAME, "_")
LENGTH=String_length(FILE_NAME)
NAME=extract(FILE_NAME,1,POSITION-1)+" "+extract(FILE_NAME,POSITION+1,LENGTH-POSITION)
/*****************************************************************************************************************************
So if you define in a FILE_NAME parameter "MY_PART" as a value - you will receive "MY PART" as a value of NAME parameter.
problem begins when your FILE_NAMA contains more than one "_", because Creo relations don't use loop . In that case you have to write relations that will check is there are more "_".
In below example, I assume that FILE_NAME=FIRST_SECOND_THIRD_DESCRIPTION (3x"_")
EXAMPLE:
/*****************************************************************************************************************************
if Search(FILE_NAME, "_")!=0
NAME=extract(FILE_NAME,1,Search(FILE_NAME, "_")-1)+" "+extract(FILE_NAME,Search(FILE_NAME, "_")+1,String_length(FILE_NAME)-Search(FILE_NAME, "_"))
if Search(NAME, "_")!=0
NAME=extract(NAME,1,Search(NAME, "_")-1)+" "+extract(NAME,Search(NAME, "_")+1,String_length(NAME)-Search(NAME, "_"))
if Search(NAME, "_")!=0
NAME=extract(NAME,1,Search(NAME, "_")-1)+" "+extract(NAME,Search(NAME, "_")+1,String_length(NAME)-Search(NAME, "_"))
endif
endif
endif
/*****************************************************************************************************************************
If value of your FILE_NAME parameter contains more than 3 "_" - add additional line that will replace "_" to " "
/****************************************************************************************************************************
if Search(NAME, "_")!=0
NAME=extract(NAME,1,Search(NAME, "_")-1)+" "+extract(NAME,Search(NAME, "_")+1,String_length(NAME)-Search(NAME, "_"))
endif
/*****************************************************************************************************************************
regards
gucio
Hi,
you can use simply relation
/*****************************************************************************************************************************
POSITION=Search(FILE_NAME, "_")
LENGTH=String_length(FILE_NAME)
NAME=extract(FILE_NAME,1,POSITION-1)+" "+extract(FILE_NAME,POSITION+1,LENGTH-POSITION)
/*****************************************************************************************************************************
So if you define in a FILE_NAME parameter "MY_PART" as a value - you will receive "MY PART" as a value of NAME parameter.
problem begins when your FILE_NAMA contains more than one "_", because Creo relations don't use loop . In that case you have to write relations that will check is there are more "_".
In below example, I assume that FILE_NAME=FIRST_SECOND_THIRD_DESCRIPTION (3x"_")
EXAMPLE:
/*****************************************************************************************************************************
if Search(FILE_NAME, "_")!=0
NAME=extract(FILE_NAME,1,Search(FILE_NAME, "_")-1)+" "+extract(FILE_NAME,Search(FILE_NAME, "_")+1,String_length(FILE_NAME)-Search(FILE_NAME, "_"))
if Search(NAME, "_")!=0
NAME=extract(NAME,1,Search(NAME, "_")-1)+" "+extract(NAME,Search(NAME, "_")+1,String_length(NAME)-Search(NAME, "_"))
if Search(NAME, "_")!=0
NAME=extract(NAME,1,Search(NAME, "_")-1)+" "+extract(NAME,Search(NAME, "_")+1,String_length(NAME)-Search(NAME, "_"))
endif
endif
endif
/*****************************************************************************************************************************
If value of your FILE_NAME parameter contains more than 3 "_" - add additional line that will replace "_" to " "
/****************************************************************************************************************************
if Search(NAME, "_")!=0
NAME=extract(NAME,1,Search(NAME, "_")-1)+" "+extract(NAME,Search(NAME, "_")+1,String_length(NAME)-Search(NAME, "_"))
endif
/*****************************************************************************************************************************
regards
gucio
thanks .
but what does
if search(Name,"_")!=0
signify
Becaues FILE_NAME is immutable, NAME parameter must be created. This relation check if in NAME parameter character "_" occurs. if YES (!=0) rest of relation is executed
regards
gucio