Я в ПХП не очень, но написал бы задачу выше примерно как-то так. Тут используется некий абстрактный шаблонизатор, чтобы отделить логику и представление
for ( $j = 1; $j < $nproh + 1; $j++) {
$nc .= 'N {nn++}0 G01 X {D_cyl} Z {B_rezec / 2} F{fedrat * 3} (NEW LAYER);\n'
$nc .= 'N {nn++}0 G01 Z-{L_cyl1 + L_cyl2 + L_cyl3 + L_cyl4} F {fedrat};\n'
$nc .= 'N {nn++}0 G01 X{D_cyl + hsloy * 2} F {fedrat*3};\n'
$nc .= 'N {nn++}0 G00 Z{B_rezec/2};\n'
$D_cyl = $D_zagot - $hsloy * 2 * $j;
$nn = 0;
render($nc, $nn, $D_cyl, $B_rezec, $fedrat, $L_cyl1, $L_cyl2, $L_cyl3, $L