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

  1. proc scale {gcode scale} {
  2. set gcode [split $gcode { }]
  3. set result {}
  4. while {[llength $gcode] > 0} {
  5. set first [lindex $gcode 0]
  6. set gcode [lrange $gcode 1 end]
  7. switch -re [string toupper [string index $first 0]] {
  8. {[XYZ]} {
  9. lappend result [string index $first 0][format %.3f [expr {$scale*[string range $first 1 end]}]]
  10. }
  11. default {
  12. lappend result $first
  13. }
  14. }
  15. }
  16. return [join $result { }]
  17. }