⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 导出dxf的原码类库,根据国外一个反编译的
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DXFFile;
using System.Collections;

namespace DxfDllTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private Point[] arrBezier = new Point[13]{
			new Point(200, 230), new Point(190, 310), new Point(280, 330), 
			new Point(310, 310), new Point(340, 290), new Point(390, 270), 
			new Point(355, 225), new Point(330, 240), new Point(305, 255), 
			new Point(415, 255), new Point(440, 240), new Point(480, 220), 
			new Point(430, 200)};


        private void button1_Click(object sender, EventArgs e)
        {
             if (dlgSaveDxf.ShowDialog() != DialogResult.OK) return;

             if (dlgSaveDxf.FileName != "")
             {
                 DXFExport vDXF = new DXFExport();
                 DXFData Data = new DXFData();
                 DXFLayer vLayer;
                 DXFPoint Pt = new DXFPoint();
                 //line types
                 vDXF.AddLType("_SOLID", new float[] { 5, 0 });
                 vDXF.AddLType("_DASH", new float[] { 5, -2 });
                 vDXF.AddLType("_DOT", new float[] { 2, -2 });
                 vDXF.AddLType("_DASHDOT", new float[] { 5, -2, 2, -2 });
                 vDXF.AddLType("_DASHDOTDOT", new float[] { 5, -2, 2, -2, 2, -2 });
                 // {blocks}
                 vDXF.BeginBlock("1");
                 Data.point.X = 0;
                 Data.point.Y = -3;
                 Data.point1.X = 10;
                 Data.point1.Y = 0;
                 vDXF.AddRectangle(Data);
                 Data.Clear();
                 Data.height = 1;
                 Data.text = "Block";
                 Data.point.X = 1;
                 Data.point.Y = -2;
                 vDXF.AddText(Data);
                 vDXF.EndBlock();
                 vDXF.BeginBlock("2");
                 Data.Clear();
                 Data.color = ((int)DXFIntConst.DXF_OLIVE);
                 Data.point.X = 0;
                 Data.point.Y = 0;
                 Data.radius = 40;
                 vDXF.AddCircle(Data);
                 vDXF.EndBlock();
                 vDXF.BeginBlock("3");
                 Data.Clear();
                 Data.color = DXFExport.ColorToDXF(Color.Red);
                 Data.count = 1;
                 Data.points = new ArrayList();
                 Data.points.Add(new ArrayList()); // hatch can consist of more that one bound
                 Pt = new DXFPoint();
                 Pt.X = 300;
                 Pt.Y = -100;
                 Pt.Z = 0.0f;
                 ((ArrayList)Data.points[0]).Add(Pt);
                 Pt = new DXFPoint();
                 Pt.X = 0;
                 Pt.Y = -100;
                 Pt.Z = 0.0f;
                 ((ArrayList)Data.points[0]).Add(Pt);
                 Pt = new DXFPoint();
                 Pt.X = 100;
                 Pt.Y = 0;
                 Pt.Z = 0.0f;
                 ((ArrayList)Data.points[0]).Add(Pt);
                 Data.style = ((byte)DXFFile.HatchStyle.hsFDiagonal);
                 vDXF.fOffset = 50;
                 vDXF.AddHatch(Data);
                 vDXF.EndBlock();
                 vDXF.BeginBlock("4"); // Bezier
                 Data.Clear();
                 Data.color = ((int)DXFIntConst.DXF_PURPLE);
                 Data.count = arrBezier.Length;
                 Data.points = new ArrayList();
                 Data.points.Add(new ArrayList());
                 int I;
                 for (I = 0; I < Data.count; I++)
                 {
                     Pt = new DXFPoint();
                     Pt.X = arrBezier[I].X;
                     Pt.Y = -arrBezier[I].Y;
                     Pt.Z = 0;
                     ((ArrayList)Data.points[0]).Add(Pt);
                 }
                 vDXF.AddPolyBezier(Data, 0);
                 vDXF.EndBlock();
                 vDXF.SetLayerByString("0");
                 // {entities}
                 Data.Clear();
                 Data.color = ((int)DXFIntConst.DXF_TEAL);
                 Data.thickness = 10;
                 Data.point.X = 10;
                 Data.point.Y = 10;
                 Data.point1.X = 20;
                 Data.point1.Y = 20;
                 vDXF.AddLine(Data);
                 Data.Clear();
                 Data.color = ((int)DXFIntConst.DXF_OLIVE);
                 Data.text = "_DASHDOT";
                 Data.thickness = 1;
                 Data.point.X = 12;
                 Data.point.Y = 12;
                 Data.radius = 45;
                 vDXF.AddCircle(Data);
                 Data.Clear();
                 Data.height = 50;
                 Data.rotation = 0;
                 Data.text = "DXF Exporter";
                 Data.point.X = 57;
                 Data.point.Y = 76;
                 vDXF.AddText(Data);
                 Data.Clear();
                 Data.color = DXFExport.ColorToDXF(Color.Yellow);
                 Data.point.X = 80;
                 Data.point.Y = 10;
                 Data.point1.X = 120;
                 Data.point1.Y = 30;
                 vDXF.AddRectangle(Data);
                 Data.Clear();
                 Data.color = DXFExport.ColorToDXF(Color.Green);
                 Data.text = "_DASH";
                 Data.thickness = 3;
                 Data.point.X = 100;
                 Data.point.Y = 20;
                 Data.radius = 30;
                 Data.startAngle = -90;
                 Data.endAngle = 90;
                 vDXF.AddArc(Data);
                 Data.Clear();
                 vLayer = new DXFLayer("Blocks");
                 vDXF.CurrentLayer = vLayer;
                 Data.thickness = 0;
                 Data.text = "1";
                 Data.point.X = 70;
                 Data.point.Y = -30;
                 Data.scale.X = 3;
                 Data.scale.Y = 3;
                 vDXF.Insert(Data);
                 Data.text = "1";
                 Data.point.Y = -40;
                 Data.scale.X = 5;
                 Data.scale.Y = 5;
                 vDXF.Insert(Data);
                 Data.point.Y = -60;
                 Data.scale.X = 10;
                 Data.scale.Y = 10;
                 vDXF.Insert(Data);
                 Data.Clear();
                 Data.text = "2";
                 Data.point.X = 12;
                 Data.point.Y = 80;
                 Data.scale.X = 1;
                 Data.scale.Y = 1;
                 vDXF.Insert(Data);
                 Data.Clear();
                 vLayer = new DXFLayer("Hatch");
                 vDXF.CurrentLayer = vLayer;
                 Data.text = "3";
                 Data.point.X = 120;
                 Data.point.Y = 80;
                 Data.scale.X = 1;
                 Data.scale.Y = 1;
                 vDXF.Insert(Data);
                 Data.Clear();
                 vLayer = new DXFLayer("Bezier");
                 vDXF.CurrentLayer = vLayer;
                 Data.text = "4";
                 Data.point.X = 0;
                 Data.point.Y = 200;
                 Data.scale.X = 1;
                 Data.scale.Y = 1;
                 vDXF.Insert(Data);
                 //******************** */
                 vDXF.SaveToFile(dlgSaveDxf.FileName);	
             }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            DXFExport vDXF = new DXFExport();
            DXFData Data = new DXFData();
            DXFLayer vLayer;
            DXFPoint Pt = new DXFPoint();

            //line types
            vDXF.AddLType("_SOLID", new float[] { 5, 0 });
            vDXF.AddLType("_DASH", new float[] { 5, -2 });
            vDXF.AddLType("_DOT", new float[] { 2, -2 });
            vDXF.AddLType("_DASHDOT", new float[] { 5, -2, 2, -2 });
            vDXF.AddLType("_DASHDOTDOT", new float[] { 5, -2, 2, -2, 2, -2 });

            //add entity
            // {entities}
            Data.Clear();
            Data.color = ((int)DXFIntConst.DXF_TEAL);
            Data.thickness = 10;
            Data.text = "_SOLID";
            Data.point.X = 10;
            Data.point.Y = 10;
            Data.point1.X = 20;
            Data.point1.Y = 10;
            vDXF.AddLine(Data);

            Data.Clear();
            Data.color = ((int)DXFIntConst.DXF_ALTERNATIVEBLACK);
            Data.thickness = 20;
            
            Data.text = "_DASH";
            Data.point.X = 20;
            Data.point.Y = 10;
            Data.point1.X = 30;
            Data.point1.Y = 30;
            vDXF.AddLine(Data);

            Data.Clear();
            Data.color = ((int)DXFIntConst.DXF_ALTERNATIVEBLACK);
            Data.thickness = 300;
            Data.text = "_DASHDOT";
            Data.point.X = 30;
            Data.point.Y = 30;
            Data.point1.X = 10;
            Data.point1.Y = 10;
            vDXF.AddLine(Data);

            //vDXF.MM

            vDXF.SaveToFile(@"c:\test.dxf");	
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -