private void BT_DD_Click(object sender, EventArgs e)
 {
     float.TryParse(TB_D.Text, out float Dist);
     barraSelect.XF  += Math.Abs(Dist);
     TB_Longitud.Text = string.Format("{0:0.00}", barraSelect.XF - barraSelect.XI);
     F_Base.ActualizarVentanaF_VentanaDiseno();
 }
예제 #2
0
        private void reloadFileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            F_Base file = FileProcessor.ProcessFile(TabControl.Tabs[tabControl1.SelectedIndex].File.FilePath);

            TabControl.ReloadTab(file);
            SessionManager.GCC();
        }
        private void CopiarBloqueEstribos()
        {
            var bloqueSelect = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TEstriboSelect.BloqueEstribos.Find(y => y.Recuadro_ModoEdicion.IsSelect);

            if (bloqueSelect != null)
            {
                F_Base.EnviarEstado_Nervio(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect);
                int             IDMax         = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TEstriboSelect.BloqueEstribos.Max(y => y.ID);
                cBloqueEstribos bloqueEstribo = cFunctionsProgram.DeepCloneFast(bloqueSelect);
                bloqueEstribo.ID = IDMax + 1;
                bloqueEstribo.Tendencia_Estribo_Origen = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TEstriboSelect.BloqueEstribos.Last(y => y.ID == IDMax).Tendencia_Estribo_Origen;
                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TEstriboSelect.AgregarBloqueEstribos(bloqueEstribo, false);

                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.SimilitudNervioCompleto.NerviosSimilares.ForEach(N =>
                {
                    cBloqueEstribos bloqueEstriboClonada          = cFunctionsProgram.DeepCloneFast(bloqueEstribo);
                    bloqueEstriboClonada.Tendencia_Estribo_Origen = N.Tendencia_Refuerzos.TEstriboSelect;
                    N.Tendencia_Refuerzos.TEstriboSelect.AgregarBloqueEstribos(bloqueEstriboClonada, false);
                });



                PB_VistaPerfilLongitudinalDiseno.Invalidate();
            }
        }
예제 #4
0
 private void BT_Aplicar_Click(object sender, EventArgs e)
 {
     float.TryParse(TB_Altura.Text, out float H);
     float.TryParse(TB_Ancho.Text, out float B);
     float.TryParse(TB_Longitud.Text, out float L);
     if (!F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.SinRefuerzos_())
     {
         if (ElementoSeleccionado is cApoyo)
         {
             if (H != 0 && B != 0)
             {
                 CambioPropiedadesElemento(H, B);
             }
         }
         else
         {
             if (H != 0 && B != 0 && L != 0)
             {
                 CambioPropiedadesElemento(H, B, L);
             }
         }
         ElementoSeleccionado.Vistas.SelectPerfilLongitudinal = false;
         F_Base.ActualizarTodosLasVentanas();
         Close();
     }
     else
     {
         cFunctionsProgram.VentanaEmergenteExclamacion("Para realizar un cambio en el elemento elimine el refuerzo asignado.");
     }
 }
예제 #5
0
        public TCTab CreateTab(F_Base file = null, string tabNameOverride = "", FileProcessor.EditorTypes overriedEditor = FileProcessor.EditorTypes.NULL)
        {
            string tabName = tabNameOverride;

            if (file != null)
            {
                tabName = (file.FilePath == null) ? file.TempName : System.IO.Path.GetFileNameWithoutExtension(file.FilePath);
                if (tabNameOverride != "")
                {
                    tabName = CalculateTabName(file);
                }
            }

            TabPage TP = new TabPage(tabName);
            TCTab   tc = new TCTab {
                Name = tabName, owner = this, File = file, tabpage = TP
            };

            Tabs.Add(tc);

            //we have made the link between the tab and file, now we need to make the tab exist

            //we need add the correct controls to the tab
            //to put it in tl;dr land, here we see what type of file we are dealing with, and add an editor to the TCTab we made above
            //literally, we just register it inside the TCTab and then add it to it's associated tab page, take a look 0_0
            //tc's ImplementEditor function will automatically assign an editor for the tc based on the TCTab.File.FileType, however you can override it with the func(<param>)
            tc.ImplementEditor(overriedEditor);
            TabContainer.TabPages.Add(TP);
            return(tc);
        }
        private void ConfirmarCambios()
        {
            F_Base.EnviarEstadoVacio();
            foreach (cPiso Piso in F_Base.Proyecto.Edificio.Lista_Pisos)
            {
                List <cNervio> NerviosOrdenados = Piso.Nervios.OrderBy(y => !y.SimilitudNervioCompleto.IsMaestro).ToList();

                foreach (cNervio Nervio in NerviosOrdenados)
                {
                    List <IElemento> Subtramos = Nervio.Lista_Elementos.FindAll(x => x is cSubTramo).ToList();
                    for (int i = 0; i < DGV_1.Rows.Count; i++)
                    {
                        Subtramos.ForEach(subtramo =>
                        {
                            cSubTramo SubTramoAux = (cSubTramo)subtramo;
                            SubTramoAux.Estaciones.ForEach(x => {
                                cSolicitacion solicitacionFind = x.Lista_Solicitaciones.Find(y => y.Nombre == (string)DGV_1.Rows[i].Cells[C_NombreCombinacion.Index].Value);
                                if (solicitacionFind != null)
                                {
                                    solicitacionFind.SelectEnvolvente = (bool)DGV_1.Rows[i].Cells[C_CheckCombinacion.Index].Value;
                                }
                            });
                        });
                    }
                    Nervio.CrearEnvolvente();
                    Nervio.CrearAceroAsignadoRefuerzoLongitudinal();
                    Nervio.CrearAceroAsignadoRefuerzoTransversal();
                }
            }
        }
예제 #7
0
 private void BT_Regresar_Click(object sender, EventArgs e)
 {
     if (F_Base.Proyecto.Edificio.PisoSelect.Nervios != null)
     {
         if (F_Base.PropiedadesPrograma.DeshacerRehacer)
         {
             F_Base.EnviarEstado(F_Base.Proyecto);
         }
         List <cNervio> NerviosSelects = F_Base.Proyecto.Edificio.PisoSelect.Nervios.FindAll(x => x.SelectPlantaEnumeracion == true).ToList();
         List <int>     IDsAEliminar;
         if (NerviosSelects != null)
         {
             IDsAEliminar = NerviosSelects.Select(x => x.ID).ToList();
             NerviosSelects.ForEach(x => x.Lista_Objetos.ForEach(y => { F_Base.Proyecto.DatosEtabs.PisoSelect.Lista_Lines.FindAll(z => z.Nombre == y.Line.Nombre && y.Soporte == eSoporte.Vano).ForEach(m => { m.isSelect = true; }); }));
             foreach (int ID in IDsAEliminar)
             {
                 F_Base.Proyecto.Edificio.PisoSelect.Nervios.Remove(F_Base.Proyecto.Edificio.PisoSelect.Nervios.Find(x => x.ID == ID));
             }
             int IDaRenombrar = 1;
             F_Base.Proyecto.Edificio.PisoSelect.Nervios.ForEach(y => { y.ID = IDaRenombrar; IDaRenombrar += 1; });
             cFunctionsProgram.RenombrarNervios(F_Base.Proyecto.Edificio.PisoSelect.Nervios, F_Base.Proyecto.Nomenclatura_Hztal, F_Base.Proyecto.Nomenclatura_Vert);
         }
     }
     PB_ElementosNoEnumerados.Invalidate();
     PB_ElementosEnumerados.Invalidate();
 }
예제 #8
0
 private void BT_1_Click(object sender, EventArgs e)
 {
     F_Base.EnviarEstadoVacio();
     EditarTendenciaATodosLosNervios();
     Close();
     F_Base.ActualizarTodosLasVentanas();
 }
예제 #9
0
 private void CB_SeccionAltura_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (F_Base.Proyecto.Edificio.PisoSelect.NervioSelect != null)
     {
         F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.CambioenAltura = cFunctionsProgram.ConvertirStringtoeCambioAlto(CB_SeccionAltura.Text);
         F_Base.ActualizarVentanaF_NervioEnPerfilLongitudinal();
     }
 }
예제 #10
0
        /// <summary>
        /// Create a new file within T2T <para/>
        /// Tabs are linked to files, but files arent linked to tabs, allowing views to be duplicated
        /// </summary>
        public void CreateFile(FileProcessor.FileTypes fileType)
        {
            firstOpenPanel1.Visible = false;
            tabControl1.Visible     = true;

            F_Base file = FileProcessor.CreateFile(fileType, TabControl);

            TabControl.CreateTab(file);
        }
예제 #11
0
 private void BT_Cerrar_Click(object sender, EventArgs e)
 {
     if (ElementoSeleccionado != null)
     {
         ElementoSeleccionado.Vistas.SelectPerfilLongitudinal = false;
         F_Base.ActualizarVentanaF_NervioEnPerfilLongitudinal();
     }
     Close();
 }
        private void ChangeBarra()
        {
            float.TryParse(TB_Precision.Text, out float Prec);
            float.TryParse(TB_Longitud.Text, out float Long);
            float Longitud2 = barraSelect.XF - barraSelect.XI;
            float Delta     = Long - Longitud2;

            BarraSelect.XF += Delta;
            barraSelect.DeltaAlargamiento = Prec;
            F_Base.ActualizarVentanaF_VentanaDiseno();
        }
        private void CrearGrids1()
        {
            CrearGrids2(DGV_X, ListaX, eDireccionGrid.X);
            CrearGrids2(DGV_Y, ListaY, eDireccionGrid.Y); List <cGrid> Grids = new List <cGrid>();
            Grids.AddRange(ListaX); Grids.AddRange(ListaY);
            List <float> X = Grids.FindAll(x => x.Direccion == eDireccionGrid.X).Select(x => x.CoordenadaInicial).ToList();
            List <float> Y = Grids.FindAll(x => x.Direccion == eDireccionGrid.Y).Select(x => x.CoordenadaInicial).ToList();

            Grids.ForEach(x => x.CrearRecta(X.Max(), Y.Max(), X.Min(), Y.Min()));
            F_Base.Proyecto.Edificio.Lista_Grids = cFunctionsProgram.DeepClone(Grids);
            F_Base.ActualizarVentanaF_SelectNervio();
        }
예제 #14
0
        public void SelectNervioChanged(Point Location, bool MouseDown, string NombreABuscar = "")
        {
            cNervio NervioSelectMouse = null;

            if (F_Base.Proyecto.Edificio.PisoSelect.Nervios != null && F_Base.Proyecto.Edificio.PisoSelect.Nervios.Count > 0)
            {
                if (NombreABuscar != "")
                {
                    F_Base.Proyecto.Edificio.PisoSelect.NervioSelect        = F_Base.Proyecto.Edificio.PisoSelect.Nervios.Find(x => x.Nombre == NombreABuscar);
                    F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Select = true;
                }
                else if (MouseDown)
                {
                    NervioSelectMouse = F_Base.Proyecto.Edificio.PisoSelect.Nervios.Find(x => x.MouseDownSelect(Location));
                    if (NervioSelectMouse != null)
                    {
                        F_Base.Proyecto.Edificio.PisoSelect.NervioSelect = NervioSelectMouse;
                        LV_Nervios.SelectedItems.Clear();
                    }
                }
            }

            if (F_Base.Proyecto.Edificio.PisoSelect.NervioSelect != null)
            {
                F_Base.Proyecto.Edificio.PisoSelect.Nervios.FindAll(x => x.Nombre != F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Nombre).ForEach(x => { x.Select = false; x.ChangeSelect(); });
                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Select = true; F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.ChangeSelect();

                ListViewItem LVI = FindListViewItem(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Nombre, LV_Nervios);
                if (LVI != null)
                {
                    LVI.Selected = true;
                }

                GB_Propiedades.Text = $" {F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Nombre} | {F_Base.Proyecto.Edificio.PisoSelect.Nombre}";
                Text = $"Selección de Nervios | {F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Nombre} | {F_Base.Proyecto.Edificio.PisoSelect.Nombre} ";
                ChangeComboBox();
                CB_SeccionAltura.SelectedItem = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.CambioenAltura.ToString();
                CB_SeccionAncho.SelectedItem  = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.CambioenAncho.ToString();
                TB_r1.Text = string.Format("{0:0.00}", F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.r1);
                TB_r2.Text = string.Format("{0:0.00}", F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.r2);
                Habilitar_DeshabilitarNevioBorde();
            }
            else
            {
                Text = $"Selección de Nervios";
                GB_Propiedades.Text = "";
            }
            F_Base.ActualizarVentanaF_NervioEnPerfilLongitudinal(); F_Base.ActualizarVentanaF_VentanaDiseno();

            F_Base.F_PlantaNervios.Invalidate();
        }
예제 #15
0
        private void BT_Enumerar_Click(object sender, EventArgs e)
        {
            if (F_Base.PropiedadesPrograma.DeshacerRehacer)
            {
                F_Base.EnviarEstado(F_Base.Proyecto);
            }

            F_Base.Proyecto.DatosEtabs.PisoSelect.Lista_Lines.ForEach(x => x.IndiceConjuntoSeleccion = 0);
            List <cLine> LineasSeleccionadas = F_Base.Proyecto.DatosEtabs.PisoSelect.Lista_Lines.FindAll(x => x.Select == true).ToList();

            CreaNervios(TB_Prefijo.Text, LineasSeleccionadas, TB_Nombre.Text);
            PB_ElementosEnumerados.Invalidate();
            PB_ElementosNoEnumerados.Invalidate();
        }
        private void PB_VistaPerfilLongitudinal_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            e.Graphics.Clear(Color.White);
            if (F_Base.Proyecto.Edificio.PisoSelect.NervioSelect != null)
            {
                CambiosConteMenuStrip();
                e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
                float XI = 15f; float YI = 15f;
                float WidthPB  = PB_VistaPerfilLongitudinal.Width - XI * 3;
                float HeightPB = (PB_VistaPerfilLongitudinal.Height - YI * 3);

                List <PointF> PuntosNoEscalados = new List <PointF>();

                //Puntos No Escalados - Nervio y Grid
                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Lista_Elementos.ForEach(x => PuntosNoEscalados.AddRange(x.Vistas.Perfil_Original.Reales));
                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Grids.ForEach(x => PuntosNoEscalados.AddRange(x.Recta_Real));

                //Crear Coordenadas Escaladas de Elementos

                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.CrearCoordenadasLongitudinal_Elementos_Escalados_Original(PuntosNoEscalados, WidthPB, HeightPB, Dx, Dy, Zoom, XI);

                //Puntos No Escalados
                List <PointF> PuntosEscalados = new List <PointF>();
                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Lista_Elementos.ForEach(x => PuntosEscalados.AddRange(x.Vistas.Perfil_Original.Escaladas));
                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Grids.ForEach(x => { PuntosEscalados.AddRange(x.Recta_Escalada); PuntosEscalados.Add(x.PuntoBubble_Real); });

                PointF PuntoInicialEscalado = new PointF(PuntosEscalados.Min(X => X.X), PuntosEscalados.Max(x => x.Y) + YI);
                PointF PuntoFinalEscalado   = new PointF(PuntosEscalados.Max(X => X.X), PuntosEscalados.Max(x => x.Y) + YI);

                if (PuntoInicialEscalado.Y + YI > HeightPB)
                {
                    PuntoInicialEscalado.Y -= YI;
                    PuntoFinalEscalado.Y   -= YI;
                }


                if (MostrarReglaToolStripMenuItem.Checked)
                {
                    cFunctionsProgram.DrawRegla(e.Graphics, PuntoInicialEscalado, PuntoFinalEscalado, cFunctionsProgram.LongitudesElementos(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Lista_Elementos), Zoom);
                }
                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Paint_Longitudinal_Elementos_Escalados_Original(e.Graphics, Zoom, PB_VistaPerfilLongitudinal.Height);
                F_Base.ActualizarVentanaF_VentanaDiseno(Zoom, Dx, Dy);
                F_Base.ActualizarVentanaF_MomentosNervio(Zoom, Dx, Dy);
                F_Base.ActualizarVentanaF_AreasMomentoNervio(Zoom, Dx, Dy);
                F_Base.ActualizarVentanaF_CortanteNervio(Zoom, Dx, Dy);
                F_Base.ActualizarVentanaF_AreaCortanteNervio(Zoom, Dx, Dy);
            }
        }
 private void TLSM_ApoyoFinal_Click(object sender, EventArgs e)
 {
     if (sender == TLSN_ApoyoFinal)
     {
         F_Base.EnviarEstado_Nervio(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect);
         F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.CrearApoyosAExtremos(ApoyoFinal: true);
         PB_VistaPerfilLongitudinal.Invalidate();
     }
     else if (sender == TLSN_ApoyoFinalE)
     {
         F_Base.EnviarEstado_Nervio(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect);
         F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.EliminarApoyosAExtremos(ApoyoFinal: true);
         PB_VistaPerfilLongitudinal.Invalidate();
     }
 }
예제 #18
0
        private void BT_Cerrar_Click(object sender, EventArgs e)
        {
            F_Base.EnviarEstadoVacio();
            List <cPiso> PisosConNervios = F_Base.Proyecto.Edificio.Lista_Pisos.FindAll(x => x.Nervios != null && x.Nervios.Count > 0);

            if (PisosConNervios != null && PisosConNervios.Count > 0)
            {
                F_Base.F_Base_.CargarVentanasXML();
                PisosConNervios.ForEach(x => x.Nervios.ForEach(y => y.SelectPlantaEnumeracion = false));
                F_Base.ActualizarVentanaF_SelectNervio();
            }
            F_Base.LimpiarMemoria();
            T_Timer2.Stop();
            Visible = false;
        }
예제 #19
0
 private void BT_1_Click(object sender, EventArgs e)
 {
     float.TryParse(TB_BurbujaSize.Text, out float BubbleSize);
     if (BubbleSize > 0 && BubbleSize <= 0.4f)
     {
         F_Base.EnviarEstado_Nervio(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect);
         CreateGrids(BubbleSize);
         F_Base.ActualizarTodosLasVentanas();
         Close();
     }
     else
     {
         MessageBox.Show("Ingrese un valor entre 0 y 0.4 para \"Tamaño de Burbuja\"", cFunctionsProgram.Empresa, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
 private void TLSM_ApoyoInicio_Click(object sender, EventArgs e)
 {
     if (sender == TLSN_ApoyoInicio)
     {
         F_Base.EnviarEstado_Nervio(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect);
         F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.CrearApoyosAExtremos(true);
         F_Base.ActualizarVentanaF_NervioEnPerfilLongitudinal();
     }
     else if (sender == TLSN_ApoyoInicioE)
     {
         F_Base.EnviarEstado_Nervio(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect);
         F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.EliminarApoyosAExtremos(true);
         F_Base.ActualizarVentanaF_NervioEnPerfilLongitudinal();
     }
 }
예제 #21
0
 private void BT_Dr_Click(object sender, EventArgs e)
 {
     if (float.TryParse(TB_M.Text, out float value))
     {
         if (bloqueEstribosSelect.DireccionEstribo == eLadoDeZona.Derecha)
         {
             bloqueEstribosSelect.XI += value;
         }
         else
         {
             bloqueEstribosSelect.XF += value;
         }
         F_Base.ActualizarVentanaF_VentanaDiseno();
         ActualizarValores();
     }
 }
예제 #22
0
 public string CalculateTabName(F_Base file)
 {
     if (Tabs.Count > 0)
     {
         int clonecount = 0;
         foreach (TCTab tc in Tabs)
         {
             if (tc.File.FilePath == file.FilePath)
             {
                 clonecount++;
             }
         }
         return(file.FilePath + " : " + clonecount);
     }
     return(file.FilePath);
 }
예제 #23
0
        private void BT_CrtierioFC_Click(object sender, EventArgs e)
        {
            cFunctionsProgram.Notificar("Cargando, Creando Nervios.");
            if (F_Base.PropiedadesPrograma.DeshacerRehacer)
            {
                F_Base.EnviarEstado(F_Base.Proyecto);
            }
            F_Base.Proyecto.DatosEtabs.PisoSelect.Lista_Lines.ForEach(x => { x.IndiceConjuntoSeleccion = 0; x.isSelect = true; });
            F_Base.Proyecto.Edificio.Lista_Pisos.Find(x => x.Nombre == F_Base.Proyecto.DatosEtabs.PisoSelect.Nombre).Nervios = new List <cNervio>();
            List <cLine> LineasSeleccionadas = F_Base.Proyecto.DatosEtabs.PisoSelect.Lista_Lines.FindAll(x => x.Type == eType.Beam && x.Seccion != null && x.Seccion.Nombre.Contains("N")).ToList();

            CreaNervios("N-", LineasSeleccionadas);
            PB_ElementosEnumerados.Invalidate();
            PB_ElementosNoEnumerados.Invalidate();
            cFunctionsProgram.Notificar("Listo.");
        }
예제 #24
0
 private void AbrirFormularioPrincipal()
 {
     if (cSafe.ComprobarAccesoPrograma())
     {
         if (!cSafe.ComprobarVersionPrograma())
         {
             MessageBox.Show("Programa sin actualizar, comuníquese con el área de desarrollo de software para realizar la respectiva actualización.", cFunctionsProgram.Empresa, MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
         F_Base f_Base = new F_Base();
         f_Base.Show();
     }
     else
     {
         MessageBox.Show("Acceso Denegado", cFunctionsProgram.Empresa, MessageBoxButtons.OK, MessageBoxIcon.Warning);
         Application.Exit();
     }
 }
        private void EliminarBarra()
        {
            cBarra BarraSelect = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TInfeSelect.Barras.Find(x => x.C_Barra.IsSelect | x.C_Barra.IsSelectArrastre);

            if (BarraSelect == null)
            {
                BarraSelect = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TSupeSelect.Barras.Find(x => x.C_Barra.IsSelect | x.C_Barra.IsSelectArrastre);
            }

            if (BarraSelect != null)
            {
                F_Base.EnviarEstado_Nervio(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect);
                if (BarraSelect.UbicacionRefuerzo == eUbicacionRefuerzo.Inferior)
                {
                    F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TInfeSelect.EliminarBarra(BarraSelect);
                }
                else
                {
                    F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TSupeSelect.EliminarBarra(BarraSelect);
                }

                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.SimilitudNervioCompleto.NerviosSimilares.ForEach(N =>
                {
                    cBarra BarraEliminar;
                    BarraEliminar = BarraSelect.UbicacionRefuerzo == eUbicacionRefuerzo.Inferior ?
                                    N.Tendencia_Refuerzos.TInfeSelect.Barras.Find(y => y.ID == BarraSelect.ID) :
                                    N.Tendencia_Refuerzos.TSupeSelect.Barras.Find(y => y.ID == BarraSelect.ID);
                    if (BarraEliminar != null)
                    {
                        if (BarraEliminar.UbicacionRefuerzo == eUbicacionRefuerzo.Inferior)
                        {
                            N.Tendencia_Refuerzos.TInfeSelect.EliminarBarra(BarraEliminar);
                        }
                        else
                        {
                            N.Tendencia_Refuerzos.TSupeSelect.EliminarBarra(BarraEliminar);
                        }
                    }
                });


                PB_VistaPerfilLongitudinalDiseno.Invalidate();
            }
        }
        private void AplicarCambios()
        {
            if (F_Base.Proyecto != null)
            {
                F_Base.Proyecto.EtiquetasDeBarras        = CKB_LabelsBarras.Checked;
                F_Base.Proyecto.AcotamientoInteligente   = CKB_CotaInteligente.Checked;
                F_Base.Proyecto.RedondearBarra           = CK_Redondear.Checked;
                F_Base.Proyecto.CoordenadasPInterseccion = CKB_CoorPI.Checked;
                F_Base.Proyecto.AcotamientoTraslapos     = CKB_AcotamientoTraslapos.Checked;
            }
            F_Base.PropiedadesPrograma.AutoGuardado            = CKB_AutoGuardado.Checked;
            F_Base.PropiedadesPrograma.IntervaloMinAutoGuarado = new Programa.cPropiedades.TiempoAutoGuardado((int)NUD_Intervalo.Value);
            F_Base.PropiedadesPrograma.LineasPretrazado        = CKB_LineasPlanta.Checked;
            F_Base.PropiedadesPrograma.FuncionesEnParalelo     = CKB_FuncionesParalelo.Checked;
            F_Base.PropiedadesPrograma.TimerSleep      = (int)NUD_ThreadSleep.Value;
            F_Base.PropiedadesPrograma.DeshacerRehacer = CKB_DeshacerRehacer.Checked;
            Programa.cPropiedades.GuardarPropiedades(F_Base.PropiedadesPrograma);

            F_Base.ActualizarTodosLasVentanas();
        }
        private void CopiarBarra()
        {
            cBarra BarraSelect = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TInfeSelect.Barras.Find(x => x.C_Barra.IsSelect | x.C_Barra.IsSelectArrastre);

            if (BarraSelect == null)
            {
                BarraSelect = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TSupeSelect.Barras.Find(x => x.C_Barra.IsSelect | x.C_Barra.IsSelectArrastre);
            }

            if (BarraSelect != null)
            {
                F_Base.EnviarEstado_Nervio(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect);
                cBarra BarraClonada = cFunctionsProgram.DeepCloneFast(BarraSelect);
                if (BarraSelect.UbicacionRefuerzo == eUbicacionRefuerzo.Inferior)
                {
                    int IDMax = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TInfeSelect.Barras.Max(y => y.ID);
                    BarraClonada.ID = IDMax + 1;
                    BarraClonada.TendenciaOrigen = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TInfeSelect.Barras.Last().TendenciaOrigen;
                    F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TInfeSelect.AgregarBarra(BarraClonada);


                    F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.SimilitudNervioCompleto.NerviosSimilares.ForEach(N =>
                    {
                        cBarra BarraClonar2          = cFunctionsProgram.DeepCloneFast(BarraClonada);
                        BarraClonar2.TendenciaOrigen = N.Tendencia_Refuerzos.TInfeSelect;
                        N.Tendencia_Refuerzos.TInfeSelect.AgregarBarra(BarraClonar2);
                    });
                }
                else
                {
                    int IDMax = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TSupeSelect.Barras.Max(y => y.ID);
                    BarraClonada.ID = IDMax + 1;
                    BarraClonada.TendenciaOrigen = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TSupeSelect.Barras.Last().TendenciaOrigen;
                    F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TSupeSelect.AgregarBarra(BarraClonada);
                }



                PB_VistaPerfilLongitudinalDiseno.Invalidate();
            }
        }
예제 #28
0
 private void CambioPropiedadesElemento(float Altura, float Ancho, float Longitud = 0)
 {
     if (ElementoSeleccionado.Vistas.SelectPerfilLongitudinal)
     {
         F_Base.EnviarEstadoVacio();
         if (ElementoSeleccionado is cApoyo)
         {
             cSeccion Seccion = ElementoSeleccionado.Seccion;
             Seccion.B = Ancho; Seccion.H = Altura;
             ElementoSeleccionado.Seccion = Seccion;
         }
         else
         {
             cSeccion Seccion = ElementoSeleccionado.Seccion;
             Seccion.B = Ancho; Seccion.H = Altura;
             ElementoSeleccionado.Seccion = Seccion;
             cSubTramo SubtramoAux = (cSubTramo)ElementoSeleccionado;
             SubtramoAux.Longitud = Longitud;
         }
     }
 }
        private void PB_VistaPerfilLongitudinalDiseno_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
            e.Graphics.Clear(Color.White);
            float         XI                = 15f;
            float         WidthPB           = PB_VistaPerfilLongitudinalDiseno.Width - XI * 3;
            float         HeightPB          = (PB_VistaPerfilLongitudinalDiseno.Height);
            List <PointF> PuntosNoEscalados = new List <PointF>();

            //Puntos No Escalados - Nervio y Grid
            F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Lista_Elementos.ForEach(x => PuntosNoEscalados.AddRange(x.Vistas.Perfil_AutoCAD.Reales));

            //Crear Coordenadas Escaladas de Elementos
            PuntosNoEscalados.Add(new PointF(0, 0));
            F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Paint_Longitudinal_Elementos_Escalados_AutoCAD(e.Graphics, PuntosNoEscalados, HeightPB / 3, HeightPB, Dx, Dy, Zoom, XI);


            if (F_Base.Proyecto.AcotamientoTraslapos)
            {
                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TInfeSelect.PaintTraslapos(e.Graphics, Zoom);
                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TSupeSelect.PaintTraslapos(e.Graphics, Zoom);
            }

            F_Base.ActualizarVentanaF_MomentosNervio(Zoom, Dx, Dy);
            F_Base.ActualizarVentanaF_AreasMomentoNervio(Zoom, Dx, Dy);
            F_Base.ActualizarVentanaF_AreaCortanteNervio(Zoom, Dx, Dy);



            //Peso Refuerzo Longitudinal
            float PesoLong = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TInfeSelect.PesoRefuerzo + F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TSupeSelect.PesoRefuerzo;

            TSL_PesoLongitudinalValue.Text = string.Format("{0:0.00}", PesoLong) + " kg";
            //Peso Refuerzo Transversal
            float PesoTransv = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TEstriboSelect.Peso;

            TSL_PesoTranseversalValue.Text = string.Format("{0:0.00}", PesoTransv) + " kg";
            //Peso Total
            TSL_PesoTotalValue.Text = string.Format("{0:0.00}", PesoLong + PesoTransv) + " kg";
        }
        private void ElimnarBloqueEstribos()
        {
            var bloqueSelect = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TEstriboSelect.BloqueEstribos.Find(y => y.Recuadro_ModoEdicion.IsSelect);

            if (bloqueSelect != null)
            {
                F_Base.EnviarEstado_Nervio(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect);
                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TEstriboSelect.ElminarBloqueEstribos(bloqueSelect);

                F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.SimilitudNervioCompleto.NerviosSimilares.ForEach(N =>
                {
                    cBloqueEstribos bloqueEstribos2 = N.Tendencia_Refuerzos.TEstriboSelect.BloqueEstribos.Find(y => y.ID == bloqueSelect.ID);
                    if (bloqueEstribos2 != null)
                    {
                        bloqueEstribos2.Tendencia_Estribo_Origen = N.Tendencia_Refuerzos.TEstriboSelect;
                        N.Tendencia_Refuerzos.TEstriboSelect.ElminarBloqueEstribos(bloqueEstribos2);
                    }
                });

                PB_VistaPerfilLongitudinalDiseno.Invalidate();
            }
        }