Esempio n. 1
0
        public LenteEsfericaDescentrada Ler()
        {
            LenteEsfericaDescentrada model = new LenteEsfericaDescentrada();

            model.Diametro       = 1;
            model.TamanhoArmacao = 1;
            model.Dnp            = 1;
            model.Rx             = 1;
            model.IndiceRefracao = 1.499;
            model.CurvaBase      = 1;
            //model.FatorConversao = 1;
            //model.NovaDiopdria = 1;
            //model.CurvaOposta = 1;
            //model.Descentracao = 1;
            //model.DiferencaBorda = 1;
            //model.EspessuraTotal = 1;
            //model.EspessuraOposta = 1;
            //model.EspessuraMinima = 1;

            return(model);
        }
Esempio n. 2
0
        public ActionResult Calculo([FromForm] LenteEsfericaDescentrada model)
        {
            double _fatorConversao = Math.Round(((1.530 - 1) / (model.IndiceRefracao - 1)), 2);
            double nd = Math.Round(_fatorConversao * model.Rx, 2);
            double co = Math.Round(nd - (model.CurvaBase), 2);
            double _x = Math.Round((model.Diametro / 2), 2);

            double e = 2.00;

            if (nd <= 0.50)
            {
                e = 2.00;//if (nd >= 0.00 && nd <= 0.50)
            }
            else if (nd >= 0.51 && nd <= 1.00)
            {
                e = 1.8;
            }
            else if (nd >= 1.01 && nd <= 2.50)
            {
                e = 1.6;
            }
            else if (nd >= 2.51 && nd <= 4.50)
            {
                e = 1.4;
            }
            else if (nd >= 4.51 && nd <= 6.50)
            {
                e = 1.2;
            }
            else if (nd >= 6.51 && nd <= 8.00)
            {
                e = 1.0;
            }
            else if (nd >= 8.01)
            {
                e = 0.8;
            }

            double ezao = Math.Round(Math.Abs((((_x * _x) * Math.Abs(nd)) / 1000) + e), 2);
            double ds   = Math.Round((model.TamanhoArmacao / 2) - model.Dnp, 2);
            double db   = Math.Round((0.019 * model.Diametro * ds * Math.Abs(nd) * 0.1), 2);
            double et   = Math.Round(ezao + (db / 2), 2);

            double eo        = e + db;
            double provaReal = eo - e;

            if (model.Rx < 0) //Lente negativa
            {
                eo        = et - db;
                provaReal = et - eo;
            }

            //PROVA REAL
            bool isOk = (db == Math.Round(provaReal, 2));

            ViewBag.FatorConversao  = _fatorConversao.ToString();
            ViewBag.NovaDiopdria    = nd.ToString();
            ViewBag.CurvaOposta     = co.ToString();
            ViewBag.Descentracao    = ds.ToString() + " mm";
            ViewBag.DiferencaBorda  = db.ToString() + " mm";
            ViewBag.Ezao            = ezao.ToString() + " mm";
            ViewBag.EspessuraTotal  = et.ToString() + " mm";
            ViewBag.EspessuraOposta = eo.ToString() + " mm";
            ViewBag.EspessuraMinima = e.ToString() + " mm";
            ViewBag.ProvaReal       = (isOk ? "SIM" : "NÃO");

            return(View("Create"));
        }