Initial commit — Dossier Rhino 8 Plugin
OpenStudio-Suite Architektur-Plugin fuer Rhino 8 (Mac): - Smart-Elemente: Wand, Decke, Dach (Pult/Sattel/Walm/Mansarde), Oeffnungen (Fenster/Tueren mit Rahmen + Sims + Glas + Fluegel), Treppen (gerade · L · Wendel mit Schrittmass-Validierung) - Live-Previews mit Step-Lines + Soll-Range-Clamping - Bidirektionale Selection-Sync zwischen Source-Linie und Volume - Geschoss-/Ebenen-Verwaltung mit OKFF-Persistenz - Layouts mit PDF-Export - Ausschnitte / Massstab / Override-Regeln - Petrol-Gruen Theme (Rapport-konform) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
# ! python3
|
||||
"""
|
||||
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 zurueckgesetzt")
|
||||
Reference in New Issue
Block a user