Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
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);
        }
Exemplo n.º 5
0
 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);
     }
 }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
 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]);
     }
 }
Exemplo n.º 9
0
 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);
 }
Exemplo n.º 10
0
 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);
 }
Exemplo n.º 11
0
 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);
 }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
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]);
                }
            }
        }
Exemplo n.º 14
0
 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]);
     }
 }
Exemplo n.º 15
0
 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);
 }
Exemplo n.º 16
0
 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);
 }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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;
            }
            }
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
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));
                }
            }
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 24
0
        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);
        }
Exemplo n.º 25
0
 public override void ExportAsDXF(DXFExport ADXFExport)
 {
     ADXFExport.AddName("POINT", "AcDbPoint");
     ADXFExport.AddColor(this.data);
     ADXFExport.Add3DPoint(10, this.data.point);
 }
Exemplo n.º 26
0
        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);
        }
Exemplo n.º 27
0
        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);
        }
Exemplo n.º 28
0
        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;
            }
            }
        }
Exemplo n.º 29
0
        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);
            }
        }
Exemplo n.º 30
0
 public virtual void ExportBlockAsDXF(DXFExport ADXFExport)
 {
 }