- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hello,
I am trying to build a string based on tool.name inside a FOREACH LOOP that references a generic cutting data string.
However; I get an error in the example/ macro below when trying to populate the $SPEED and $FPR fields inside the loop.
------------------
I can populate with a standard string.
--------------------
REAL $SPEED = "0"
STRING $P20_SPEED = "200"
$SPEED = $P20_SPEED
PRINT $SPEED
--------------------------
RESULT:
-------------------------
PowerMill> 200
-------------------
-------------------
I can not get the following to work.
---------------------
REAL $SPEED = "0"
PRINT $SPEED
STRING $DC1500303_P20_SPEED= "200"
PRINT $DC1500303_P20_SPEED
STRING $toolname = substring("$tool.name",0,11)
PRINT $toolname
STRING $toolnamecomp = replace("$toolname","-","")
PRINT $toolnamecomp
STRING $P20_SPEED = "$"+ $toolnamecomp + "_P20_SPEED"
PRINT $P20_SPEED
$SPEED = $P20_SPEED
PRINT $SPEED
--------------------
RESULT IN POWERMILL
-------------------
0.0
200
DC150-03-03
DC1500303
$DC1500303_P20_SPEED
ERROR:
Expression " could not be evaluated within the context of parameter of 'SPEED'
$SPEED = $P20_SPEED
--------------------
Below is the macro I am trying to troubleshoot
---------------------
//PROMPT USER FOR MATERIAL CHOICE
STRING ARRAY material[] = {"SS-420", "H-13", "P-20"}
INT C = INPUT CHOICE $material "What material are you machining?"
REAL $SPEED = "0"
REAL $FPR = "0"
// BELOW ARE STRINGS WITH CUTTING DATA RELEVENT TO A 3mm DIAMETER DRILL
STRING $dc1500303_SS420_SPEED = "195"
STRING $dc1500303_SS420_FPR = "($tool.diameter*.015)+.0018"
STRING $dc1500303_H13_SPEED = "210"
STRING $dc1500303_H13_FPR = "($tool.diameter*.009)+.0018"
STRING $dc1500303_P20_SPEED = "250"
STRING $dc1500303_P20_FPR = "($tool.diameter*.02)+.0022"
STRING $dc1500503_SS420_SPEED = "193"
STRING $dc1500503_SS420_FPR = "($tool.diameter*.014)+.0016"
STRING $dc1500503_H13_SPEED = "200"
STRING $dc1500503_H13_FPR = "($tool.diameter*.0085)+.0017"
STRING $dc1500503_P20_SPEED = "242"
STRING $dc1500503_P20_FPR = "($tool.diameter*.015)+.0019"
STRING $dc1500803_SS420_SPEED = "195"
STRING $dc1500803_SS420_FPR = "($tool.diameter*.013)+.0015"
STRING $dc1500803_H13_SPEED = "205"
STRING $dc1500803_H13_FPR = "($tool.diameter*.009)+.0017"
STRING $dc1500803_P20_SPEED = "240"
STRING $dc1500803_P20_FPR = "($tool.diameter*.015)+.0019"
STRING $dc1501203_SS420_SPEED = "180"
STRING $dc1501203_SS420_FPR = "($tool.diameter*.012)+.0014"
STRING $dc1501203_H13_SPEED = "195"
STRING $dc1501203_H13_FPR = "($tool.diameter*.007)+.0017"
STRING $dc1501203_P20_SPEED = "235"
STRING $dc1501203_P20_FPR = "($tool.diameter*.01)+.0018"
// LOOP THROUGH FOLDER AND POPULATE CUTTING DATA BASED ON USER SELECTION
FOREACH tl IN FOLDER('Tool\Drills\Solid Carbide (00.0000-00.2362in / 00.000-06.000mm)') {
ACTIVATE TOOL $tl
//TOOL NAMES HAVE A "-" IN THEM WHICH PM DOESN'T SEEM TO LIKE SO STRINGS BELOW STRIP THIS
// OUT OF THE TOOL NAME
STRING $toolname = substring("$tool.name",0,11)
STRING $toolnamecomp = replace("$toolname","-","")
IF $C==0 {
//Set the cutting data for SS-420
$SPEED ="$" + "$toolnamecomp" +"_SS420_SPEED"
$FPR = "$" + "$toolnamecomp" + "_SS420_FPR"
//THIS NAVIGATES TO APPROPRIATE FIELDS TO BE POPULATED
EDIT TOOL FEEDSPEED SELECT 0 4
EDIT TOOL $tl QUIT FORM CUTDATAEDITOR
EDIT TOOL $tl SURFACESPEED $SPEED
EDIT TOOL $tl FEEDPERTOOTH $FPR
} ELSEIF $C==1 {
//Set the cutting data for H-13
$SPEED ="$" + "$toolnamecomp" +"_H13_SPEED"
$FPR = "$" + "$toolnamecomp" + "_H13_FPR"
//THIS NAVIGATES TO APPROPRIATE FIELDS TO BE POPULATED
EDIT TOOL FEEDSPEED SELECT 0 4
EDIT TOOL $tl QUIT FORM CUTDATAEDITOR
EDIT TOOL $tl SURFACESPEED $SPEED
EDIT TOOL $tl FEEDPERTOOTH $FPR
} ELSEIF $C==2 {
//Set the cutting data for P-20
$SPEED ="$" + "$toolnamecomp" +"_P20_SPEED"
$FPR = "$" + "$toolnamecomp" + "_P20_FPR"
//THIS NAVIGATES TO APPROPRIATE FIELDS TO BE POPULATED
EDIT TOOL FEEDSPEED SELECT 0 4
EDIT TOOL $tl QUIT FORM CUTDATAEDITOR
EDIT TOOL $tl SURFACESPEED $SPEED
EDIT TOOL $tl FEEDPERTOOTH $FPR
}
DEACTIVATE TOOL
RESET LOCALVARS
GRAPHICS UNLOCK
DIALOGS MESSAGE ON
Solved! Go to Solution.