Posted to tcl by mjanssen at Wed Feb 08 00:08:36 GMT 2012view pretty

proc scale {gcode scale} {
  set gcode [split $gcode { }]
  set result {}
  while {[llength $gcode] > 0} {
    set first [lindex $gcode 0]
    set gcode [lrange $gcode 1 end]
    switch -re [string toupper [string index $first 0]] {
        {[XYZ]} {           
          lappend result [string index $first 0][format %.3f [expr {$scale*[string range $first 1 end]}]]
        }
        default {
           lappend result  $first 
        }
     }
  }
  return [join $result { }]
}