可以用nuGet 上引用 netDxf 库 解析DXF 文件,读取DXF里面的MTexts 可以获取文字的坐标和类容,然后可以根据坐标获取你想要的文字内容,
大哥有没有小Demo 我参考一下
刚试了一下, 感觉获取不到 dwg 的文件
@临冰听雪丶:
using netDxf;
using netDxf.Entities;
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace net_DXF
{
public partial class Form1 : Form
{
/// <summary> DXF文件路径 </summary>
public static string file;
/// <summary> DXF文件 </summary>
public static DxfDocument dxf;
/// <summary> 文本</summary>
List<MText> mTexts = new List<MText>();
public Form1()
{
InitializeComponent();
}
/// <summary>// 打开DXF文件 </summary>
private void btn_Open1_Click(object sender, EventArgs e)
{
using (OpenFileDialog openFile = new OpenFileDialog())
{
openFile.Title = "加载DXF文件";
openFile.Filter = "dxf File(*.dxf)|*.dxf|ALL File(*.*)|*.*";
if (openFile.ShowDialog() == DialogResult.OK)
{
//获得文件路径
file = openFile.FileName;
//加载文件
dxf = DxfDocument.Load(file);
//解析DXF文件
ImPort(file);
}
}
}
public void ImPort(string fileName)
{
foreach (MText txt in dxf.MTexts)
{
mTexts.Add(txt);
}
this.dataGridView1.DataSource = mTexts;
}
}
}
@临冰听雪丶: 要把DWG文件另存为DXF格式
@中华鲟3670: 刚试了下, 好像确实可以, 但是不知道为什么只取出来一些说明数据, 没取出来表格里面的数据, 谢谢大哥, 我再研究一下看看
@临冰听雪丶: 用记事本打开你的DXF文件,搜索你需要的文字,看看是属于什么类型的数据
@中华鲟3670: 是这个吗
?
@中华鲟3670: 这个是能查出来的
@临冰听雪丶: 对的,那就用Text 类型去读取,要看找到的文字的上面的类型
@中华鲟3670: 查出来啦, 哈哈哈, 谢谢大哥
提供一个思路,主要就是图像识别:
1、首先读取文件。这里可以参考读取文件:C#读取CAD文件
2、然后进行图像识别。建三个字符数组:一个数字数组,一个字母数组(包含大小写),一个汉字数组(只需要包含设备常用字就行);因为你这个图片格式很标准,如果你能找到图像识别的方法,应该不难实现;这里可以参考一下:一个C#二维码图片识别的Demo
谢谢大哥, 我试一下