Как разобрать блок dxf, передать слой в sub_entities и сохранить с помощью ezdxfPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как разобрать блок dxf, передать слой в sub_entities и сохранить с помощью ezdxf

Сообщение Anonymous »

Я работаю над ezdxf v1.3.3. Я пытаюсь извлечь все INSERT из файла. Я бегу к проблеме. Когда я разбираю блок, я хочу передать sub_entities слой блока. Когда я проверяю печать в терминале, я думаю, все работает нормально... Но в конце, когда я открываю файл dxf, ни один слой не является атрибутом sub_entities.
Кто-нибудь подскажет, пожалуйста?

Код: Выделить всё

import ezdxf

class tool_test:
def __init__(self, dxf = str) -> None:
self.name = dxf
self.doc = ezdxf.readfile(self.name)
self.msp = self.doc.modelspace()

def all_blocks_2_polylines(self):
while len(self.msp.query("INSERT")) != 0:
for entity in self.msp:
layer = entity.dxf.layer
self.blocks_2_polylines(entity, layer)
self.doc.save()

def blocks_2_polylines(self, entity, layer):
explode = []
if entity.dxftype() == 'INSERT':
explode = entity.explode()
for ent in explode:
if hasattr(ent.dxf, 'layer'):
ent.dxf.layer = layer
print(f"Entity {ent.dxftype()} on layer {ent.dxf.layer}")
elif entity.dxftype() == 'HATCH':
self.msp.delete_entity(entity)

if __name__ == '__main__':
dxf = 'your_path_here'
print("start")
my_tool = tool_test(dxf)
my_tool.all_blocks_2_polylines()
print("done")
Я прочитал документ, но не нашел ничего, кроме «TODO», я также спросил Chat GPT, но он не нашел лучшего решения, чем мое. Наконец я попытался добавить sub_entities в новый файл. В большинстве случаев это работало, но мне это решение не нравится...

Подробнее здесь: https://stackoverflow.com/questions/790 ... with-ezdxf
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»