9fcada260e
- Fix sed $-anchor issue: 'Panel registriert' now replaced globally - Translate: Listener aktiv, Select-Handler, Closing-Hook, Doppelklick-Handler - Translate SPLASH messages: gesetzt/angewendet - Translate ALIAS-LOADER, WELCOME, ELEMENTE migration messages - Full rsync of all rhino/*.py to PROJECTS (previously partial sync missed schnitte.py, wand_grips.py, treppe_grips.py, text_editor.py, welcome.py etc.)
54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
#! python 3
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
# Copyright (C) 2026 Karim Gabriele Varano
|
|
"""
|
|
clean_layers.py
|
|
Loescht Rhino-Standardlayer (Default, Layer 01-05 usw.)
|
|
die keine Objekte enthalten und nicht zum RhinoPanel gehoeren.
|
|
Ausfuehren via _RunPythonScript.
|
|
"""
|
|
import re
|
|
import Rhino
|
|
import scriptcontext as sc
|
|
|
|
sc.sticky["rhinopanel_registered"] = False
|
|
sc.sticky["rhinopanel_form"] = None
|
|
|
|
doc = Rhino.RhinoDoc.ActiveDoc
|
|
|
|
PROTECTED = {
|
|
"10_grundrisse", "20_schnitte", "30_ansichten",
|
|
"00_raster", "01_vermessung", "40_situation",
|
|
"90_referenzen", "99_konstruktion",
|
|
}
|
|
|
|
pattern = re.compile(r'^(default|layer\s*0*\d+)$', re.IGNORECASE)
|
|
|
|
gone = []
|
|
skip = []
|
|
|
|
for i in range(doc.Layers.Count - 1, -1, -1):
|
|
layer = doc.Layers[i]
|
|
root = layer.FullPath.split("::")[0].strip().lower()
|
|
if root in PROTECTED:
|
|
continue
|
|
if not pattern.match(layer.Name.strip()):
|
|
continue
|
|
try:
|
|
if doc.Layers.Delete(i, True):
|
|
gone.append(layer.Name)
|
|
else:
|
|
skip.append(layer.Name)
|
|
except Exception:
|
|
skip.append(layer.Name)
|
|
|
|
doc.Views.Redraw()
|
|
|
|
if gone:
|
|
print("[clean_layers] Geloescht: {}".format(", ".join(gone)))
|
|
else:
|
|
print("[clean_layers] Nichts geloescht (schon sauber?)")
|
|
if skip:
|
|
print("[clean_layers] Uebersprungen (Objekte drauf): {}".format(", ".join(skip)))
|
|
print("[clean_layers] Panel-Sticky zurueckset")
|