diff --git a/lib/dxf2lib.py b/lib/dxf2lib.py index 5d3c0b8..7683d8d 100644 --- a/lib/dxf2lib.py +++ b/lib/dxf2lib.py @@ -26,7 +26,7 @@ def create_block_library(input_dir, output_file, config, logger=None): logger: Optionaler Logger für Logging-Ausgaben Note: - - Unterstützte Entity-Typen: LINE, LWPOLYLINE, POLYLINE, SPLINE, CIRCLE, ARC, INSERT + - Unterstützte Entity-Typen: LINE, LWPOLYLINE, POLYLINE, SPLINE, CIRCLE, ARC, INSERT, REGION, … - Blöcke werden zentriert und in einem 20x20 Raster angeordnet - Erstellt eine Log-Datei mit Zeitstempel für fehlerhafte Dateien - Automatische Erstellung des Output-Verzeichnisses falls nötig @@ -74,6 +74,7 @@ def create_block_library(input_dir, output_file, config, logger=None): "REVOLVEDSURFACE", "LOFTEDSURFACE", "SWEPTSURFACE", + "REGION", } filtered_entities = [] att_def= {} @@ -560,6 +561,13 @@ def get_entity_bounding_box(e, doc,src_doc,filename,config, transform_matrix=Non if transform_matrix: insert_point = transform_matrix.transform(insert_point) + elif e.dxftype() == 'REGION': + # Region: Begrenzungsgeometrie über virtual_entities() + ve_bbox = _bbox_from_virtual_entities( + e, doc, src_doc, filename, config, transform_matrix + ) + if ve_bbox.has_data: + bbox.extend(ve_bbox) elif e.dxftype().endswith('SURFACE'): # Viele Surface-Typen liefern ihre Proxy-Geometrie über virtual_entities()