您只需要像本例中给出的那样指定:
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])**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.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))
longitude total = longitud_total+ ds
注意:由于软件包折旧,最后一部分不起作用,但您可以从中获得一些见解。我得到了如下所示的输出:只需将计算添加到您的代码中并获得所需的尺寸。
LWPOLYLINE(#77)
CIRCLE(#79)
radio: 1042.834851203736
circulo: 6552.324614898124
CIRCLE(#7A)
radio: 973.9919030240113
circulo: 6119.771614392353
CIRCLE(#7B)
radio: 922.8928365325164
circulo: 5798.706710602399
LWPOLYLINE(#7C)
ARC(#7D)
SPLINE(#7E)