24f6b76f06
- EBENEN: drawing levels updated, sublayer not found, saved/verified - GESTALTUNG: Linetypes before/after, fill field, opened/focused - CLIP: disabled done - ELEMENTE: Bulk-op, Listener bail - Global: not found, not available, unchanged, failed, present
73 lines
2.4 KiB
Python
73 lines
2.4 KiB
Python
#! python3
|
|
# -*- coding: utf-8 -*-
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
# Copyright (C) 2026 Karim Gabriele Varano
|
|
"""
|
|
dossier_view_mode.py
|
|
Setzt Display-Mode (+ optional Standard-Ansicht) im aktiven Viewport.
|
|
|
|
Aufruf:
|
|
_-RunPythonScript "/.../dossier_view_mode.py" <mode>
|
|
mode: plan | persp3d | material | raytracing
|
|
"""
|
|
import sys
|
|
import Rhino
|
|
|
|
|
|
_MODES = {
|
|
"plan": {"display": "Dossier Plan", "view": "Top", "label": "DOSSIER Plan-Mode"},
|
|
"persp3d": {"display": "Dossier 3D", "view": "Perspective","label": "DOSSIER 3D-Mode"},
|
|
"material": {"display": "Dossier Material", "view": None, "label": "DOSSIER Material-Mode"},
|
|
"raytracing": {"display": "Dossier Raytracing", "view": None, "label": "DOSSIER Raytracing"},
|
|
}
|
|
|
|
|
|
def _apply(mode_name):
|
|
spec = _MODES.get(mode_name)
|
|
if spec is None:
|
|
print("[VIEW-MODE] Unbekannt:", mode_name)
|
|
return
|
|
try: Rhino.RhinoApp.SetCommandPrompt(spec.get("label", "DOSSIER View"))
|
|
except Exception: pass
|
|
doc = Rhino.RhinoDoc.ActiveDoc
|
|
if doc is None:
|
|
print("[VIEW-MODE] Kein aktives Doc")
|
|
return
|
|
view = doc.Views.ActiveView
|
|
if view is None:
|
|
print("[VIEW-MODE] Kein aktiver Viewport")
|
|
return
|
|
# Standard-View setzen (Top / Perspective) falls definiert
|
|
vw_name = spec["view"]
|
|
if vw_name:
|
|
try:
|
|
view.ActiveViewport.SetProjection(
|
|
Rhino.Display.DefinedViewportProjection.Top
|
|
if vw_name == "Top"
|
|
else Rhino.Display.DefinedViewportProjection.Perspective,
|
|
vw_name, True)
|
|
except Exception as ex:
|
|
print("[VIEW-MODE] view-set:", ex)
|
|
# Display-Mode setzen via Description-Lookup
|
|
dm_name = spec["display"]
|
|
try:
|
|
all_dm = Rhino.Display.DisplayModeDescription.GetDisplayModes()
|
|
target = None
|
|
for d in all_dm:
|
|
if d.EnglishName == dm_name or d.LocalName == dm_name:
|
|
target = d; break
|
|
if target is None:
|
|
print("[VIEW-MODE] Display-Mode not found:", dm_name)
|
|
return
|
|
view.ActiveViewport.DisplayMode = target
|
|
view.Redraw()
|
|
except Exception as ex:
|
|
print("[VIEW-MODE] display-mode:", ex)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) >= 2:
|
|
_apply(str(sys.argv[1]).strip().lower())
|
|
else:
|
|
print("[VIEW-MODE] Erwartet Mode-Name:", ", ".join(_MODES.keys()))
|