cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community email notifications are disrupted. While we are working to resolve, please check on your favorite boards regularly to keep up with your conversations and new topics.

how to write customized parameter

ng-2
5-Regular Member

how to write customized parameter

Hi everyone

                         If i want to write a relation in a customized way in creo 3.0 then is it possible, suppose i have a parameter named Model_name = 1238zx-0128p0000 now i want to create another parameter (say DRG_NAME ) by using this model_name parameter but my new parameter should be DRG_NAME=1238ZX-0128P , i want to remove the last four digit of my Model_name parameter and want to store it in a new parameter as DRG_NAME.

1 ACCEPTED SOLUTION

Accepted Solutions

I provide some examples of bom relations I use that may help in understanding your needs.

this uses the functions James62 recommends for you to study.

bom_qty=rpt_qty

bom_name=asm_mbr_name

bom_nomen=""

/*ASSIGN CHOSEN NOMENCLATURE PARAMETERS

/*  COPY AND PASTE THIS SECTION.

/*  THEN CHANGE CHARACTER LENGTH

/*  AND NAME_CHECK ACCORDINGLY

name_check=EXTRACT(bom_name,1,7)

IF name_check=="MS16555"

bom_nomen="PIN, STRAIGHT, HEADLESS"

ENDIF

IF name_check=="MS20995"

bom_qty="AR"

ENDIF

/*SPECIAL CASES

/*ASSIGN REMAINING NOMENCLATURE PARAMETERS

IF bom_nomen==""

bom_nomen=asm_mbr_nomenclature

ENDIF

/* REMEMBER TO CHANGE NOMENCLATURE / DESCRIPTION TO

/* rpt.rel.bom_nomen

/*****REPLACE OR REMOVE UNDERSCORE*****

/* ASSIGN THE MODEL NAME TO A PARAMETER

old_name = asm_mbr_name

/* ASSIGN THE LENGTH OF THE STRING TO A PARAMETER

len = STRING_LENGTH(OLD_NAME)

/* SEARCH FOR THE FIRST UNDERSCORE AND ASSIGN ITS POSITION TO PARAMETER

pos = SEARCH(OLD_NAME, '_')

/* SEARCH() RETURNS ZERO IF NOTHING FOUND SO...

IF pos > 0

  /* EXTRACT THE ORIGINAL NAME UP TO THE UNDERSCORE

  bom_name = EXTRACT(old_name, 1, POS-1)

  /* EXTRACT THE REMAINING STRING

  rem = EXTRACT(old_name, pos+1, len-pos)

  /* ADD THE DECIMAL POINT AND THE REMAINING STRING

  /*bom_name = bom_name + '.' + rem

ENDIF

/* SINCE WE CANNOT WRITE ANY LOOP STATEMENTS

/* REPEAT THE CODE BELOW FOR THE MAX NUMBER

/* OF UNDERSCORES AS IS NECESSARY.

/* THE IF STATEMENT PREVENTS UNECESSARY

/* NUMBER CRUNCHING

/* EX: ABC_DEF_GHI_JKL HAS 3 UNDERSCORES

/* THE SECTION BELOW NEEDS TO EXIST TWICE

old_name = bom_name

pos = SEARCH(old_name, '_')

IF pos > 0

  bom_name = EXTRACT(old_name, 1, pos-1)

  rem = EXTRACT(old_name, pos+1, len-pos)

  bom_name = bom_name + '.' + rem

ENDIF

/* REMEMBER TO CHANGE THE PART NUMBER TO

/* rpt.rel.bom_name

/* renaming a part

/*bom_name=asm_mbr_name

View solution in original post

4 REPLIES 4
James62
10-Marble
(To:ng-2)

hi,

Have a look at the following 4 functions in help files

rel_model_name()

string_length()

search()

extract()

I provide some examples of bom relations I use that may help in understanding your needs.

this uses the functions James62 recommends for you to study.

bom_qty=rpt_qty

bom_name=asm_mbr_name

bom_nomen=""

/*ASSIGN CHOSEN NOMENCLATURE PARAMETERS

/*  COPY AND PASTE THIS SECTION.

/*  THEN CHANGE CHARACTER LENGTH

/*  AND NAME_CHECK ACCORDINGLY

name_check=EXTRACT(bom_name,1,7)

IF name_check=="MS16555"

bom_nomen="PIN, STRAIGHT, HEADLESS"

ENDIF

IF name_check=="MS20995"

bom_qty="AR"

ENDIF

/*SPECIAL CASES

/*ASSIGN REMAINING NOMENCLATURE PARAMETERS

IF bom_nomen==""

bom_nomen=asm_mbr_nomenclature

ENDIF

/* REMEMBER TO CHANGE NOMENCLATURE / DESCRIPTION TO

/* rpt.rel.bom_nomen

/*****REPLACE OR REMOVE UNDERSCORE*****

/* ASSIGN THE MODEL NAME TO A PARAMETER

old_name = asm_mbr_name

/* ASSIGN THE LENGTH OF THE STRING TO A PARAMETER

len = STRING_LENGTH(OLD_NAME)

/* SEARCH FOR THE FIRST UNDERSCORE AND ASSIGN ITS POSITION TO PARAMETER

pos = SEARCH(OLD_NAME, '_')

/* SEARCH() RETURNS ZERO IF NOTHING FOUND SO...

IF pos > 0

  /* EXTRACT THE ORIGINAL NAME UP TO THE UNDERSCORE

  bom_name = EXTRACT(old_name, 1, POS-1)

  /* EXTRACT THE REMAINING STRING

  rem = EXTRACT(old_name, pos+1, len-pos)

  /* ADD THE DECIMAL POINT AND THE REMAINING STRING

  /*bom_name = bom_name + '.' + rem

ENDIF

/* SINCE WE CANNOT WRITE ANY LOOP STATEMENTS

/* REPEAT THE CODE BELOW FOR THE MAX NUMBER

/* OF UNDERSCORES AS IS NECESSARY.

/* THE IF STATEMENT PREVENTS UNECESSARY

/* NUMBER CRUNCHING

/* EX: ABC_DEF_GHI_JKL HAS 3 UNDERSCORES

/* THE SECTION BELOW NEEDS TO EXIST TWICE

old_name = bom_name

pos = SEARCH(old_name, '_')

IF pos > 0

  bom_name = EXTRACT(old_name, 1, pos-1)

  rem = EXTRACT(old_name, pos+1, len-pos)

  bom_name = bom_name + '.' + rem

ENDIF

/* REMEMBER TO CHANGE THE PART NUMBER TO

/* rpt.rel.bom_name

/* renaming a part

/*bom_name=asm_mbr_name

ng-2
5-Regular Member
(To:RonSt.Pierre)

hi Ron St.Pierre

                              Thank you very much i got my solution by going through the way you suggested.

You're welcome.  Glad it helped.

Announcements
Business Continuity with Creo: Learn more about it here.

Top Tags