CAD中的dxf文件解析(二):dxflib的使用

1.前言

         上一篇中对dxf文件及文件中常见的需要解析的直线,圆,圆弧,椭圆,多段线的说明,对dxf文件有了初步的了解,并做好了下载dxflib,dxf帮助文档的准备(没有准备的可以回到上一篇)。

https://blog.csdn.net/weixin_40196271/article/details/106411836

2.dxflib中文件说明

        下载好dxflib后,我们可以试运行它的demo,发现:

         dl_entities.h:这里面是定义点,线,圆,圆弧,多段线,角点等的结构体的文件(DL_CircleData,DL_PointData等)

         dl_dxf.h,dl_dxf.cpp:这里面是具体的对点,线,圆,圆弧,多段线等的解析,如果需要导出需要的点,线,圆,圆弧,多段线的信息(具体可以看addpoint, addline, addcircle, addpolyline, addarc等函数),可以从这里增加容器等导出数据。

         dl_wirter_ascii.cpp:这里是要写入dxf时用到的文件,具体的我还在研究。

         测试demo时,我发现demo并不能直接用,比如我的dxf文件在cad中进行修改后,会输出一些多余的信息。所以要在上一篇说的那样,从ENTITIES中入手,在ENTITIES的部分去寻找,可以在dl_dxf.cpp的processDXFGroup函数中入手修改去进行查找。

         另外一个就是块的问题,如果插入块,ENTITIES中会有INSERT,并且下面还有块名,而真正的块信息还在BLOCKS中。所以块的信息需要去BLOCKS中找到对应的块名再进一步进行解析,并且解析完块要记得与后面的ENTITIES中的数据分离开来,不然会出现二次解析。

         具体的层,点,线,圆,圆弧等解析代码就不放出来了,建议自己去demo里面看。还需要提醒的是,圆弧的角度单位为角度制,而椭圆的为弧度制。

3.总结

这篇简要的说明了一下dxflib中的一些文件的情况,以及实际应用中遇到的问题。下一篇中将主要对多段线解析成线和圆弧进行说明。

你可能感兴趣的:(图像处理知识学习)