# 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