3

我正在尝试从 dxf 文件中找到样条线的总长度(周长)和面积。dxfgrabber 或 ezdxf 中是否有任何功能可以从 dxf 文件中查找实体的总长度?

4

2 回答 2

6

您可以遍历实体,每个实体都有组成它的线的坐标,然后您可以使用这些点来计算实体的长度。此代码计算 .DXF 文件中直线、曲线和圆的长度

import ezdxf
import math

dwg = ezdxf.readfile("arc.dxf")
msp = dwg.modelspace()
longitud_total = 0
for e in msp:
    print(e)
    if e.dxftype() == 'LINE':
        dl = math.sqrt((e.dxf.start[0]-e.dxf.end[0])**2 + (e.dxf.start[1]- 
        e.dxf.end[1])**2)
        print('linea: '+str(dl))
        longitud_total = longitud_total + dl
    elif e.dxftype() == 'CIRCLE':
        dc = 2*math.pi*e.dxf.radius
        print('radio: '+str(e.dxf.radius))
        print('circulo: '+str(dc))
        longitud_total = longitud_total + dc
    elif e.dxftype() == 'SPLINE':
        puntos = e.get_control_points()
        for i in range(len(puntos)-1):
            ds = math.sqrt((puntos[i][0]-puntos[i+1][0])**2 + (puntos[i][1]- 
            puntos[i+1][1])**2)  
            print('curva: '+str(ds))
            longitud_total = longitud_total + ds


print('Longitud Total: '+ str(longitud_total))
于 2019-04-05T19:23:12.873 回答
1

dxfgrabber 和 ezdxf 只是 DXF 格式的接口,不提供任何 CAD 或计算功能,DXF 实体的几何长度不是 DXF 格式的可用属性。

于 2016-04-10T12:19:56.600 回答