文章目录
一、前言
需求:
项目要求识别CAD图纸(图纸内容与现实事物比例是1:1)中的内容,并提取出一些关键信息。
这里的CAD图纸是指CAD文件,包含多种格式,dwg/dxf/dwf/stl/pdf等等。
识别其中内容,主要指文件中的图元信息(也叫实体Entity),指线段、圆弧、矩形等图形元素。
得到图元基础信息(比如长度、坐标、粗细)后,进一步做处理(如得到交点、得到线段间间隔、圆弧与线段切点等)。
分析:
听起来有点难,因为作为软件工程师,对CAD相关事物并不了解,它是未知的;但同时也挺有意思,因为它确实是一个活的需求,并且有一定可行性。
-
图像识别
拿到需求后,我第一反应是用图像识别(视觉)的相关技术去做,对特征图形生成模型,做匹配。
但是,- 由于图的实际尺寸很大,比例是1:1,如果生成大图,用图像处理那套去做,估计消耗计算资源会相当大。
- 如果做一定比例缩小,生成缩小图,可能会因为缩的太小(缩太小有些图元可能就不好识别),没法用模板匹配了。
而且如何将各种格式的文件转成图片也是一个问题(总不能要求别人都用CAD打开另存为吧)。
总之,图像识别的方法有一定可行性,但也存在许多不确定性。 -
文件内容识别
换个角度想,CAD图纸其实是某种格式的文件,用AutoCAD可以打开它们,并将内容呈现出来。
文件肯定是按一定的文件结构存放内容的。我要是能知晓CAD存放结构,按结构解析其内容就能得到其中的图元信息。
于是,第二种方式,就是找CAD文件解析库或者得到CAD的文件结构自己动手解析。
这种方法在CAD文件内容提取阶段的优势很明显:- 解析出来的内容是原始数据,不存在精度问题;
- 解析也不需要消耗大量资源,只是按一定格式/协议读取并解析文件。
对比&总结:
两种方式对比下来,
图像识别/处理的方法在前期不太好实施。
但在后期内容处理阶段,不考虑效率的情况下,图像识别是有优势的,它可以借助图像处理算子,如通过模板匹配直接得到目标。
而解析CAD文件结构得到的信息,需要通过数学运算+逻辑判断来做处理。虽可控度较高,但是逻辑处理多,容易出错。
综合来讲,个人还是倾向于解析文件结构的方式。因为它整体比较可控。
二、调研过程
明确了大方向后,下一步就是看看网上有没有类似案例。
看了一圈下来,发现相关的CAD解析案例挺多的。
解析的格式集中在dxf和dwg这两种,其中dxf尤其多。
现在,有必要对CAD的主

文章讲述了作者在项目需求下,探讨了使用图像识别与解析CAD文件结构两种方法提取CAD图纸内容的过程,着重介绍了netDxf和Teigha这两个开源库在CAD文件解析中的应用,以及图形计算的相关步骤。
并处理&spm=1001.2101.3001.5002&articleId=133265717&d=1&t=3&u=33ba14d1ca724111868fb9ac3eecef45)
153

被折叠的 条评论
为什么被折叠?



