C#读取CAD文件(dwg/dxf)并处理


一、前言

需求:
项目要求识别CAD图纸(图纸内容与现实事物比例是1:1)中的内容,并提取出一些关键信息。

这里的CAD图纸是指CAD文件,包含多种格式,dwg/dxf/dwf/stl/pdf等等。
识别其中内容,主要指文件中的图元信息(也叫实体Entity),指线段、圆弧、矩形等图形元素。
得到图元基础信息(比如长度、坐标、粗细)后,进一步做处理(如得到交点、得到线段间间隔、圆弧与线段切点等)。

分析:
听起来有点难,因为作为软件工程师,对CAD相关事物并不了解,它是未知的;但同时也挺有意思,因为它确实是一个活的需求,并且有一定可行性。

  1. 图像识别
    拿到需求后,我第一反应是用图像识别(视觉)的相关技术去做,对特征图形生成模型,做匹配。
    但是,

    • 由于图的实际尺寸很大,比例是1:1,如果生成大图,用图像处理那套去做,估计消耗计算资源会相当大。
    • 如果做一定比例缩小,生成缩小图,可能会因为缩的太小(缩太小有些图元可能就不好识别),没法用模板匹配了。

    而且如何将各种格式的文件转成图片也是一个问题(总不能要求别人都用CAD打开另存为吧)。
    总之,图像识别的方法有一定可行性,但也存在许多不确定性。

  2. 文件内容识别
    换个角度想,CAD图纸其实是某种

猜你喜欢

转载自blog.csdn.net/BadAyase/article/details/133265717
今日推荐