Получить координаты линий из Автокада через питон

уважаемые коллеги, пытаюсь заскриптовать перенос координат полилиний из Автокада через питон, чтобы сэкономить время и не переписывать координаты каждой точки в ручную:

Есть несколько профилей определенного слоя в автокаде, координаты которых нужно получить, см.рисунок ниже: введите сюда описание изображения

Для этого пишу такой код:

import ezdxf
dwg = ezdxf.readfile("filename")
for entity in dwg.entities:  
    if entity.dxftype() == 'POLYLINE': 
        first_vertex = entity.get_vertex_by_index(0)
        last_vertex = entity.get_vertex_by_index(-1)
        first_coord = (first_vertex.x, first_vertex.y, first_vertex.z)
        last_coord = (last_vertex.x, last_vertex.y, last_vertex.z)
        print(f'First coordinate of polyline {entity.dxftype()} is: {first_coord}')
        print(f'Last coordinate of polyline {entity.dxftype()} is: {last_coord}')

Но получаю подобную ошибку :

Traceback (most recent call last):
  File "D:\PythonProjects\Dwg linii razreza.py", line 11, in <module>
    first_vertex = entity.get_vertex_by_index(0)
AttributeError: 'Polyline' object has no attribute 'get_vertex_by_index'

Не могли бы Вы подсказать или направить, в какую сторону двигаться для решения проблемы


Ответы (1 шт):

Автор решения: strawdog

Как я написал в комментарии, используйте документированный метод points():

import ezdxf
dwg = ezdxf.readfile("polyline.dxf")
for entity in dwg.entities:
    print(entity.dxftype())
    if entity.dxftype() == 'POLYLINE':
        print(list(entity.points()))
POLYLINE
[Vec3(4.0, 3.0, 2.0), Vec3(8.0, 5.0, 0.0), Vec3(2.0, 4.0, 9.0)]

введите сюда описание изображения

→ Ссылка