In that case I would just make the changes for example by 10.
function VariableFeed()
{
var cuttingFeed = GetParam("%p(Cutting Rate)%");
var plungeFeed = GetParam("%p(Plunge Rate)%");
var zMax = GetParam("%p(Toolpath Z Max)%");
var zMin = GetParam("%p(Toolpath Z Min)%");
var currentZ = GetParam("%p(Z)%");
var vFeed = plungeFeed + (((currentZ - zMin)*(cuttingFeed - plungeFeed))/(zMax - zMin));
vFeed = Math.ceil(vFeed/10.0)*10;
SetParam("%p(Feed Rate)%",vFeed)
}
But still depends on the specific requirements. If the necessity of dividing it into 10 segments is crucial, then maybe something like the code below. But I would prefer the solution above.
function VariableFeed()
{
var zMax = GetParam("%p(Toolpath Z Max)%");
var zMin = GetParam("%p(Toolpath Z Min)%");
var currentZ = GetParam("%p(Z)%");
var vFeed;
var tenthSgm = (zMax - zMin)/10.0;
if (currentZ > (9*tenthSgm)) {
vFeed = GetVFeed(10*tenthSgm, zMax, zMin);
} else if (currentZ > (8*tenthSgm)) {
vFeed = GetVFeed(9*tenthSgm, zMax, zMin);
} else if (currentZ > (7*tenthSgm)) {
vFeed = GetVFeed(8*tenthSgm, zMax, zMin);
} else if (currentZ > (6*tenthSgm)) {
vFeed = GetVFeed(7*tenthSgm, zMax, zMin);
} else if (currentZ > (5*tenthSgm)) {
vFeed = GetVFeed(6*tenthSgm, zMax, zMin);
} else if (currentZ > (4*tenthSgm)) {
vFeed = GetVFeed(5*tenthSgm, zMax, zMin);
} else if (currentZ > (3*tenthSgm)) {
vFeed = GetVFeed(4*tenthSgm, zMax, zMin);
} else if (currentZ > (2*tenthSgm)) {
vFeed = GetVFeed(3*tenthSgm, zMax, zMin);
} else if (currentZ > (1*tenthSgm)) {
vFeed = GetVFeed(2*tenthSgm, zMax, zMin);
} else {
vFeed = GetVFeed(1*tenthSgm, zMax, zMin);
}
SetParam("%p(Feed Rate)%",vFeed)
}
function GetVFeed(pseudoZ,zMax,zMin)
{
var cuttingFeed = GetParam("%p(Cutting Rate)%");
var plungeFeed = GetParam("%p(Plunge Rate)%");
var vFeed = plungeFeed + (((pseudoZ - zMin)*(cuttingFeed - plungeFeed))/(zMax - zMin));
return vFeed;
}