# File lib/graster/gcode_file.rb, line 16 def nc codes codes = codes.dup if codes[:laser] == true && !@laser @laser = true codes.merge!(:m => 62, :p => 0) elsif codes[:laser] == false && @laser @laser = false codes.merge!(:m => 63, :p => 0) end codes.delete :laser self << codes.sort {|(k1,v1),(k2,v2)| PRIORITY.index(k1) <=> PRIORITY.index(k2) }.map {|k,v| if v.is_a? Integer "#{k.to_s.upcase}#{v}" elsif v.is_a? Float "#{k.to_s.upcase}%0.3f" % v else k.to_s.upcase end }.join(' ') + "\n" end