icon

Das Wissen aller Anwender nutzen

Im Allplan Connect Forum tauschen sich Anwender aus, geben wertvolle Tipps oder beraten sich bei ganz konkreten Aufgabenstellungen − auch international.
Und damit wirklich keine Frage unbeantwortet bleibt, unterstützen die Mitarbeiter des Technischen Supports ebenfalls aktiv das Forum.

Es erwarten Sie:

  • Foren-Vielfalt aus CAD Architektur, CAD Ingenieurbau uvm.
  • Tipps von User für User
  • international: Deutsch, Englisch, Italienisch, Französisch und Tschechisch

Melden Sie sich jetzt an und diskutieren Sie mit!

Zur Registrierung

[Frage] Bildschirm-Massstab auslesen

Schlagworte:
  • PythonParts
  • GetScreenScale
  • NemAll_Python_IFW_Input
  • ViewWorldProjection
  • GetViewWorldProjection
  • 2025

Hallo zusammen

ich habe ein Standard-PythonPart, in dem ich den Bildschirmmassstab über ViewWorldProjection.GetScreenScale() auslesen möchte.
Der untenstehende Code hat in Allplan 2024 noch funktioniert, in Allplan 2025 erhalte ich jedoch eine Fehlermeldung.

Kennt jemand einen Workaround oder eine alternative Methode, um den Bildschirmmassstab in Allplan 2025 auszulesen?

vp = AllplanIFWInput.InputViewDocumentData.GetViewWorldProjection()
if vp:
    scale = vp.GetScreenScale()

Boost.Python.ArgumentError: Python argument types in
    InputViewDocumentData.GetViewWorldProjection()
did not match C++ signature:
    GetViewWorldProjection(class Allplan::IFW::Input::InputViewDocumentData {lvalue})

Gruss und Dank
Hansruedi

in Allplan 2026 PythonFramework und Examples finde ich nur folgende Verwendung:

view_proj = self.coord_input.GetViewWorldProjection()

Es gibt also scheinbar keine statische Methode GetViewWorldProjection() mehr.
Man braucht dazu ein AllplanIFW.CoordinateInput-Object, welches man scheinbar nur bei einem Interactor-PythonPart bekommt.

Zitiert von: nemo
Es gibt also keine statische Methode GetViewWorldProjection() mehr.
Man braucht dazu ein AllplanIFW.CoordinateInput-Object.

Der unten stehende Code funktioniert grundsätzlich, führt jedoch in einigen Fällen dazu, dass Allplan abstürzt.

coord_input = AllplanIFWInput.CoordinateInput()
vp = coord_input.GetViewWorldProjection()

if vp:
    scale = vp.GetScreenScale()

Es ist nicht sinnvoll, ein solches AllplanIFW.CoordinateInput-Object innerhalb das PythonParts zu instanzieren (zu erzeugen)!
Selbst wenn das möglich ist: Das führt zu den Abstürzen!

Man braucht dazu ein AKTUELLES AllplanIFW.CoordinateInput-Object, welches man nur bei einem Interactor-PythonPart vom Framework "reingereicht" bekommt.

Anhänge (1)

Typ: image/png
17-mal heruntergeladen
Größe: 72,10 KiB

Zitiert von: nemo
... welches man nur bei einem Interactor-PythonPart vom Framework "reingereicht" bekommt.

Danke für die Antwort.
Leider habe ich ein Standard-PythonPart.

Eigentlich hat es mich überrascht, dass das selbst instanziierte AllplanIFWInput.CoordinateInput() überhaupt funktioniert.