private void iconButton2_Click(object sender, EventArgs e)
        {
            var book = new ExcelQueryFactory(Modulo.RutaExcel);


            obExcel oe = new obExcel();
            IEnumerable <Localidades> localidades = oe.LocalidadesData(book);

            Modulo.localidadesG = (from c in localidades select c.nombre_plano).ToList();
            Modulo.matrizRaiz   = localidades;
            Areas area = new Areas();

            area.Show();
            iconButton3.Enabled = true;
        }
        private void iconButton3_Click(object sender, EventArgs e)
        {
            string nombre;

            foreach (string g in Modulo.listaFinal)
            {
                nombre = Modulo.RutaGuardado + "\\" + g + ".dwg";

                File.Copy(Modulo.RutaAutocad, nombre, true);
            }
            List <Ejecucion> listaEjecucion = new List <Ejecucion>();
            Ejecucion        ejecucion;

            foreach (Localidades k in Modulo.matrizRaiz)
            {
                foreach (string z in Modulo.listaFinal)
                {
                    if (z == k.nombre_plano)

                    {
                        ejecucion      = new Ejecucion();
                        ejecucion.loc  = k.id;
                        ejecucion.ruta = k.nombre_plano;
                        listaEjecucion.Add(ejecucion);
                    }
                }
            }
            ejecucion = null;
            //inicializacion del autocad
            Autodesk.AutoCAD.Interop.AcadApplication AcadApp = new AcadApplication();

            Autodesk.AutoCAD.Interop.AcadDocument doc;
            AcadApp.Visible = true;
            string rutaAutocad;
            //creacion de los objetos en listas

            obExcel f = new obExcel();

            IEnumerable <Vanos>         vanos;
            IEnumerable <Postes>        postes;
            IEnumerable <Luminarias>    luminarias;
            IEnumerable <Subestaciones> subestaciones;
            IEnumerable <VistasC>       vistasCajetines;
            IEnumerable <VistasD>       vistasDibujo;
            IEnumerable <Layers>        capas;
            IEnumerable <Cajetines>     cajetienes;

            double[] pto  = new double[3];
            double[] pto2 = new double[3];
            double[] pto3 = new double[3];
            double[] pto4 = new double[3];
            pto[2]  = 0.0;
            pto2[2] = 0.0;
            pto3[2] = 0.0;
            pto4[2] = 0.0;
            AcadLine           lin;
            AcadBlockReference block;
            AcadLayer          layer;
            AcadPViewport      vistaCajetin;
            AcadPViewport      vistaPlano;
            AcadAcCmColor      color = null;
            AcadDimAligned     dim;
            AcadDimAligned     con;


            try
            {
                color = AcadApp.GetInterfaceObject("AutoCAD.AcCmColor.17") as AcadAcCmColor;
            }
            catch { };
            try
            {
                color = AcadApp.GetInterfaceObject("AutoCAD.AcCmColor.18") as AcadAcCmColor;
            }
            catch { };
            try
            {
                color = AcadApp.GetInterfaceObject("AutoCAD.AcCmColor.19") as AcadAcCmColor;
            }
            catch { };
            try
            {
                color = AcadApp.GetInterfaceObject("AutoCAD.AcCmColor.20") as AcadAcCmColor;
            }
            catch { };
            try
            {
                color = AcadApp.GetInterfaceObject("AutoCAD.AcCmColor.21") as AcadAcCmColor;
            }
            catch { };
            try
            {
                color = AcadApp.GetInterfaceObject("AutoCAD.AcCmColor.22") as AcadAcCmColor;
            }
            catch { };
            try
            {
                color = AcadApp.GetInterfaceObject("AutoCAD.AcCmColor.23") as AcadAcCmColor;
            }
            catch { };

            var book = new ExcelQueryFactory(Modulo.RutaExcel);

            listaEjecucion.Distinct <Ejecucion>();


            foreach (Ejecucion loc in listaEjecucion)
            {
                rutaAutocad = Modulo.RutaGuardado + "\\" + loc.ruta + ".dwg";
                doc         = AcadApp.Documents.Open(rutaAutocad);



                vanos           = f.VanosData(loc.loc, book);
                postes          = f.PostesData(loc.loc, book);
                luminarias      = f.LuminariasData(loc.loc, book);
                subestaciones   = f.SubestacionesData(loc.loc, book);
                vistasCajetines = f.VistasCData(book);
                vistasDibujo    = f.VistasDData(loc.loc, book);
                cajetienes      = f.CajetinesData(loc.loc, book);
                capas           = f.LayersData(book);

                foreach (Layers g in capas)
                {
                    color.SetRGB(g.red, g.green, g.blue);
                    layer           = doc.Layers.Add(g.nombre_capa);
                    layer.TrueColor = color;
                }

                //dibujamos los vanos
                if (VanosBox.Checked)
                {
                    foreach (Vanos g in vanos)
                    {
                        pto[0] = g.x_inicial;
                        pto[1] = g.y_inicial;

                        pto2[0] = g.x_final;
                        pto2[1] = g.y_final;

                        pto3[0] = pto[0] / 2 + pto2[0] / 2;
                        pto3[1] = pto[1] / 2 + pto2[1] / 2;

                        lin                      = doc.ModelSpace.AddLine(pto, pto2);
                        lin.Layer                = "_AereoCond";
                        dim                      = doc.ModelSpace.AddDimAligned(pto, pto2, pto3);
                        dim.StyleName            = "ACOT-LP-FRANK";
                        dim.VerticalTextPosition = AcDimVerticalJustification.acAbove;
                        dim.Layer                = "_CotaCond";
                        con                      = doc.ModelSpace.AddDimAligned(pto, pto2, pto3);
                        con.TextOverride         = g.conductor;
                        con.StyleName            = "ACOT-LP-FRANK";
                        con.VerticalTextPosition = AcDimVerticalJustification.acUnder;
                        con.Layer                = "_TipoCond";
                    }
                }
                //metodo de postes
                if (Postesbox.Checked)
                {
                    foreach (Postes g in postes)
                    {
                        pto[0]      = g.x_poste;
                        pto[1]      = g.y_poste;
                        block       = doc.ModelSpace.InsertBlock(pto, g.bloque, 1, 1, 1, 0);
                        block.Layer = "_Postes";
                        var blocAtri = block.GetAttributes();
                        blocAtri[0].TextString = g.altura;
                        blocAtri[1].TextString = g.estado;
                        blocAtri[2].TextString = g.material;
                        blocAtri[3].TextString = g.cod_poste;
                    }
                }
                //metodo de luminarias
                if (LumBox.Checked)
                {
                    foreach (Luminarias g in luminarias)
                    {
                        pto[0]      = g.x_luminaria;
                        pto[1]      = g.y_luminaria;
                        block       = doc.ModelSpace.InsertBlock(pto, "luminaria", 1, 1, 1, 0);
                        block.Layer = "_Luminaria";
                        var blocAtri = block.GetAttributes();
                        blocAtri[0].TextString = g.potencia;
                        blocAtri[1].TextString = g.altura;
                        blocAtri[2].TextString = g.codigo_luminaria;
                    }
                }
                //metodo de subestaciones
                if (SedBox.Checked)
                {
                    foreach (Subestaciones g in subestaciones)
                    {
                        pto[0]      = g.x_subestacion;
                        pto[1]      = g.y_subestacion;
                        block       = doc.ModelSpace.InsertBlock(pto, g.bloque, 25, 25, 25, 0);
                        block.Layer = "_Seds";
                        var blocAtri = block.GetAttributes();
                        blocAtri[0].TextString = g.potencia;
                        blocAtri[1].TextString = g.codigo_subestacion;
                    }
                }

                //metodo de creacion de vistas en cajetines

                if (CajBox.Checked)
                {
                    foreach (VistasC g in vistasCajetines)
                    {
                        pto[0]          = g.x_centro;
                        pto[1]          = g.y_centro;
                        pto2[0]         = g.x_inicial;
                        pto2[1]         = g.y_inicial;
                        pto3[0]         = g.x_final;
                        pto3[1]         = g.y_final;
                        doc.ActiveSpace = AcActiveSpace.acPaperSpace;
                        vistaCajetin    = doc.PaperSpace.AddPViewport(pto, g.ancho, g.largo);
                        vistaCajetin.Display(true);
                        vistaCajetin.ViewportOn = true;
                        doc.MSpace = true;
                        AcadApp.ActiveDocument.ActivePViewport = vistaCajetin;
                        AcadApp.ZoomWindow(pto2, pto3);
                        doc.MSpace = false;
                    }

                    //metodo de creacion de vistas en planos


                    foreach (VistasD g in vistasDibujo)
                    {
                        pto[0]          = g.x_centro;
                        pto[1]          = g.y_centro;
                        pto2[0]         = g.x_inicial;
                        pto2[1]         = g.y_inicial;
                        pto3[0]         = g.x_final;
                        pto3[1]         = g.y_final;
                        doc.ActiveSpace = AcActiveSpace.acPaperSpace;
                        vistaPlano      = doc.PaperSpace.AddPViewport(pto, g.ancho, g.largo);
                        vistaPlano.Display(true);
                        vistaPlano.ViewportOn = true;
                        doc.MSpace            = true;
                        AcadApp.ActiveDocument.ActivePViewport = vistaPlano;
                        AcadApp.ZoomWindow(pto2, pto3);
                        doc.MSpace = false;
                    }

                    //metodo de cajetines

                    foreach (Cajetines g in cajetienes)
                    {
                        pto[0]      = 0;
                        pto[1]      = 0;
                        block       = doc.PaperSpace.InsertBlock(pto, "cajetin", 1, 1, 1, 0);
                        block.Layer = "_MarcoPlano";
                        var blocAtri = block.GetAttributes();
                        blocAtri[0].TextString  = g.escala;
                        blocAtri[1].TextString  = g.fecha;
                        blocAtri[2].TextString  = g.plano;
                        blocAtri[3].TextString  = g.n_expediente;
                        blocAtri[4].TextString  = g.departamento;
                        blocAtri[5].TextString  = g.provincia;
                        blocAtri[6].TextString  = g.distrito;
                        blocAtri[7].TextString  = g.revisado;
                        blocAtri[8].TextString  = g.aprobado;
                        blocAtri[9].TextString  = g.dibujado;
                        blocAtri[10].TextString = g.anexo;
                    }
                }
                doc.Save();
                doc.Close();
            }
            book.Dispose();
            AcadApp.Quit();
        }