// Фоматированная строка для вывода в файл версии R13 public override string ToStringOfVerR13() { string str = ToString(); str = str.Insert(str.IndexOf("10\n" + DxfHelper.DoubleToString(X)), "100\nAcDb2dVertex\n"); return(str); }
// Создание визуального представления дуги public DrawingVisual CreateVisual(double scale) { Vector center = new Vector(Center.X * scale, Center.Y * scale); double radius = Radius * scale; // найти начальную точку дуги Point startPoint = new Point(radius * Math.Cos(StartAngle * DxfHelper.DegToRad) + center.X, radius * Math.Sin(StartAngle * DxfHelper.DegToRad) + center.Y); // найти конечную точку дуги Point endPoint = new Point(radius * Math.Cos(EndAngel * DxfHelper.DegToRad) + center.X, radius * Math.Sin(EndAngel * DxfHelper.DegToRad) + center.Y); // определить угол дуги double angle = StartAngle < EndAngel ? EndAngel - StartAngle : 360 - (StartAngle - EndAngel); // установить флаг, если угол больше 180 градусов - 1, в обратном случае - 0 byte isLarge = angle > 180 ? (byte)1 : (byte)0; // сформировать строку пути string str = string.Format("M{0} {1}A{2} {2} {3} {4} {5} {6} {7}", DxfHelper.DoubleToString(startPoint.X), DxfHelper.DoubleToString(startPoint.Y), DxfHelper.DoubleToString(radius), 0, isLarge, 1, DxfHelper.DoubleToString(endPoint.X), DxfHelper.DoubleToString(endPoint.Y)); DrawingVisual visual = new DrawingVisual(); using (DrawingContext dc = visual.RenderOpen()) { // создать геометрию dc.DrawGeometry(null, new Pen(DxfHelper.GetBrush(Color), 2), Geometry.Parse(str)); } // вернуть объект DrawingVisual с созданной геометрией return(visual); }
public string ToStringOfVerR13() { string str = ToString(); str = str.Insert(str.IndexOf(Center.AsPoint.ToString()), "100\nAcDbCircle\n"); str = str.Insert(str.IndexOf("50\n" + DxfHelper.DoubleToString(StartAngle)), "100\nAcDbArc\n"); return(str); }
// Форматированная строка 2D для вывода в файл DXF public string ToStringOf2d(bool isWeight) { if (!isWeight) { return(base.ToStringOf2d()); } return("41\n" + DxfHelper.DoubleToString(Weight) + "\n" + base.ToStringOf2d()); }
// Форматированная строка для вывода в файл 2D public override string ToStringOf2d() { string str = string.Format("0\n{0}\n8\n0\n{1}", Name, base.ToStringOf2d()); if (Bulge != 0) { return(str += "42\n" + DxfHelper.DoubleToString(Bulge) + "\n"); } return(str); }
// Строка форматированная для вывода в файл DXF public override string ToString() { string str = string.Format("0\n{0}\n8\n0\n62\n{1}\n90\n{2}\n70\n{3}\n", Name, (int)Color, NumberOfVertices, Flag); foreach (DxfVertex vert in polyline.Vertexes) { str += "10\n" + DxfHelper.DoubleToString(vert.X) + "\n20\n" + DxfHelper.DoubleToString(vert.Y) + "\n"; if (vert.Bulge != 0) { str += "42\n" + DxfHelper.DoubleToString(vert.Bulge) + "\n"; } } return(str); }
// Метод создания визуального представления public DrawingVisual CreateVisual(double scale) { DrawingVisual visual = new DrawingVisual(); if (IsFull) // эллипс полный { Point center = new Point(Center.X * scale, Center.Y * scale); using (DrawingContext dc = visual.RenderOpen()) { // Создать визуальное представление эллипса dc.DrawEllipse(null, new Pen(DxfHelper.GetBrush(Color), 2.0), center, majorRadius * scale, minorRadius * scale); } // задать трансформацию объекту DrawingVisual visual.Transform = new RotateTransform(); // определить центр поворота эллипса (visual.Transform as RotateTransform).CenterX = center.X; (visual.Transform as RotateTransform).CenterY = center.Y; // задать угол поворота (visual.Transform as RotateTransform).Angle = rotateAngle; } else // часть эллипса { Vector startPoint = GetVector(StartParam, scale, rotateAngle); // найти начальную точку эллипса Vector endPoint = GetVector(EndParam, scale, rotateAngle); // найти конечную точку byte isLarge = EndParam - StartParam > DxfHelper.Pi ? (byte)1 : (byte)0; // определить большая дуга или нет // создать строку пути для эллиптической дуги string str = string.Format("M{0} {1}A{2} {3} {4} {5} {6} {7} {8}", DxfHelper.DoubleToString(startPoint.X), DxfHelper.DoubleToString(startPoint.Y), DxfHelper.DoubleToString(majorRadius * scale), DxfHelper.DoubleToString(minorRadius * scale), DxfHelper.DoubleToString(rotateAngle), isLarge, 1, DxfHelper.DoubleToString(endPoint.X), DxfHelper.DoubleToString(endPoint.Y)); using (DrawingContext dc = visual.RenderOpen()) { // создать визуальное представление для эллиптической дуги dc.DrawGeometry(null, new Pen(DxfHelper.GetBrush(Color), 2), Geometry.Parse(str)); } } return(visual); }
// Формирование строки для вывода в файл DXF public override string ToString() { return(string.Format("0\n{0}\n8\n0\n{1}40\n{2}\n62\n{3}\n", Name, Center.AsPoint.ToString(), DxfHelper.DoubleToString(Radius), (int)Color)); }
// Формирование строки для вывода в файл DXF public override string ToString() { return(string.Format("0\n{0}\n8\n0\n62\n{1}\n{2}40\n{3}\n50\n{4}\n51\n{5}\n", Name, (int)Color, Center.AsPoint.ToString(), DxfHelper.DoubleToString(Radius), DxfHelper.DoubleToString(StartAngle), DxfHelper.DoubleToString(EndAngel))); }
public override string ToStringOf2d() { return(string.Format("13\n{0}\n23\n{1}\n", DxfHelper.DoubleToString(X), DxfHelper.DoubleToString(Y))); }
public override string ToString() { return(string.Format("11\n{0}\n21\n{1}\n31\n{2}\n", DxfHelper.DoubleToString(X), DxfHelper.DoubleToString(Y), DxfHelper.DoubleToString(Z))); }
// Создание форматированной строки для вывода в файл DXF public override string ToString() { string str = string.Format("10\n{0}\n20\n{1}\n", DxfHelper.DoubleToString(X), DxfHelper.DoubleToString(Y)); return(str); }
public override string ToString() { return(string.Format("210\n{0}\n220\n{1}\n230\n{0}\n", DxfHelper.DoubleToString(X), DxfHelper.DoubleToString(Y), DxfHelper.DoubleToString(Z))); }
// Создание форматированной строки для вывода в файл DXF public override string ToString() { return(string.Format("0\n{0}\n8\n0\n62\n{1}\n{2}{3}40\n{4}\n41\n{5}\n42\n{6}\n", Name, (int)Color, Center.AsPoint.ToString(), MajorAxis.ToStringOf2d(), DxfHelper.DoubleToString(Ratio), DxfHelper.DoubleToString(StartParam), DxfHelper.DoubleToString(EndParam))); }