1.在VS的工具栏安装.netdxf资源包
2.展示案例效果:
DXF导入演示
3.附上DXF导入代码:
private void btnOpenDxf_Click(object sender, EventArgs e)
{
rtxtMessage.Clear();
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;
openFileDialog.Filter = "dxf|*.dxf|All|*.*";
DialogResult dialog = openFileDialog.ShowDialog();
if (dialog != DialogResult.OK)
{
return;
}
string fileName = openFileDialog.FileName;//AppDomain.CurrentDomain.BaseDirectory + "testFile\\蓝本-CAD.dxf"
DisplayMessage($"CAD文件dxf路径为【{fileName}】");
DxfDocument dxfDocument = DxfDocument.Load(fileName);//载入dxf文件
DisplayMessage($"活动布局的名称为【{dxfDocument.Entities.ActiveLayout}】");//ActiveLayout
rtxtMessage.Tag = dxfDocument.Entities;
//IEnumerable<Line> circles = dxfDocument.Entities.Lines;//直线
IEnumerable<Circle> circles = dxfDocument.Entities.Circles;//圆
int circleCount = circles.Count();
DisplayMessage($"读取到圆Circle的个数为【{circleCount}】");
var values = new HotPointSeries();
Random random = new Random();
for (int i = 0; i < circleCount; i++)
{
Circle circle = circles.ElementAt(i);//Line
//DisplayMessage($"直线【{(i + 1).ToString()}】,起始坐标【({circle.StartPoint})】,结束坐标【{circle.EndPoint}】");//\x20\x20
//PointF px1 = new PointF(((float)circle.StartPoint.X), ((float)circle.StartPoint.Y));
//PointF px2 = new PointF(((float)circle.EndPoint.X), ((float)circle.EndPoint.Y));
DisplayMessage($"\x20\x20圆【{(i + 1).ToString("D2")}】,圆心坐标【({circle.Center})】,半径【{circle.Radius}】");//读出来的数据
values.Values.Add(new HotPoint(circle.Center.X, circle.Center.Y, circle.Radius, Color.FromArgb(random.Next(60, 254), Color.Gold)));//显示图像的数据
}
//显示图像
vChart1.Series.Add(values);
vChart1.Xaxis.Step = 20;
vChart1.Yaxis.Step = 20;
vChart1.Yaxis.Split = 5;
vChart1.Xaxis.Split = 5;
//IEnumerable<Circle> circles = dxfDocument.Entities.Circles;
//int circleCount = circles.Count();
//DisplayMessage($"读取到圆Circle的个数为【{circleCount}】");
//for (int i = 0; i < circleCount; i++)
//{
// Circle circle = circles.ElementAt(i);
// DisplayMessage($"\x20\x20圆【{(i + 1).ToString("D3")}】,圆心坐标【({circle.Center})】,半径【{circle.Radius}】");
//}
}
4.感谢浏览