文章目录
- 一、前言
- 二、调研过程
- 2.1 CAD相关
- 2.2 DWG
- 2.3 DXF
- 2.4 小结
- 三、解析CAD的库
- 3.1 netDxf
- 3.2 Teigha
- 3.2.1 官网获取
- 3.2.2 网上获取
- 四、图形计算
一、前言
需求:
项目要求识别CAD图纸(图纸内容与现实事物比例是1:1)中的内容,并提取出一些关键信息。
这里的CAD图纸是指CAD文件,包含多种格式,dwg/dxf/dwf/stl/pdf等等。
识别其中内容,主要指文件中的图元信息(也叫实体Entity),指线段、圆弧、矩形等图形元素。
得到图元基础信息(比如长度、坐标、粗细)后,进一步做处理(如得到交点、得到线段间间隔、圆弧与线段切点等)。
分析:
听起来有点难,因为作为软件工程师,对CAD相关事物并不了解,它是未知的;但同时也挺有意思,因为它确实是一个活的需求,并且有一定可行性。
-
图像识别
拿到需求后,我第一反应是用图像识别(视觉)的相关技术去做,对特征图形生成模型,做匹配。
但是,- 由于图的实际尺寸很大,比例是1:1,如果生成大图,用图像处理那套去做,估计消耗计算资源会相当大。
- 如果做一定比例缩小,生成缩小图,可能会因为缩的太小(缩太小有些图元可能就不好识别),没法用模板匹配了。
而且如何将各种格式的文件转成图片也是一个问题(总不能要求别人都用CAD打开另存为吧)。
总之,图像识别的方法有一定可行性,但也存在许多不确定性。 -
文件内容识别
换个角度想,CAD图纸其实是某种