📄 form1.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 + -