/// <summary> /// Crear un nuevo Polígono en 2D. /// </summary> /// <param name="VerticesList">Vertices del polígono. Ejemplo: (X1,Y1, X2,Y2, X3,Y3 X4,Y4)</param> /// <param name="Layer">Capa del Polígono</param> /// <param name="Closed">Establece si el polígono es cerrado</param> public static void AddPolyline2D(double[] VerticesList, string Layer, bool Closed = true) { if (AcadDoc != null) { AcadLWPolyline polyline = AcadDoc.ModelSpace.AddLightWeightPolyline(VerticesList); polyline.Layer = Layer; polyline.Closed = Closed; polyline.Update(); } }
/// <summary> /// Añadir un nuevo Poligono y un texto representado el largo de este. /// </summary> /// <param name="VerticesPolyline">Vertices del polígono. Ejemplo: (X1,Y1, X2,Y2, X3,Y3 X4,Y4)</param> /// <param name="LayerPolyline">Capa del Polígono</param> /// <param name="TextString">Texto adicional al largo del Polígono</param> /// <param name="PText_XYZ">Coordenadas del texto (X,Y,Z).</param> /// <param name="Width">Alto del Texto.</param> /// <param name="Height">Ancho del Texto.</param> /// <param name="LayerText">Capa del Texto.</param> /// <param name="StyleText">Estilo del Texto</param> /// <param name="Rotation">Ángulo de rotación del texto en grados </param> /// <param name="Width2">Ancho del cuadro de Texto.</param> public static void AddPolyline2DWithLengthText(double[] VerticesPolyline, string LayerPolyline, string TextString, double[] PText_XYZ, double Width, double Height, string LayerText, string StyleText, float Rotation, double Width2 = 1.3) { if (AcadDoc != null) { AcadLWPolyline polyline = AcadDoc.ModelSpace.AddLightWeightPolyline(VerticesPolyline); polyline.Layer = LayerPolyline; polyline.Update(); TextString += @"%<\AcObjProp Object(%<\_ObjId " + polyline.ObjectID + @">%).Length \f " + (char)(34) + "%lu2%pr2" + (char)(34) + ">%"; AddText(TextString, PText_XYZ, Width, Height, LayerText, StyleText, Rotation, Width2: Width2); } }
/// <summary> /// Crear un nuevo Polígono en 2D con su respectivo Relleno (Hatch). /// </summary> /// <param name="VerticesList">Vértices del Polígono</param> /// <param name="Layer">Capa del Polígono.</param> /// <param name="Pattern">Tipo de Hatch (SOILD,ANGLE,ANS31,...)</param> /// <param name="LayerHatch">Capa del Hatch</param> /// <param name="ScaleHacth">Escala del Hatch</param> /// <param name="PatternScale">Factor de escala del tipo de Hatch</param> /// <param name="PatternAngle">Angulo del tipo de Hatch</param> public static void AddPolyline2D(double[] VerticesList, string Layer, string Pattern, string LayerHatch, double ScaleHacth, double PatternScale = 0.009, float PatternAngle = 45) { if (AcadDoc != null) { AcadLWPolyline polyline = AcadDoc.ModelSpace.AddLightWeightPolyline(VerticesList); polyline.Layer = Layer; polyline.Closed = true; AddHatch((AcadEntity)polyline, Pattern, LayerHatch, ScaleHacth, PatternScale, PatternAngle); polyline.Update(); } }
/// <summary> /// Añadir un nuevo Poligono y un texto representado el largo de este. /// </summary> /// <param name="VerticesPolyline">Vertices del polígono. [System.Drawing]</param> /// <param name="LayerPolyline">Capa del Polígono</param> /// <param name="TextString">Texto adicional al largo del Polígono</param> /// <param name="PText_XYZ">Coordenadas del texto (X,Y,Z).</param> /// <param name="Width">Alto del Texto.</param> /// <param name="Height">Ancho del Texto.</param> /// <param name="LayerText">Capa del Texto.</param> /// <param name="StyleText">Estilo del Texto</param> /// <param name="Rotation">Ángulo de rotación del texto en grados </param> /// <param name="Width2">Ancho del cuadro de Texto.</param> /// <param name="JustifyText">Justificación del Texto.</param> public static void AddPolyline2DWithLengthText(PointF[] VerticesPolyline, string LayerPolyline, string TextString, double[] PText_XYZ, double Width, double Height, string LayerText, string StyleText, float Rotation, double Width2 = 1.3, JustifyText JustifyText = JustifyText.Left) { try { if (AcadDoc != null) { AcadLWPolyline polyline = AcadDoc.ModelSpace.AddLightWeightPolyline(ConvertirPuntosEnDoubles(VerticesPolyline)); polyline.Layer = LayerPolyline; polyline.Update(); TextString += @"%<\AcObjProp Object(%<\_ObjId " + polyline.ObjectID + @">%).Length \f " + (char)(34) + "%lu2%pr2" + (char)(34) + ">%"; AddText(TextString, PText_XYZ, Width, Height, LayerText, StyleText, Rotation, Width2: Width2, JustifyText: JustifyText); } } catch { NotificadorErrores?.Invoke("Error inesperado."); } }
/// <summary> /// Crear un nuevo Polígono en 2D. /// </summary> /// <param name="VerticesList">Vertices del polígono. [System.Drawing]</param> /// <param name="Layer">Capa del Polígono</param> /// <param name="Closed">Establece si el polígono es cerrado</param> public static void AddPolyline2D(PointF[] VerticesList, string Layer, bool Closed = true) { try { if (AcadDoc != null) { AcadLWPolyline polyline = AcadDoc.ModelSpace.AddLightWeightPolyline(ConvertirPuntosEnDoubles(VerticesList)); polyline.Layer = Layer; polyline.Closed = Closed; polyline.Update(); } } catch { NotificadorErrores?.Invoke("Error inesperado."); } }