1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
# Copyright (c) 2018-2022 Manfred Moitzi
# License: MIT License
import ezdxf
from ezdxf import recover
from pathlib import Path
DXF_ENTITY = "SUNSTUDY"
def has_dxf_entity(filename, entity_name):
try:
doc = ezdxf.readfile(filename)
except IOError:
return False
except ezdxf.DXFError:
try:
print("Using recover mode.")
doc, auditor = recover.readfile(filename)
except ezdxf.DXFStructureError:
print(f"DXF structure error!")
return False
entities = doc.modelspace().query(entity_name)
if len(entities):
return True
entities = doc.objects.query(entity_name)
return bool(len(entities))
def process_dir(folder: Path):
for filename in folder.iterdir():
if filename.is_dir() and filename.stem != "BigFiles":
process_dir(filename)
elif filename.match("*.dxf"):
print(f"processing: {filename}")
if has_dxf_entity(filename, DXF_ENTITY):
print("\n" + "*" * 40)
print(f"FOUND: {DXF_ENTITY}")
print("*" * 40 + "\n")
process_dir(ezdxf.options.test_files_path)
|