public void DrawAutoCAD_Nervios(float X, float Y) { Nervios.ForEach(N => { N.Lista_Tramos.ForEach(T => { T.Lista_SubTramos.ForEach(ST => ST.Lista_Lineas.ForEach(L => DrawLine_AutoCAD(L, cVariables.C_Nervios, X, Y))); var Point1 = ConvertcPointToPointF(T.Lista_SubTramos.First().Lista_Lineas.First().ConfigLinea.Point1P); var Point2 = ConvertcPointToPointF(T.Lista_SubTramos.Last().Lista_Lineas.Last().ConfigLinea.Point2P); float Bmax = T.Lista_SubTramos.Max(y => y.Seccion.B) * cConversiones.Dimension_cm_to_m; PointF pointF = PointF.Empty; string Nombre = N.Nombre; float Rotacion = 0; float W_CajonTexto = cVariables.W_LetraAutoCADTextRefuerzo; float H_Texto = cVariables.H_TextoEstribos; if (N.Direccion == eDireccion.Horizontal) { pointF = new PointF(Point1.X + (Point2.X - Point1.X) / 2F - W_CajonTexto / 2f, Point1.Y + H_Texto + Bmax); } else if (N.Direccion == eDireccion.Vertical) { Rotacion = 90f; pointF = new PointF(Point1.X - H_Texto - Bmax, Point1.Y + (Point2.Y - Point1.Y) / 2F - W_CajonTexto / 2f); } else if (N.Direccion == eDireccion.Diagonal) { Rotacion = Angulo(Point1, Point2); pointF = new PointF(Point1.X + (Point2.X - Point1.X) / 2F - W_CajonTexto / 2f, Point1.Y + (Point2.Y - Point1.Y) / 2F - W_CajonTexto / 2f); } FunctionsAutoCAD.AddText(Nombre, B_Operaciones_Matricialesl.Operaciones.Traslacion(pointF, X, Y), cVariables.W_LetraAutoCADEstribos, H_Texto, cVariables.C_Texto2, cVariables.Estilo_Texto, Rotacion, Width2: W_CajonTexto, JustifyText: JustifyText.Center); }); }); }
public void PaintAutoCAD(float X, float Y) { if (NoBarra != eNoBarra.BNone && CoordenadasPuntoString.Reales.Count > 0) { string Text = $"{Cantidad}{cFunctionsProgram.ConvertireNoBarraToString(NoBarra)}/{Math.Round(separacion * cConversiones.Dimension_m_to_cm, 2)}"; float LargoTexto = Text.Length * cVariables.W_LetraAutoCADEstribos; FunctionsAutoCAD.AddText(Text, B_Operaciones_Matricialesl.Operaciones.Traslacion(CoordenadasPuntoString.Reales.First(), X - LargoTexto / 2, Y), cVariables.W_LetraAutoCADTextRefuerzo, cVariables.H_TextoEstribos, cVariables.C_Estribos, cVariables.Estilo_Texto, 0, Width2: LargoTexto, JustifyText: JustifyText.Center); } }
private void DrawLine_AutoCAD(cLine Line, string layer, float X, float Y) { var point1 = ConvertcPointToPointF(Line.ConfigLinea.Point1P); var point2 = ConvertcPointToPointF(Line.ConfigLinea.Point2P); var puntos1 = new List <PointF> { point1, point2 }; var puntos2 = B_Operaciones_Matricialesl.Operaciones.OffSetLine(point1, point2, Line.Seccion.B * cConversiones.Dimension_cm_to_m).ToList(); FunctionsAutoCAD.AddPolyline2D(B_Operaciones_Matricialesl.Operaciones.Traslacion(puntos1, X, Y).ToArray(), layer, false); FunctionsAutoCAD.AddPolyline2D(B_Operaciones_Matricialesl.Operaciones.Traslacion(puntos2, X, Y).ToArray(), layer, false); }
public void Paint_AutoCAD(float X, float Y) { string TextBarra = $"{CantBarra}#{NoBarra.ToString().Replace("B", "")} L="; float LargoTexto = TextBarra.Length * cVariables.W_LetraAutoCADTextRefuerzo; float Xmin = C_Barra.Reales.Min(x => x.X); float Xmax = C_Barra.Reales.Max(x => x.X); float Ymax = C_Barra.Reales.Max(x => x.Y); float Ymin = C_Barra.Reales.Min(x => x.Y); float XString = X + Xmin + (Xmax - Xmin) / 2f - LargoTexto / 2f; float YString = ubicacionRefuerzo == eUbicacionRefuerzo.Inferior ? Y + Ymin + cVariables.H_CuadroTextoBarra : Y + Ymax + cVariables.H_CuadroTextoBarra; double[] P_String = new double[] { XString, YString, 0 }; FunctionsAutoCAD.AddPolyline2DWithLengthText(B_Operaciones_Matricialesl.Operaciones.Traslacion(C_Barra.Reales, X, Y).ToArray(), cVariables.C_Refuerzo, TextBarra, P_String, cVariables.W_LetraAutoCADTextRefuerzo, cVariables.H_TextoBarra, cVariables.C_TextRefuerzo, cVariables.Estilo_Texto, 0, LargoTexto, JustifyText.Center); }
public void Paint_AutoCAD(float X, float Y) { Barras.ForEach(x => x.Paint_AutoCAD(X, Y)); //Agregar Cotas try { if (UbicacionRefuerzo == eUbicacionRefuerzo.Inferior) { Barras.ForEach(Barra => { if (!Barra.TraslpaoDerecha && !Barra.TraslapoIzquierda) { cSubTramo SubTramo = (cSubTramo)Tendencia_Refuerzo_Origen.NervioOrigen.Lista_Elementos.Find(x => x.IsVisibleCoordAutoCAD(Barra.XF) && x is cSubTramo); if (SubTramo != null) { float Ymax = Barra.C_Barra.Reales.Max(x => x.Y); PointF P1 = B_Operaciones_Matricialesl.Operaciones.Traslacion(new PointF(Barra.XF, Ymax), X, Y); PointF P2 = B_Operaciones_Matricialesl.Operaciones.Traslacion(new PointF(SubTramo.Vistas.Perfil_AutoCAD.Reales[2].X, Ymax), X, Y); FunctionsAutoCAD.AddCota(P1, P2, cVariables.C_Cotas, cVariables.Estilo_Cotas, cVariables.Desplazamiento_Cotas_RefuerzoInferior, DeplazaTextY: cVariables.DesplazamientoTexto_Cotas); } } }); } else { void AgregarCotaBarrasIndependietes(cBarra Barra, IElemento ElementoXF) { float Ymax = Barra.C_Barra.Reales.Max(x => x.Y); PointF P1 = B_Operaciones_Matricialesl.Operaciones.Traslacion(new PointF(ElementoXF.Vistas.Perfil_AutoCAD.Reales[0].X, Ymax), X, Y); PointF P2 = B_Operaciones_Matricialesl.Operaciones.Traslacion(new PointF(Barra.C_Barra.Reales.Max(y => y.X), Ymax), X, Y); FunctionsAutoCAD.AddCota(P1, P2, cVariables.C_Cotas, cVariables.Estilo_Cotas, -cVariables.Desplazamiento_Cotas_RefuerzoSuperior, DeplazaTextY: cVariables.DesplazamientoTexto_Cotas); } int MaximoNivelBarras = Barras.Max(x => x.Nivel); Barras.ForEach(Barra => { IElemento ElementoXI = Tendencia_Refuerzo_Origen.NervioOrigen.Lista_Elementos.Find(x => x.IsVisibleCoordAutoCAD(Barra.C_Barra.Reales.Min(y => y.X))); IElemento ElementoXF = Tendencia_Refuerzo_Origen.NervioOrigen.Lista_Elementos.Find(x => x.IsVisibleCoordAutoCAD(Barra.C_Barra.Reales.Max(y => y.X))); if (!(ElementoXI is cApoyo) && !(ElementoXF is cApoyo) && Barra.GanchoDerecha == eTipoGancho.None && Barra.GanchoIzquierda == eTipoGancho.None) { if (Barra.Nivel == MaximoNivelBarras) { AgregarCotaBarrasIndependietes(Barra, ElementoXF); } else { cBarra BarraNivelPosterior = EncontrarBarraConentedora(Barra); if (BarraNivelPosterior == null) { AgregarCotaBarrasIndependietes(Barra, ElementoXF); } else { float Ymax = BarraNivelPosterior.C_Barra.Reales.Max(x => x.Y); float DespCota = Barra.C_Barra.Reales.Min(x => x.Y) - Ymax; PointF P1 = B_Operaciones_Matricialesl.Operaciones.Traslacion(new PointF(BarraNivelPosterior.C_Barra.Reales.Max(y => y.X), Ymax), X, Y); PointF P2 = B_Operaciones_Matricialesl.Operaciones.Traslacion(new PointF(Barra.C_Barra.Reales.Max(y => y.X), Barra.C_Barra.Reales.Min(x => x.Y)), X, Y); FunctionsAutoCAD.AddCota(P1, P2, cVariables.C_Cotas, cVariables.Estilo_Cotas, -DespCota - 0.13f, DeplazaTextY: cVariables.DesplazamientoTexto_Cotas, RA: false); } } } }); } Barras.ForEach(x => { x.CotaParaAutoCADIzquierda = false; x.CotaParaAutoCADDerecha = false; }); Barras.ForEach(Barra => { if (Barra.TraslpaoDerecha && !Barra.CotaParaAutoCADDerecha) { List <cBarra> Barras1 = Barras.FindAll(x => x.TraslapoIzquierda); foreach (cBarra barra in Barras1) { if (barra != Barra && XiPerteneceaX0X1(Barra.C_Barra.Reales.Min(y => y.X), Barra.C_Barra.Reales.Max(y => y.X), barra.XI)) { Barra.CotaParaAutoCADDerecha = true; barra.CotaParaAutoCADIzquierda = true; cBarra BarraPredominante = barra.C_Barra.Reales.Max(x => x.Y) > Barra.C_Barra.Reales.Max(x => x.Y) ? barra : Barra; float Ymax = BarraPredominante.C_Barra.Reales.Min(x => x.Y); float DespCota = cVariables.Desplazamiento_Cotas_RefuerzoInferior; if (UbicacionRefuerzo == eUbicacionRefuerzo.Superior) { DespCota = -cVariables.Desplazamiento_Cotas_RefuerzoSuperior; } PointF P1 = B_Operaciones_Matricialesl.Operaciones.Traslacion(new PointF(barra.C_Barra.Reales.Min(y => y.X), Ymax), X, Y); PointF P2 = B_Operaciones_Matricialesl.Operaciones.Traslacion(new PointF(Barra.C_Barra.Reales.Max(y => y.X), Ymax), X, Y); FunctionsAutoCAD.AddCota(P1, P2, cVariables.C_Cotas, cVariables.Estilo_Cotas, DespCota, DeplazaTextY: cVariables.DesplazamientoTexto_Cotas, RA: false); } } } }); } catch { } }