关于DXF文件读取的小结---3

      前文已经讲述了层参数的获取,下面就是图元数据的获取。DXF文件中图元数据基本都记录在ENTITIES段中。ENTITIES段的大体结构和其他段是一样的。前文有介绍,这里就不重复叙述了。ENTITIES段中有各种图元,如下图:

因为目前的项目需求,只解析点、线、圆、圆弧、椭圆、椭圆弧、多线段和样条曲线。

先说点。这个图形基本算是最简单的图元了。

上面是点中适用的码值和解释。

下面在贴出DXF中部分文档

  0
POINT
  5
27C
330
1F
100
AcDbEntity
  8                    //图元层信息
测试1
100
AcDbPoint

 10                //X坐标值
2352.826650065656
 20                //Y坐标值
1399.492594513477
 30                //Z坐标值

0.0

这段就是一个完整的点信息的描述,在提取图形信息时,红色部分的内容才是有意义的。其他的基本可以忽略。

上段描述的就是在位置(2352.826650065656,1399.492594513477,0.0)有个点,处在图层“测试1”中。

提取的带代码和层信息的类似,修改部分基本可以通用,就不贴出来了。有兴趣就自己改改,没兴趣的就当没看过好了。


扫描二维码关注公众号,回复: 910889 查看本文章

再写线的


举个例子

  0
LINE
  5
26A
330
1F
100
AcDbEntity
  8                     //图元层信息
测试1

100
AcDbLine

 10                //线起始点 X坐标
2324.59038541245
 20                //线起始点 Y坐标
1448.302561586974
 30                //线起始点 Z坐标
0.0
 11                //线终止点 X坐标
2363.997154938374
 21                //线终止点  Y坐标
1448.302561586974
 31                //线终止点 Z坐标

0.0

这里描述的就是一个起始点在(2324.59038541245,1448.302561586974,0.0)终止点在(2363.997154938374,1448.302561586974,0.0)的处在图层“测试1”中的线段。


接着写圆


按照上面的格式上个例子:

  0
CIRCLE
  5
26C
330
1F
100
AcDbEntity
  8                         //图元层信息
测试1

100
AcDbCircle
 10                    //圆心坐标 X
2326.995504497924
 20                    //圆心坐标 Y
1417.074504152281
 30                    //圆心坐标 Z
0.0
 40                    //圆半径信息

11.60916452779647

接上解释:圆心在(2326.995504497924,1417.074504152281,0.0)半径为(11.60916452779647)在图层“测试1”的圆。大笑

后面在是圆弧


不多话,上实例

0
ARC
  5
26D
330
1F
100
AcDbEntity
 
8                    //图元层信息
测试1

100
AcDbCircle
 10                //圆弧圆心坐标 X
2369.648533060235
 20                //圆弧圆心坐标 Y
1407.103259317271
 30                //圆弧圆心坐标 Z
0.0
 40                 //圆弧半径信息
18.18758538283407
100
AcDbArc

 50                 //圆弧起始角度
36.07782534783297
 51                 //圆弧结束角度

164.1016676978583

这里就是圆心在(2369.648533060235,1407.103259317271,0.0)半径为(18.18758538283407)起始角度为(36.07782534783297)终止角度为(164.1016676978583)在图层"测试1"的圆弧。

可以看出,圆弧比圆多了蓝色部分的信息。其中描述角度的信息默认是角度,即一圈360度的描述方式。这个方式似乎是可以修改的,但我没有仔细研究,有兴趣的可以在CAD资料中查找。在CAD中画圆弧都是按照逆时针来的。这个和一般的认知好像不一致,这个要注意下。


以上几个图元都有标准的,简单的数学公式,在解析出相关的信息后,可以直接而且简单的加以运用,所以在一章中都罗列出来。获取信息的代码,和层信息获取代码都大同小异。贴出来有点占地方,就算了。

后面的椭圆之类有各自的特异点,就单独开章说了。

猜你喜欢

转载自blog.csdn.net/yishang44/article/details/80330844
今日推荐