I use this one.
It sequences the programme number, name it based on the type of tool, diameter used and inserts any folder name in there to. It has a section to help tidy up messy names in the tool library too.
// string $wpName = ''
// $wpName = entity('NCProgram','').filename
// REAL diam = entity('boundary';name).Tool.Diameter
REAL TOOLDIAMETERNUM = 0
STRING TOOLDIAMETER = ""
INT STARTPROGRAMME = 0
STRING NEWNAME = ""
STRING FIRSTPROGNAME = ""
STRING TOOLTYPE = ""
STRING TOOLNAME = ""
STRING PROJECTNAME = ""
INT PREFIX = 0
STRING PROGNUMBER = ""
STRING OPFOLDER = ""
STRING PROJFOLDER = ""
INT FOLDEROP = 0
INT PROGLENGTH = 0
INT NAMESCHANGED = 0
INT UPDATEALL = 0
REAL TEST = 0
$PREFIX = INPUT "Enter the first programme number. Three digits minimum please."
$UPDATEALL = INPUT "Update ALL, 1 = YES"
$OPFOLDER = INPUT "Update by folder?, 0 = NO"
if ($OPFOLDER) == "0" {
$OPFOLDER = ""
}
if ($ORFOLDER) == "" {
$PROJFOLDER = 'NCProgram'
$FOLDEROP = 0
} ELSE {
$PROJFOLDER = 'NCProgram' + "\" + $OPFOLDER
$FOLDEROP = 1
}
//CORRECT THE FIRST PROGRAMMES NUMBER
$PREFIX = $PREFIX - 1
FOREACH ent IN folder($PROJFOLDER) {
//INDEX THE PROGRAMME
$STARTPROGRAMME = $STARTPROGRAMME +1
$PROJECTNAME = PROJECT.NAME
//BUILD THE PROGRAM NUMBER
$PROGNUMBER = $PREFIX + $STARTPROGRAMME
//GET FIRST TOOL PATH OF NC PROGRAM
ACTIVATE NCProgram $ent.Name
$FIRSTPROGNAME =ent.PARTNAME
//ACTIVATE TOOLPATH TO GET TOOL DIAMETER
ACTIVATE TOOLPATH $FIRSTPROGNAME
$TOOLDIAMETERNUM = TOOLPATH.TOOL.DIAMETER
$TOOLDIAMETERNUM = ROUND($TOOLDIAMETERNUM,2)
$TOOLDIAMETER = $TOOLDIAMETERNUM
$TOOLDIAMETER = REPLACE($TOOLDIAMETER, ".", "-")
//GET TOOL NAME AND CONVERT TO TOOLTYPE
$TOOLNAME = TOOLPATH.TOOL.NAME
IF position($TOOLNAME, "BNS") >= 0 {
$TOOLNAME = "BNS"
}
IF position($TOOLNAME, "BALLNOSED") >= 0 {
$TOOLNAME = "BNS"
}
IF position($TOOLNAME, "BULL") >= 0 {
$TOOLNAME = "BULL"
}
IF position($TOOLNAME, "CBORE") >= 0 {
$TOOLNAME = "CBORE"
}
IF position($TOOLNAME, "CHF") >= 0 {
$TOOLNAME = "CHF"
}
IF position($TOOLNAME, "CHAM") >= 0 {
$TOOLNAME = "CHF"
}
IF position($TOOLNAME, "DRILL") >= 0 {
$TOOLNAME = "DRILL"
}
IF position($TOOLNAME, "END") >= 0 {
$TOOLNAME = "END"
}
IF position($TOOLNAME, "ENDMILL") >= 0 {
$TOOLNAME = "END"
}
IF position($TOOLNAME, "ENGRAVE") >= 0 {
$TOOLNAME = "ENGRAVE"
}
IF position($TOOLNAME, "FORM") >= 0 {
$TOOLNAME = "FORM"
}
IF position($TOOLNAME, "GRANLUND") >= 0 {
$TOOLNAME = "GRANLUND"
}
IF position($TOOLNAME, "HIGHFEED") >= 0 {
$TOOLNAME = "HIGHFEED"
}
IF position($TOOLNAME, "REAM") >= 0 {
$TOOLNAME = "REAM"
}
IF position($TOOLNAME, "SPOTTER") >= 0 {
$TOOLNAME = "SPOTTER"
}
IF position($TOOLNAME, "TAPER") >= 0 {
$TOOLNAME = "TAPER"
}
IF position($TOOLNAME, "THREADMILL") >= 0 {
$TOOLNAME = "THREADMILL"
}
IF position($TOOLNAME, "TIPDISC") >= 0 {
$TOOLNAME = "TIPDISC"
}
IF position($TOOLNAME, "UDRILL") >= 0 {
$TOOLNAME = "UDRILL"
}
//BUILD THE NAME IF UPDATE ALL IS 1
IF $UPDATEALL == 1 {
$OPFOLDER = REPLACE($OPFOLDER, "\", "-")
$NEWNAME = TRIM("" + PROJECT.NAME + " " + $OPFOLDER + " " + $PROGNUMBER + " " + $TOOLDIAMETER +"MM" + " " + $TOOLNAME)
$NAMESCHANGED = $NAMESCHANGED + 1
PRINT "UPDATE ALL"
} ELSE {
//BUILD THE NAME IF PROJECT NAME IS NOT IN THE SAME
IF position($ent.Name, '$PROJECTNAME') < 0 {
$OPFOLDER = REPLACE($OPFOLDER, "\", "-")
$NEWNAME = TRIM("" + PROJECT.NAME + " " + $OPFOLDER + " " + $PROGNUMBER + " " + $TOOLDIAMETER +"MM" + " " + $TOOLNAME)
$NAMESCHANGED = $NAMESCHANGED + 1
}
}
//RENAME THE NC PROGRAM
RENAME NCProgram $ent.Name $NEWNAME
//TIDY
$NEWNAME = ""
}
MESSAGE INFO "Finished" + crlf + "Amount of Names changed = " + $NAMESCHANGED+ CRLF + CRLF