Hallo liebe LabVIEW-Community!
Per Rechtsklick auf einen Graphen (in meinem Fall ein Signalverlaufsgraph) lassen sich Notizen/Annotations per Hand erstellen.
Nun ist es aber so, dass ich meinen Signalverlaufsgraph erstelle und anschließend programmatisch mit einem "Notiz-Pfeil" auf einen bestimmten Wert "deuten" will.
Es gibt ein NI-Beispiel dazu, in dem die Notizpfeile auf den Max. - und Min.-Wert zeigen. Jedoch sind dort die Pfeile scheinbar schon vorgegeben und programmatisch wird nur die Position verändert... oder ich verstehe das Beispiel einfach nicht - kann auch sein
Deshalb meine Frage:
Wie erstelle ich programmatisch einen Notizpfeil, der auf einen bestimmten Wert/Punkt im vorliegenden Graphen zeigt ?
Schonmal vielen Dank im Voraus!
Greetings
Hallo Johnny,
wenn du das Beispiel auch benannt hättest, müsste man nicht selbst suchen...
Alles was im VI als Konstante hinterlegt ist, kann auch programmatisch erzeugt werden. Also: einfach die richtigen Werte im Annotation-Cluster eintragen und schon zeigt der Pfeil in die richtige Richtung...
Edit:
Ah, hab das Beispiel gefunden: "Programmatisch Kommentare zu Graphen hinzufügen". Da sind keine Konstanten hinterlegt, es werden ständig die erforderlichen Parameter neu gesetzt!
"Einfach" die PropertyNode "Annotation List" (Array of Cluster) setzen.
[
attachment=38067]
Gruß, Jens
Hallo Gerd & Jens!
Danke für die schnellen Antworten!
Ja, soweit wie ihr es mir beschrieben habt, bin ich schon. Wird (sobald z.b. "Show Arrow" TRUE gesetzt ist) der Pfeil gesetzt, oder muss ich ALLE Elemente des Clusters benennen?
Denn: Bei mir geht irgendwie noch gar nichts... Belegt habe ich bisher nur
Name
Show Arrow
Name Visible
Position.X
Position.Y
Index
als Elemente im Cluster.
Das VI kann ich leider nicht posten, da 1) zu groß und 2) mein Chef wohl was dagegen hätt ;-(
Greetings
Hallo Johnny,
guck dir doch einfach (mit einer Sonde) an, was sonst noch im Beispiel so gesetzt ist! Evtl. musst du noch den "Label Offset" vorgeben...
Der Cluster muss natürlich genauso aussehen wie in der Hilfe beschrieben!
Am einfachste erzeugst du dir einen Vorlage-Cluster über Rechtsklick auf die PropertyNode->Create->Constant.
Dann über Bundle by Name diejenigen Elemente setzen, die du brauchst.
Gruß, Jens
Zwecks VI (nicht) posten, Bsp-VI erstellen, das nur den Graph und deinen Sourcecode für die Annoation List enthält. Das darfst du bestimmt hochladen.
Hier jetzt zumindest mal ein Screenshot von meinem "Problem".
"PlotArray" sind die Werte aus dem Signalverlaufsgraph, aus denen ich den Standort/Index des Wertes ("Referenzwert") zunächst suche, auf den ich deuten will.
Man erkennt, dass ich das schon ziemlich 1:1 aus dem Beispiel von NI übernommen hab
Ich muss dazu erwähnen, dass der Graph einer mit "dynamischen Werten" ist. Heißt: ich habe zwei Plots, jedoch soll der Pfeil mit der Notiz nur an DEN Plot, welcher eben als "PlotArray" nochmal zwischengespeichert ist. Liegt hier vll der Fehler? An der "Graphform" dynamisch ?
Sorry, hab die Verbindung von Index->Position.Y vergessen! die ist natürlich dabei. ahja und Y und X sind vertauscht. (Funzt trotzdem nicht)
Brauche wohl erstmal einen kaffee -.-
Hallo Johnny,
ich würde ja auch noch einen Y-Wert vorgeben...
Ah, das hast du schon bemerkt
1) Wenn du 2 Plots im Graphen hast, dann solltest du auch die Eigenschaft "Plot" innerhalb des Annotation-Clusters setzen.
2) Zwecks "Replace-Array" funktioniert dein Screenshot nur, wenn schon vorher mind. 1 Notiz im Graph angelegt ist. Ansonsten ist das Array leer.
Gruß, Jens
Hallo Jens,
vielen Dank für die Infos! Einzig das mit dem "Replace-Array" verstehe ich nicht ganz... habe die Struktur wie gesagt aus dem NI-Beispiel übernommen
Wie muss ich den Code ändern?