public override void ExportAsDXF(DXFExport ADXFExport) { DXFPoint dXFPoint = new DXFPoint(); if ((this.boundaries != null || this.boundaryType != HatchBoundaryType.hbtPolyPolyline) && (this.boundaries.Count != 0 || this.boundaryType != HatchBoundaryType.hbtPolyPolyline)) { dXFPoint.X = 0f; dXFPoint.Y = 0f; float aDXFExport = 0.05f; if (!DXFExport.use01MM) { aDXFExport = aDXFExport * ADXFExport.fOffset; } ADXFExport.AddName(DXFTables.sHatchEntity, "AcDbHatch"); ADXFExport.AddColor(this.data); ADXFExport.Add3DPoint(10, dXFPoint); ADXFExport.AddFloat(30, 0f); ADXFExport.AddFloat(210, 0f); ADXFExport.AddFloat(220, 0f); ADXFExport.AddFloat(230, 1f); ADXFExport.AddString(2, this.patternName); ADXFExport.AddInt(70, this.data.flags); ADXFExport.AddInt(71, 0); this.AddBoundaryPathData(ADXFExport); ADXFExport.AddInt(75, 0); ADXFExport.AddInt(76, 1); if (this.data.flags == 0) { this.AddPatternData(aDXFExport, ADXFExport); } ADXFExport.AddInt(98, 1); ADXFExport.AddPoint(10, dXFPoint); } }
public bool Splitting(IntPtr Handle, string FileName) { MetaForm.vDXF = new DXFExport(); MetaForm.Data = new DXFData(); MetaForm.vDXF.fOffset = 50f; float[] singleArray = new float[] { 5f, default(float) }; MetaForm.vDXF.AddLType("_SOLID", singleArray); MetaForm.vDXF.AddLType("_DASH", new float[] { 5f, -2f }); MetaForm.vDXF.AddLType("_DOT", new float[] { 2f, -2f }); MetaForm.vDXF.AddLType("_DASHDOT", new float[] { 5f, -2f, 2f, -2f }); MetaForm.vDXF.AddLType("_DASHDOTDOT", new float[] { 5f, -2f, 2f, -2f, 2f, -2f }); MetaForm.Data = new DXFData() { height = 50f, rotation = 0f }; MetaForm.Data.point.X = 57f; MetaForm.Data.point.Y = 0f; MetaForm.Data.color = 1; MetaForm.Data.text = "Trial version"; MetaForm.vDXF.AddText(MetaForm.Data); Graphics graphic = Graphics.FromHwnd(Handle); Graphics graphic1 = graphic; using (graphic) { graphic1.EnumerateMetafile(this.mf, new Point(0, 0), new Rectangle(0, 0, this.mf.Width, this.mf.Height), GraphicsUnit.Pixel, new Graphics.EnumerateMetafileProc(MetaForm.DelFunc)); } graphic1.Dispose(); MetaForm.vDXF.SaveToFile(FileName); return(true); }
private static void AddPolyBez(ArrayList obj) { MetaForm.Data.Clear(); MetaForm.Data.count = obj.Count; Color color = Color.FromArgb(MetaForm.r, MetaForm.g, MetaForm.b); MetaForm.Data.color = DXFExport.ColorToDXF(color); MetaForm.Data.points = new ArrayList(); MetaForm.Data.points.Add(new ArrayList()); for (int i = 0; i < obj.Count; i++) { DXFPoint dXFPoint = new DXFPoint(); PointF item = (PointF)obj[i]; dXFPoint.X = item.X; item = (PointF)obj[i]; dXFPoint.Y = -item.Y + (float)MetaForm.imgHeight; dXFPoint.Z = 0f; if (MetaForm.transform) { DXFPoint x = dXFPoint; x.X = x.X + MetaForm.transPoint.X; DXFPoint y = dXFPoint; y.Y = y.Y + MetaForm.transPoint.Y; } ((ArrayList)MetaForm.Data.points[0]).Add(dXFPoint); } MetaForm.vDXF.AddPolyBezier(MetaForm.Data, 0); }
private static void DrawRectangle(byte[] arr, byte cn, bool hatch) { float x = MetaForm.Format_Size2(arr[cn], arr[cn + 1]); float y = MetaForm.Format_Size2(arr[cn + 2], arr[cn + 3]); float single = MetaForm.Format_Size2(arr[cn + 4], arr[cn + 5]); float single1 = MetaForm.Format_Size2(arr[cn + 6], arr[cn + 7]); if (MetaForm.transform) { x = x + MetaForm.transPoint.X; y = y + MetaForm.transPoint.Y; } MetaForm.Data.Clear(); MetaForm.Data.color = DXFExport.ColorToDXF(Color.FromArgb(MetaForm.r, MetaForm.g, MetaForm.b)); MetaForm.SetLineStyle((int)MetaForm.line_style); MetaForm.Data.thickness = MetaForm.obj_width; MetaForm.Data.point.X = x; MetaForm.Data.point.Y = -y + (float)MetaForm.imgHeight; MetaForm.Data.point1.X = single + x; MetaForm.Data.point1.Y = -single1 - y + (float)MetaForm.imgHeight; if (!hatch) { MetaForm.vDXF.AddRectangle(MetaForm.Data); return; } MetaForm.Data.count = 1; MetaForm.Data.points.Add(new ArrayList()); DXFPoint dXFPoint = new DXFPoint() { X = MetaForm.Data.point.X, Y = MetaForm.Data.point.Y, Z = 0f }; ((ArrayList)MetaForm.Data.points[0]).Add(dXFPoint); dXFPoint = new DXFPoint() { X = MetaForm.Data.point1.X, Y = MetaForm.Data.point.Y, Z = 0f }; ((ArrayList)MetaForm.Data.points[0]).Add(dXFPoint); dXFPoint = new DXFPoint() { X = MetaForm.Data.point1.X, Y = MetaForm.Data.point1.Y, Z = 0f }; ((ArrayList)MetaForm.Data.points[0]).Add(dXFPoint); dXFPoint = new DXFPoint() { X = MetaForm.Data.point.X, Y = MetaForm.Data.point1.Y, Z = 0f }; ((ArrayList)MetaForm.Data.points[0]).Add(dXFPoint); MetaForm.SetHatchStyle(MetaForm.hatch_style); MetaForm.Data.selfType = 0; MetaForm.vDXF.AddHatch(MetaForm.Data); }
public override void ExportAsDXF(DXFExport ADXFExport) { ADXFExport.AddName("TEXT", "AcDbText"); ADXFExport.AddColor(this.data); ADXFExport.Add3DPoint(10, this.data.point); ADXFExport.AddFloat(40, ADXFExport.MM(this.data.height)); if (this.data.fScale != 0f) { ADXFExport.AddFloat(41, this.data.fScale); } if (this.data.rotation != 0f) { ADXFExport.AddFloat(50, this.data.rotation); } if (this.data.flags != 0) { ADXFExport.AddFloat(51, 15f); } if (this.data.hAlign != 0 || this.data.vAlign != 0) { if (this.data.hAlign != 0) { ADXFExport.AddInt(72, (int)this.data.hAlign); } ADXFExport.Add3DPoint(11, this.data.point1); } ADXFExport.current.Add(" 1"); ADXFExport.current.Add(this.data.text); ADXFExport.current.Add("100"); ADXFExport.current.Add("AcDbText"); if (this.data.vAlign != 0) { ADXFExport.AddInt(73, (int)this.data.vAlign); } }
private static void DrawString(byte[] arr) { string str = ""; float x = (float)MetaForm.TextPos((int)arr[14], (int)arr[15]); float y = (float)MetaForm.TextPos((int)arr[18], (int)arr[19]); if (MetaForm.transform) { x = x + MetaForm.transPoint.X; y = y + MetaForm.transPoint.Y; } for (int i = 0; i < arr[8] * 2; i = i + 2) { str = string.Concat(str, Convert.ToChar(arr[28 + i])); } MetaForm.Data.Clear(); MetaForm.Data.point.X = x; MetaForm.Data.point.Y = y; MetaForm.Data.color = DXFExport.ColorToDXF(Color.FromArgb(MetaForm.r, MetaForm.g, MetaForm.b)); MetaForm.Data.height = MetaForm.text_size; MetaForm.Data.rotation = 0f; MetaForm.Data.text = str; MetaForm.SetTextStyle(MetaForm.text_style); MetaForm.Data.point.Y = -MetaForm.Data.point.Y + (float)MetaForm.imgHeight; MetaForm.vDXF.AddMText(MetaForm.Data); }
private static void DrawLine(byte[] arr, byte cn) { float x = MetaForm.Format_Size2(arr[cn], arr[cn + 1]); float y = MetaForm.Format_Size2(arr[cn + 2], arr[cn + 3]); float single = MetaForm.Format_Size2(arr[cn + 4], arr[cn + 5]); float y1 = MetaForm.Format_Size2(arr[cn + 6], arr[cn + 7]); if (MetaForm.transform) { x = x + MetaForm.transPoint.X; y = y + MetaForm.transPoint.Y; single = single + MetaForm.transPoint.X; y1 = y1 + MetaForm.transPoint.Y; } MetaForm.Data.Clear(); Color color = Color.FromArgb(MetaForm.r, MetaForm.g, MetaForm.b); MetaForm.Data.color = DXFExport.ColorToDXF(color); MetaForm.SetLineStyle((int)MetaForm.line_style); MetaForm.Data.thickness = MetaForm.obj_width; MetaForm.Data.point1.X = x; MetaForm.Data.point1.Y = -y + (float)MetaForm.imgHeight; MetaForm.Data.point.X = single; MetaForm.Data.point.Y = -y1 + (float)MetaForm.imgHeight; MetaForm.vDXF.AddLine(MetaForm.Data); }
public override void ExportAsDXF(DXFExport ADXFExport) { ADXFExport.BeginPoly(this.data, this.data.points.Count); for (int i = 0; i < this.data.points.Count; i++) { ADXFExport.AddVertex((DXFPoint)this.data.points[i]); } }
public override void ExportAsDXF(DXFExport ADXFExport) { ADXFExport.AddName("LINE", "AcDbLine"); ADXFExport.AddColor(this.data); ADXFExport.AddThickness(this.data); ADXFExport.Add3DPoint(10, this.data.point); ADXFExport.Add3DPoint(11, this.data.point1); }
public override void ExportAsDXF(DXFExport ADXFExport) { ADXFExport.AddName("SOLID", "AcDbTrace"); ADXFExport.AddColor(this.data); ADXFExport.Add3DPoint(10, this.data.point); ADXFExport.Add3DPoint(11, this.data.point1); ADXFExport.Add3DPoint(12, this.data.point2); ADXFExport.Add3DPoint(13, this.data.point3); }
public override void ExportAsDXF(DXFExport ADXFExport) { ADXFExport.BeginPoly(this.data, 4); ADXFExport.AddVertex(this.data.point); ADXFExport.AddVertex(new DXFPoint(this.data.point1.X, this.data.point.Y, 0f)); ADXFExport.AddVertex(this.data.point1); ADXFExport.AddVertex(new DXFPoint(this.data.point.X, this.data.point1.Y, 0f)); ADXFExport.AddVertex(this.data.point); }
private void method_0(IPointCollection ipointCollection_0, DXFExport dxfexport_0) { DXFData dXFDatum = new DXFData(); DXFPoint dXFPoint = new DXFPoint(); dXFDatum.points.Add(new ArrayList()); dXFDatum.count = ipointCollection_0.PointCount; for (int i = 0; i < ipointCollection_0.PointCount; i++) { IPoint point = ipointCollection_0.Point[i]; ((ArrayList)dXFDatum.points[0]).Add(new DXFPoint((float)point.X, (float)point.Y, 0f)); } dxfexport_0.AddPolyLine(dXFDatum, 0); }
public override void ExportAsDXF(DXFExport ADXFExport) { int i; if ((this.data.points.Count - 4) % 3 != 0) { base.ExportAsDXF(ADXFExport); return; } int count = this.data.points.Count - 1 + (int)Math.Floor((double)(this.data.points.Count / 3)); float single = 1f / (float)count; ADXFExport.AddName("SPLINE", "AcDbSpline"); ADXFExport.AddColor(this.data); ADXFExport.AddThickness(this.data); ADXFExport.Add3DPoint(210, new DXFPoint(0f, 0f, 1f)); ADXFExport.AddInt(70, 8); ADXFExport.AddInt(71, 3); ADXFExport.AddInt(72, count + DXFTables.cnstAmount); ADXFExport.AddInt(73, count); ADXFExport.AddInt(74, 0); ADXFExport.AddFloat(42, 1E-07f); ADXFExport.AddFloat(43, 1E-07f); int j = 0; float single1 = 0f; while (j < count) { for (i = 0; i < DXFTables.cnstAmount; i++) { ADXFExport.AddFloat(40, single1); } single1 = single1 + single; j = j + DXFTables.cnstAmount; } single1 = 1f; for (i = 0; i < DXFTables.cnstAmount; i++) { ADXFExport.AddFloat(40, single1); } for (j = 0; j < this.data.points.Count; j++) { ADXFExport.Add3DPoint(10, (DXFPoint)this.data.points[j]); if (j % 3 == 0 && j != 0 && j != this.data.points.Count - 1) { ADXFExport.Add3DPoint(10, (DXFPoint)this.data.points[j]); } } }
public override void ExportAsDXF(DXFExport ADXFExport) { ADXFExport.AddString(0, "LAYER"); ADXFExport.AddHandle(); ADXFExport.AddString(330, DXFTables.STablesLAYER[7]); ADXFExport.AddString(100, "AcDbSymbolTableRecord"); ADXFExport.AddString(100, "AcDbLayerTableRecord"); ADXFExport.AddString(2, this.name); ADXFExport.AddInt(70, (int)this.flags); ADXFExport.AddInt(62, this.color); ADXFExport.AddString(6, this.lineTypeName); if (DXFExport.autoCADVer != AutoCADVersion.R14) { ADXFExport.AddInt(370, this.lineWeight); ADXFExport.AddString(390, DXFTables.SObjects_R2000[95]); } }
public override void ExportAsDXF(DXFExport ADXFExport) { ADXFExport.AddName("MTEXT", "AcDbMText"); ADXFExport.AddColor(this.data); ADXFExport.Add3DPoint(10, this.data.point); ADXFExport.AddFloat(40, ADXFExport.MM(this.data.height)); if (this.data.rotation != 0f) { ADXFExport.AddFloat(50, this.data.rotation); } if (this.data.hAlign != 0) { ADXFExport.AddInt(71, this.data.hAlign + 1); } ADXFExport.current.Add(" 1"); ADXFExport.current.Add(this.data.text); }
public override void ExportAsDXF(DXFExport ADXFExport) { if (!this.ellipse) { ADXFExport.AddName("CIRCLE", "AcDbCircle"); ADXFExport.AddColor(this.data); ADXFExport.AddThickness(this.data); ADXFExport.Add3DPoint(10, this.data.point); ADXFExport.AddFloat(40, ADXFExport.MM(this.data.radius)); return; } ADXFExport.AddName("ELLIPSE", "AcDbEllipse"); ADXFExport.AddColor(this.data); ADXFExport.AddThickness(this.data); ADXFExport.Add3DPoint(10, this.data.point); ADXFExport.Add3DPoint(11, this.data.point1); ADXFExport.AddFloat(40, this.data.radius); }
private static void DrawCircle(byte[] arr, byte cn, bool hatch) { float x = MetaForm.Format_Size2(arr[cn], arr[cn + 1]); float y = MetaForm.Format_Size2(arr[cn + 2], arr[cn + 3]); float single = MetaForm.Format_Size2(arr[cn + 4], arr[cn + 5]); float single1 = MetaForm.Format_Size2(arr[cn + 6], arr[cn + 7]); if (MetaForm.transform) { x = x + MetaForm.transPoint.X; y = y + MetaForm.transPoint.Y; } MetaForm.Data.Clear(); MetaForm.Data.color = DXFExport.ColorToDXF(Color.FromArgb(MetaForm.r, MetaForm.g, MetaForm.b)); MetaForm.Data.thickness = MetaForm.obj_width; MetaForm.Data.point.X = x; MetaForm.Data.point.Y = -y + (float)MetaForm.imgHeight; MetaForm.Data.point1.X = single + x; MetaForm.Data.point1.Y = -single1 - y + (float)MetaForm.imgHeight; MetaForm.Data.radius = (MetaForm.Data.point1.X - MetaForm.Data.point.X) / 2f; DXFPoint data = MetaForm.Data.point; data.Y = data.Y - MetaForm.Data.radius; DXFPoint dXFPoint = MetaForm.Data.point1; dXFPoint.Y = dXFPoint.Y - MetaForm.Data.radius; DXFPoint data1 = MetaForm.Data.point; data1.X = data1.X + MetaForm.Data.radius; DXFPoint x1 = MetaForm.Data.point1; x1.X = x1.X + MetaForm.Data.radius; MetaForm.SetLineStyle((int)MetaForm.line_style); if (!hatch) { MetaForm.vDXF.AddCircle(MetaForm.Data); return; } MetaForm.Data.startAngle = 0f; MetaForm.Data.endAngle = 360f; MetaForm.SetHatchStyle(MetaForm.hatch_style); MetaForm.Data.selfType = 1; MetaForm.vDXF.AddHatch(MetaForm.Data); }
public override void ExportAsDXF(DXFExport ADXFExport) { switch (this.type) { case ArcType.atCircle: { ADXFExport.AddName("ARC", "AcDbCircle"); ADXFExport.AddColor(this.data); ADXFExport.AddThickness(this.data); ADXFExport.Add3DPoint(10, this.data.point); ADXFExport.AddFloat(40, ADXFExport.MM(this.data.radius)); ADXFExport.current.Add("100"); ADXFExport.current.Add("AcDbArc"); ADXFExport.AddFloat(50, this.data.startAngle); ADXFExport.AddFloat(51, this.data.endAngle); return; } case ArcType.atEllipse: { ADXFExport.AddName("ELLIPSE", "AcDbEllipse"); ADXFExport.AddColor(this.data); ADXFExport.AddThickness(this.data); ADXFExport.Add3DPoint(10, this.data.point); ADXFExport.Add3DPoint(11, this.data.point1); ADXFExport.AddFloat(40, this.data.radius); if (Math.Abs((float)(this.data.startAngle - this.data.endAngle)) > DXFExport.accuracy) { ADXFExport.AddFloat(41, this.data.startAngle); ADXFExport.AddFloat(42, this.data.endAngle); } return; } default: { return; } } }
private static void DrawArc(byte[] arr) { float single = MetaForm.FormatSize((int)arr[2], (int)arr[3]); float single1 = MetaForm.FormatSize((int)arr[6], (int)arr[7]); float x = MetaForm.Format_Size2(arr[8], arr[9]); float y = MetaForm.Format_Size2(arr[10], arr[11]); float single2 = MetaForm.Format_Size2(arr[12], arr[13]); float single3 = MetaForm.Format_Size2(arr[14], arr[15]); if (MetaForm.transform) { x = x + MetaForm.transPoint.X; y = y + MetaForm.transPoint.Y; } MetaForm.Data.Clear(); MetaForm.SetLineStyle((int)MetaForm.line_style); MetaForm.Data.thickness = MetaForm.obj_width; MetaForm.Data.color = DXFExport.ColorToDXF(Color.FromArgb(MetaForm.r, MetaForm.g, MetaForm.b)); MetaForm.Data.point.X = x; MetaForm.Data.point.Y = -y + (float)MetaForm.imgHeight; MetaForm.Data.point1.X = single2 + x; MetaForm.Data.point1.Y = -single3 - y + (float)MetaForm.imgHeight; MetaForm.Data.radius = (MetaForm.Data.point1.X - MetaForm.Data.point.X) / 2f; DXFPoint data = MetaForm.Data.point; data.Y = data.Y - MetaForm.Data.radius; DXFPoint dXFPoint = MetaForm.Data.point1; dXFPoint.Y = dXFPoint.Y - MetaForm.Data.radius; DXFPoint data1 = MetaForm.Data.point; data1.X = data1.X + MetaForm.Data.radius; DXFPoint x1 = MetaForm.Data.point1; x1.X = x1.X + MetaForm.Data.radius; MetaForm.Data.startAngle = -single1 - single; MetaForm.Data.endAngle = -single; MetaForm.Data.selfType = 0; MetaForm.vDXF.AddArc(MetaForm.Data); }
private static void DrawLine(PointF p1, PointF p2) { MetaForm.Data.Clear(); Color color = Color.FromArgb(MetaForm.r, MetaForm.g, MetaForm.b); MetaForm.Data.color = DXFExport.ColorToDXF(color); MetaForm.Data.point1.X = p1.X; MetaForm.Data.point1.Y = -p1.Y + (float)MetaForm.imgHeight; MetaForm.Data.point.X = p2.X; MetaForm.Data.point.Y = -p2.Y + (float)MetaForm.imgHeight; if (MetaForm.transform) { DXFPoint data = MetaForm.Data.point1; data.X = data.X + MetaForm.transPoint.X; DXFPoint y = MetaForm.Data.point1; y.Y = y.Y + MetaForm.transPoint.Y; DXFPoint x = MetaForm.Data.point; x.X = x.X + MetaForm.transPoint.X; DXFPoint dXFPoint = MetaForm.Data.point; dXFPoint.Y = dXFPoint.Y + MetaForm.transPoint.Y; } MetaForm.vDXF.AddLine(MetaForm.Data); }
private static void DrawPolyLine(byte[] arr, byte cn, bool hatch, bool bezier) { MetaForm.Data.Clear(); Color color = Color.FromArgb(MetaForm.r, MetaForm.g, MetaForm.b); MetaForm.Data.color = DXFExport.ColorToDXF(color); MetaForm.SetLineStyle((int)MetaForm.line_style); MetaForm.Data.thickness = MetaForm.obj_width; MetaForm.Data.points.Add(new ArrayList()); MetaForm.Data.count = arr[cn]; for (int i = 4; i < arr[cn] * 4 + 4; i = i + 4) { float x = MetaForm.Format_Size2(arr[cn + i], arr[cn + i + 1]); float y = MetaForm.Format_Size2(arr[cn + i + 2], arr[cn + i + 3]); if (MetaForm.transform) { x = x + MetaForm.transPoint.X; y = y + MetaForm.transPoint.Y; } y = -y + (float)MetaForm.imgHeight; ((ArrayList)MetaForm.Data.points[0]).Add(new DXFPoint(x, y, 0f)); } if (hatch) { MetaForm.SetHatchStyle(MetaForm.hatch_style); MetaForm.Data.selfType = 0; MetaForm.vDXF.AddHatch(MetaForm.Data); return; } if (bezier) { MetaForm.vDXF.AddPolyBezier(MetaForm.Data, 0); return; } MetaForm.vDXF.AddPolyLine(MetaForm.Data, 0); }
public void ParseToTexts(Rect aRect, ArrayList NewElemes) { int num; float x; string pourStr = ""; string str = ""; string str1 = ""; DXFData dXFDatum = new DXFData(); if (this.data.rotation == 0f) { dXFDatum = (DXFData)this.data.Clone(); if ((float)aRect.X1 > dXFDatum.point.X) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); num = (int) Math.Round( (double)((float)pourStr.Length * (((float)aRect.X1 - dXFDatum.point.X) / dXFDatum.rWidth))); for (int i = 0; i < num; i++) { str = string.Concat(str, pourStr[i]); } pourStr = string.Concat(str1, str); dXFDatum.rWidth = this.data.rWidth * (float)num / (float)pourStr.Length; dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } dXFDatum = (DXFData)this.data.Clone(); str = ""; if ((float)aRect.X2 < dXFDatum.point.X + dXFDatum.rWidth) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); x = (dXFDatum.point.X + dXFDatum.rWidth - (float)aRect.X2) / dXFDatum.rWidth; num = (int)Math.Round((double)((float)pourStr.Length * x)); DXFPoint dXFPoint = dXFDatum.point; dXFPoint.X = dXFPoint.X + (dXFDatum.rWidth - dXFDatum.rWidth * x); for (int j = pourStr.Length; j < pourStr.Length - num + 1; j--) { str = string.Concat(pourStr[j], str); } pourStr = string.Concat(str1, str); dXFDatum.rWidth = dXFDatum.rWidth * (float)num / (float)pourStr.Length; dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } } if (this.data.rotation == 90f) { dXFDatum = (DXFData)this.data.Clone(); if ((float)aRect.X1 > dXFDatum.point.X) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); num = (int) Math.Round( (double)((float)pourStr.Length * (((float)aRect.X1 - dXFDatum.point.X) / dXFDatum.rWidth))); for (int k = 0; k < num; k++) { str = string.Concat(str, pourStr[k]); } pourStr = string.Concat(str1, str); dXFDatum.rWidth = dXFDatum.rWidth * (float)num / (float)pourStr.Length; dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } dXFDatum = (DXFData)this.data.Clone(); str = ""; if ((float)aRect.X2 < dXFDatum.point.X + dXFDatum.rWidth) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); x = (dXFDatum.point.X + dXFDatum.rWidth - (float)aRect.X2) / dXFDatum.rWidth; num = (int)Math.Round((double)((float)pourStr.Length * x)); DXFPoint x1 = dXFDatum.point; x1.X = x1.X + (dXFDatum.rWidth - dXFDatum.rWidth * x); DXFPoint y = dXFDatum.point; y.Y = y.Y + (dXFDatum.rWidth - dXFDatum.rWidth * x); for (int l = pourStr.Length; l < pourStr.Length - num + 1; l--) { str = string.Concat(pourStr[l], str); } pourStr = string.Concat(str1, str); dXFDatum.rWidth = dXFDatum.rWidth * (float)num / (float)pourStr.Length; dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } } if (this.data.rotation == 270f) { dXFDatum = (DXFData)this.data.Clone(); if ((float)aRect.Y2 < dXFDatum.point.Y) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); num = (int) Math.Round( (double)((float)pourStr.Length * ((dXFDatum.point.Y - (float)aRect.Y2) / dXFDatum.rWidth))); for (int m = 0; m < num; m++) { str = string.Concat(str, pourStr[m]); } dXFDatum.rWidth = dXFDatum.rWidth * (float)num / (float)pourStr.Length; pourStr = string.Concat(str1, str); dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } dXFDatum = this.data; str = ""; if ((float)aRect.Y1 > dXFDatum.point.Y - dXFDatum.rWidth) { pourStr = DXFExport.GetPourStr(dXFDatum.text); str1 = dXFDatum.text.Substring(0, dXFDatum.text.Length - pourStr.Length); x = (dXFDatum.rWidth - dXFDatum.point.Y + (float)aRect.Y1) / dXFDatum.rWidth; num = (int)Math.Round((double)((float)pourStr.Length * x)); DXFPoint y1 = dXFDatum.point; y1.Y = y1.Y - (dXFDatum.rWidth - dXFDatum.rWidth * x); for (int n = pourStr.Length; n < pourStr.Length - num + 1; n--) { str = string.Concat(pourStr[n], str); } dXFDatum.rWidth = dXFDatum.rWidth * (float)num / (float)pourStr.Length; pourStr = string.Concat(str1, str); dXFDatum.text = pourStr; NewElemes.Add(new DXFMText(dXFDatum)); } } }
private static void DrawEllArc(byte[] arr) { float single = MetaForm.FormatSize((int)arr[2], (int)arr[3]); float single1 = MetaForm.FormatSize((int)arr[6], (int)arr[7]); float x = MetaForm.Format_Size2(arr[8], arr[9]); float y = MetaForm.Format_Size2(arr[10], arr[11]); float single2 = MetaForm.Format_Size2(arr[12], arr[13]); float single3 = MetaForm.Format_Size2(arr[14], arr[15]); if (MetaForm.transform) { x = x + MetaForm.transPoint.X; y = y + MetaForm.transPoint.Y; } MetaForm.Data.Clear(); MetaForm.SetLineStyle((int)MetaForm.line_style); MetaForm.Data.color = DXFExport.ColorToDXF(Color.FromArgb(MetaForm.r, MetaForm.g, MetaForm.b)); MetaForm.Data.thickness = MetaForm.obj_width; MetaForm.Data.point.X = x; MetaForm.Data.point.Y = -y + (float)MetaForm.imgHeight; MetaForm.Data.point1.X = single2 + x; MetaForm.Data.point1.Y = -single3 - y + (float)MetaForm.imgHeight; MetaForm.Data.radius = (MetaForm.Data.point1.X - MetaForm.Data.point.X) / 2f; DXFPoint data = MetaForm.Data.point; data.Y = data.Y - MetaForm.Data.radius; DXFPoint dXFPoint = MetaForm.Data.point1; dXFPoint.Y = dXFPoint.Y - MetaForm.Data.radius; DXFPoint data1 = MetaForm.Data.point; data1.X = data1.X + MetaForm.Data.radius; DXFPoint x1 = MetaForm.Data.point1; x1.X = x1.X + MetaForm.Data.radius; if (single2 <= single3) { DXFPoint y1 = MetaForm.Data.point; y1.Y = y1.Y - (single3 - single2) / 2f; DXFPoint dXFPoint1 = MetaForm.Data.point1; dXFPoint1.Y = dXFPoint1.Y - (single3 - single2) / 2f; } else { DXFPoint data2 = MetaForm.Data.point; data2.Y = data2.Y + (single2 - single3) / 2f; DXFPoint y2 = MetaForm.Data.point1; y2.Y = y2.Y + (single2 - single3) / 2f; } MetaForm.Data.point1.X = (MetaForm.Data.point1.X - MetaForm.Data.point.X) / 2f; MetaForm.Data.point1.Y = (MetaForm.Data.point1.Y - MetaForm.Data.point.Y) / 2f; if (MetaForm.Data.radius < MetaForm.Data.point1.Y) { MetaForm.Data.radius = MetaForm.Data.point1.Y; } DXFPoint x2 = MetaForm.Data.point1; x2.X = x2.X / MetaForm.Data.radius; DXFPoint dXFPoint2 = MetaForm.Data.point1; dXFPoint2.Y = dXFPoint2.Y / MetaForm.Data.radius; if (MetaForm.Data.point1.X <= MetaForm.Data.point1.Y) { MetaForm.Data.point1.Y = MetaForm.Data.radius; MetaForm.Data.radius = MetaForm.Data.point1.X; MetaForm.Data.point1.X = 0f; } else { MetaForm.Data.point1.X = MetaForm.Data.radius; MetaForm.Data.radius = MetaForm.Data.point1.Y; MetaForm.Data.point1.Y = 0f; } MetaForm.Data.selfType = 1; MetaForm.Data.startAngle = single * MetaForm.rad; MetaForm.Data.endAngle = (single1 + single) * MetaForm.rad; MetaForm.vDXF.AddArc(MetaForm.Data); }
private static void DrawEllipse(byte[] arr, byte cn, bool hatch) { float x = MetaForm.Format_Size2(arr[cn], arr[cn + 1]); float y = MetaForm.Format_Size2(arr[cn + 2], arr[cn + 3]); float single = MetaForm.Format_Size2(arr[cn + 4], arr[cn + 5]); float single1 = MetaForm.Format_Size2(arr[cn + 6], arr[cn + 7]); if (MetaForm.transform) { x = x + MetaForm.transPoint.X; y = y + MetaForm.transPoint.Y; } MetaForm.Data.Clear(); MetaForm.SetLineStyle((int)MetaForm.line_style); MetaForm.Data.color = DXFExport.ColorToDXF(Color.FromArgb(MetaForm.r, MetaForm.g, MetaForm.b)); MetaForm.Data.thickness = MetaForm.obj_width; MetaForm.Data.point.X = x; MetaForm.Data.point.Y = -y + (float)MetaForm.imgHeight; MetaForm.Data.point1.X = single + x; MetaForm.Data.point1.Y = -single1 - y + (float)MetaForm.imgHeight; MetaForm.Data.radius = (MetaForm.Data.point1.X - MetaForm.Data.point.X) / 2f; DXFPoint data = MetaForm.Data.point; data.Y = data.Y - MetaForm.Data.radius; DXFPoint dXFPoint = MetaForm.Data.point1; dXFPoint.Y = dXFPoint.Y - MetaForm.Data.radius; DXFPoint data1 = MetaForm.Data.point; data1.X = data1.X + MetaForm.Data.radius; DXFPoint x1 = MetaForm.Data.point1; x1.X = x1.X + MetaForm.Data.radius; if (single <= single1) { DXFPoint y1 = MetaForm.Data.point; y1.Y = y1.Y - (single1 - single) / 2f; DXFPoint dXFPoint1 = MetaForm.Data.point1; dXFPoint1.Y = dXFPoint1.Y - (single1 - single) / 2f; } else { DXFPoint data2 = MetaForm.Data.point; data2.Y = data2.Y + (single - single1) / 2f; DXFPoint y2 = MetaForm.Data.point1; y2.Y = y2.Y + (single - single1) / 2f; } MetaForm.Data.point1.X = (MetaForm.Data.point1.X - MetaForm.Data.point.X) / 2f; MetaForm.Data.point1.Y = (MetaForm.Data.point1.Y - MetaForm.Data.point.Y) / 2f; if (MetaForm.Data.radius < MetaForm.Data.point1.Y) { MetaForm.Data.radius = MetaForm.Data.point1.Y; } DXFPoint x2 = MetaForm.Data.point1; x2.X = x2.X / MetaForm.Data.radius; DXFPoint dXFPoint2 = MetaForm.Data.point1; dXFPoint2.Y = dXFPoint2.Y / MetaForm.Data.radius; if (MetaForm.Data.point1.X <= MetaForm.Data.point1.Y) { MetaForm.Data.point1.Y = MetaForm.Data.radius; MetaForm.Data.radius = MetaForm.Data.point1.X; MetaForm.Data.point1.X = 0f; } else { MetaForm.Data.point1.X = MetaForm.Data.radius; MetaForm.Data.radius = MetaForm.Data.point1.Y; MetaForm.Data.point1.Y = 0f; } if (!hatch) { MetaForm.vDXF.AddEllipse(MetaForm.Data); return; } MetaForm.Data.startAngle = 0f; MetaForm.Data.endAngle = 6.283185f; MetaForm.SetHatchStyle(MetaForm.hatch_style); MetaForm.Data.selfType = 2; MetaForm.vDXF.AddHatch(MetaForm.Data); }
public override void ExportAsDXF(DXFExport ADXFExport) { ADXFExport.AddName("POINT", "AcDbPoint"); ADXFExport.AddColor(this.data); ADXFExport.Add3DPoint(10, this.data.point); }
public bool Export() { bool flag; if (this.ilist_0 == null) { flag = false; } else if (this.ilist_0.Count != 0) { DXFExport dXFExport = new DXFExport(); if (this.string_1 == "R2000") { DXFExport.autoCADVer = DXF.AutoCADVersion.R2000; } else if (this.string_1 == "R14") { DXFExport.autoCADVer = 0; } float[] singleArray = new float[] { 5f, default(float) }; dXFExport.AddLType("_SOLID", singleArray); singleArray = new float[] { 5f, -2f }; dXFExport.AddLType("_DASH", singleArray); singleArray = new float[] { 2f, -2f }; dXFExport.AddLType("_DOT", singleArray); dXFExport.AddLType("_DASHDOT", new float[] { 5f, -2f, 2f, -2f }); dXFExport.AddLType("_DASHDOTDOT", new float[] { 5f, -2f, 2f, -2f, 2f, -2f }); for (int i = 0; i < this.ilist_0.Count; i++) { IFeatureClass featureClass = null; object item = this.ilist_0[i]; if (item is IFeatureClass) { featureClass = item as IFeatureClass; } else if (item is IFeatureClassName) { featureClass = (item as IName).Open() as IFeatureClass; } if (featureClass != null) { if (this.setFeatureClassNameEnventHandler_0 != null) { this.setFeatureClassNameEnventHandler_0(featureClass.AliasName); } if (this.setFeatureCountEnventHandler_0 != null) { this.setFeatureCountEnventHandler_0(featureClass.FeatureCount(null)); } this.method_1(featureClass, dXFExport); } } if (File.Exists(this.string_0)) { File.Delete(this.string_0); } dXFExport.SaveToFile(this.string_0); flag = true; } else { flag = false; } return(flag); }
private void method_1(IFeatureClass ifeatureClass_0, DXFExport dxfexport_0) { DXFData dXFDatum; int j; IPoint point; dxfexport_0.CurrentLayer = new DXFLayer(ifeatureClass_0.AliasName); IFeatureCursor featureCursor = ifeatureClass_0.Search(null, false); for (IFeature i = featureCursor.NextFeature(); i != null; i = featureCursor.NextFeature()) { if (this.ifeatureProgress_StepEventHandler_0 != null) { this.ifeatureProgress_StepEventHandler_0(); } if (ifeatureClass_0.FeatureType == esriFeatureType.esriFTAnnotation) { ITextElement annotation = (i as IAnnotationFeature2).Annotation as ITextElement; if (annotation != null) { double xMin = ((annotation as IElement).Geometry.Envelope.XMin + (annotation as IElement).Geometry.Envelope.XMax) / 2; double yMin = ((annotation as IElement).Geometry.Envelope.YMin + (annotation as IElement).Geometry.Envelope.YMax) / 2; dXFDatum = new DXFData(); dXFDatum.Clear(); dXFDatum.color = annotation.Symbol.Color.RGB; dXFDatum.height = (float)(annotation as IElement).Geometry.Envelope.Height; dXFDatum.rotation = (float)annotation.Symbol.Angle; dXFDatum.text = annotation.Text; dXFDatum.point.X = (float)xMin; dXFDatum.point.Y = (float)yMin; dxfexport_0.AddText(dXFDatum); } } else if ( !(ifeatureClass_0.ShapeType == esriGeometryType.esriGeometryPolyline ? false : ifeatureClass_0.ShapeType != esriGeometryType.esriGeometryPolygon)) { IGeometryCollection shape = i.Shape as IGeometryCollection; if (shape != null) { if (shape.GeometryCount <= 1) { this.method_0(shape as IPointCollection, dxfexport_0); } else { for (j = 0; j < shape.GeometryCount; j++) { this.method_0(shape.Geometry[j] as IPointCollection, dxfexport_0); } } } } else if (ifeatureClass_0.ShapeType != esriGeometryType.esriGeometryPoint) { IPointCollection pointCollection = i.Shape as IPointCollection; if (pointCollection != null) { for (j = 0; j < pointCollection.PointCount; j++) { point = pointCollection.Point[j]; dXFDatum = new DXFData(); dXFDatum.Clear(); dXFDatum.point.X = (float)point.X; dXFDatum.point.Y = (float)point.Y; dxfexport_0.AddPixel(dXFDatum); } } } else { point = i.Shape as IPoint; if (point != null) { dXFDatum = new DXFData(); dXFDatum.Clear(); dXFDatum.point.X = (float)point.X; dXFDatum.point.Y = (float)point.Y; dxfexport_0.AddPixel(dXFDatum); } } } ComReleaser.ReleaseCOMObject(featureCursor); }
private void AddBoundaryPathData(DXFExport ADXFExport) { switch (this.boundaryType) { case HatchBoundaryType.hbtPolyPolyline: { ADXFExport.AddInt(91, this.boundaries.Count); for (int i = 0; i < this.boundaries.Count; i++) { ADXFExport.AddInt(92, 1); ADXFExport.AddInt(93, ((ArrayList)this.boundaries[i]).Count); for (int j = 1; j < ((ArrayList)this.boundaries[i]).Count; j++) { ADXFExport.AddInt(72, 1); ADXFExport.Add3DPoint(10, (DXFPoint)((ArrayList)this.boundaries[i])[j - 1]); ADXFExport.Add3DPoint(11, (DXFPoint)((ArrayList)this.boundaries[i])[j]); } ADXFExport.AddInt(72, 1); ADXFExport.Add3DPoint(10, (DXFPoint)((ArrayList)this.boundaries[i])[((ArrayList)this.boundaries[i]).Count - 1]); ADXFExport.Add3DPoint(11, (DXFPoint)((ArrayList)this.boundaries[i])[0]); ADXFExport.AddInt(97, 0); } return; } case HatchBoundaryType.hbtCircle: { ADXFExport.AddInt(91, 1); ADXFExport.AddInt(92, 1); ADXFExport.AddInt(93, 1); ADXFExport.AddInt(72, 2); ADXFExport.Add3DPoint(10, this.data.point); ADXFExport.AddFloat(40, ADXFExport.MM(this.data.radius)); ADXFExport.AddFloat(50, this.data.startAngle); ADXFExport.AddFloat(51, this.data.endAngle); ADXFExport.AddInt(73, 1); ADXFExport.AddInt(97, 0); return; } case HatchBoundaryType.hbtEllipse: { ADXFExport.AddInt(91, 1); ADXFExport.AddInt(92, 1); ADXFExport.AddInt(93, 1); ADXFExport.AddInt(72, 3); ADXFExport.Add3DPoint(10, this.data.point); ADXFExport.Add3DPoint(11, this.data.point1); ADXFExport.AddFloat(40, this.data.radius); ADXFExport.AddFloat(50, this.data.startAngle); ADXFExport.AddFloat(51, this.data.endAngle); ADXFExport.AddInt(73, 1); ADXFExport.AddInt(97, 0); return; } default: { return; } } }
private void AddPatternData(float offset, DXFExport aDXFExport) { DXFHatchPatternData[] dXFHatchPatternDataArray = new DXFHatchPatternData[2]; int num = 1; dXFHatchPatternDataArray[0].basePointX = 0f; dXFHatchPatternDataArray[0].basePointY = 0f; dXFHatchPatternDataArray[0].offsetX = -offset; dXFHatchPatternDataArray[0].offsetY = offset; dXFHatchPatternDataArray[1].basePointX = 0f; dXFHatchPatternDataArray[1].basePointY = 0f; dXFHatchPatternDataArray[1].offsetX = -offset; dXFHatchPatternDataArray[1].offsetY = offset; switch (this.Style) { case HatchStyle.hsHorizontal: { dXFHatchPatternDataArray[0].angle = 0f; dXFHatchPatternDataArray[0].offsetX = 0f; break; } case HatchStyle.hsVertical: { dXFHatchPatternDataArray[0].angle = 90f; dXFHatchPatternDataArray[0].offsetY = 0f; break; } case HatchStyle.hsFDiagonal: { dXFHatchPatternDataArray[0].angle = 135f; dXFHatchPatternDataArray[0].offsetY = -dXFHatchPatternDataArray[0].offsetY; break; } case HatchStyle.hsBDiagonal: { dXFHatchPatternDataArray[0].angle = 45f; break; } case HatchStyle.hsCross: { num = 2; dXFHatchPatternDataArray[0].angle = 0f; dXFHatchPatternDataArray[0].offsetX = 0f; dXFHatchPatternDataArray[1].angle = 90f; break; } case HatchStyle.hsDiagCross: { num = 2; dXFHatchPatternDataArray[0].angle = 45f; dXFHatchPatternDataArray[1].angle = 135f; dXFHatchPatternDataArray[1].offsetY = -dXFHatchPatternDataArray[0].offsetY; break; } } aDXFExport.AddFloat(52, 0f); aDXFExport.AddFloat(41, 1f); aDXFExport.AddInt(77, 0); aDXFExport.AddInt(78, num); for (int i = 0; i < num; i++) { aDXFExport.AddFloat(53, dXFHatchPatternDataArray[i].angle); aDXFExport.AddFloat(43, dXFHatchPatternDataArray[i].basePointX); aDXFExport.AddFloat(44, dXFHatchPatternDataArray[i].basePointY); aDXFExport.AddFloat(45, dXFHatchPatternDataArray[i].offsetX); aDXFExport.AddFloat(46, dXFHatchPatternDataArray[i].offsetY); aDXFExport.AddInt(79, 0); } }
public virtual void ExportBlockAsDXF(DXFExport ADXFExport) { }