form1.cs
来自「导出dxf的原码类库,根据国外一个反编译的」· CS 代码 · 共 253 行
CS
253 行
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 + =
减小字号Ctrl + -
显示快捷键?