Peggy,
Pro/e does not "type-cast" parameters in part/assembly mode. By that I mean, you can't set the value of a string parameter equal to the value contained in another type of parameter without doing some kind of conversion first. To convert an integer parameter, or the integer portion of a real parameter, you can use the ITOS - "Integer to String" function. To convert a real number to a string it's more complex. You will need to build a statement to handle the portion of the number before the decimal place and a second set of statements to deal with the portion after the decimal place. Now none of this conversion is necessary if you are combining these mixed type parameters in a note (drawing or part) or table cell (drawing).
To make your statement below work (integer portion only), do this:
BOM_DESCRIPTION_ASM=”.500-13UNC-2A+”+”X”+ ITOS(OVERALL_LENGTH)
or this:
LENGTH=ITOS(OVERALL_LENGTH)
SIZE=".500-13UNC-2A X " [need quotes]
And
BOM_DESCRIPTION_ASM = SIZE + LENGTH
Keep in mind that the ITOS function does not work properly on zero value parameters. It will return an empty string, not "0".
If you need to keep the decimal place, then use something like this:
W = "
R = "
W = ITOS(OVERALL_LENGTH)
IF FLOOR(OVERALL_LENGTH,3) > W
R = ITOS((FLOOR(OVERALL_LENGTH,3) - W) * 1000)
IF STRINGLENGTH(R) == 1
LENGTH = W + ".00" + R
ENDIF
IF STRINGLENGTH(R) == 2
LENGTH = W + ".0" + R
ENDIF
IF STRINGLENGTH(R) == 3
LENGTH = W + "." + R
ENDIF
ELSE
LENGTH = W + ".000"
ENDIF
Note - I am typing this in email and do not have Pro/e available in front of me right now to double check syntax.
Tom U.