LabVIEWForum.de - Zoombereich bei x-y-Graph auslesen

LabVIEWForum.de

Normale Version: Zoombereich bei x-y-Graph auslesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,
ich möchte in einem XY-Graphen gerne reinzoomen was ja kein Problem ist. Jedoch soll nach jedem Zoomvorgang der eingezoomte Bereich mit einer höheren Auflösung neu berechnet werden. So was in der Art wie beim reinzoomen in Fraktale, die ja auch immer hochaufgelöster werden.
Kennt da jemand von euch eine Möglichkeit das zu realisieren? Es wäre mir auch shcon geholfen, wenn ich die Grenzen des eingezoomten Bereichs beim Zoomen auslesen könnte.
Danke euch und wünsch euch noch ein schönes Wochenende

Karl
<div align="left">Hallo, Karl,

ich weiss nicht, ob das Folgende alle deine Probleme löst, aber unter LV8.20 kannst du das Event "XY-Graph: Scale Range Change" verwenden, um zumindest erst mal einfach festzustellen, das sich die Skalen geändert haben und somit ein Zoom-Vorgang vorgelegen hat.

Die Werte vor der Größenänderung könntest du über Variablen zwischenspeichern. Damit weisst du die alten Werte und durch das Event auch die neuen Werte.

MfG, Jens</div>
Hi Jens,
danke das hilft mir schon mal ein bischen weiter. Leider hab ich grad mein LV 8.2 nicht installiert, will das im Moment auch nur ungern.
Unter LV 7.1 findet sich da nix? Das wär sch...öner Mist.

Gruß
Karl
<div align="left">Hallo, Karl,

das von mir beschriebene Event gibt es erst seit LV8.0.

Unter LV7.1 musst du das "von Hand" machen, zum Beispiel über benutzerdefinierte dynamische Events. Das ist bei Verwendung der Event-Struktur auch recht angenehm vm Programm-Ablauf.

Ich habe so was in der Art schon mal unter LV7 gemacht.

Hierzu liest du einfach im Timeout-Case der Event-Struktur die Skalenwerte deines XY-Graphen aus und überprüft sie auf Veränderung. Dann kannst du die entsprechenden Events auslösen.

MfG, Jens

Alternative: Doch LV 8.20 installieren. Denn was spricht dagegen? Parallelinstallation ist möglich und kein Problem.</div>
Du kannst mittels Property Notes auslesen, welcher Bereich deines Graphen gerade dargestellt wird.
Hab gerade kein LabVIEW da, aber ich glaube du findest das unter: Properties - x(y) Achse - Max(Min)

Das sollte auch funktionieren. Müsstest du halt in einer Schleife mittels Schieberegister abgreifen, wann sich der Wert geändert hat und dann die neue Berechnung starten. Nicht so elegant wie ein Event, aber funktioniert sicher.
<div align="left">Hallo, Karl,

anbei ein paar Screenshots. Ich habe die benutzerdefinierten Events verwendet, um die x-Skalen zweier Graphen zu synchronisieren. Inzwischen bin ich aber auf die neuen Events umgestiegen.

Zuerst ein Screenshot der Registrierung der benutzerdefinierten Events, die dann im Timeout-Case der Event-Struktur auf eine Änderung überprüft werden.
[attachment=3498]

Hierzu habe ich ein OnChange-SubVI (die kleinen Icons mit dem Fragezeichen) verwendet, das ich mal im Internet gefunden habe. Dieses muß natürlich auf reentrant eingestellt sein, da ich es mehrfach parallel verwende. Es spart das Schieberegister an der äußeren Schleife und bringt so ein wenig mehr Übersicht. Hier der Screenshot des Sourcecodes:
[attachment=3500]

Und dann gab es in der Eventstruktur das entsprechende Event, wo ich dann auf die Änderung reagieren konnte:
[attachment=3499]

Dieses Vorgehen ist natürlich nur in einem VI sinnvoll, in dem du sowieso schon eine Event-Struktur, um auch auf andere Benutzereingaben zu reagieren. Ansonsten langt auch, was Kvasir vorgeschlagen hat.

MfG, Jens</div>
Referenz-URLs