Front Panel Position Confusion

In my program I have multiple wavefrom charts; I would like to call a reentrant subvi, ie small dialog window, that "pops up" over each chart, see attached picture.
I would like to dynamically set the position of the dialog window to match that of the waveform chart. However, I am having great difficulty in making any sense of the position, front panel bounds, chart position property nodes. I thought if I set the front panel position in my dialog window to the plot position, the top left hand corners would align. However, that is not working for me.
Any help would be appreciated.
Cheers,
Andrew
Solved!
Go to Solution.
Attachments:
Snap1.png ‏23 KB

I'm attaching 2 VIs that I hope will help, if I've understood what you want.  It's extremely sloppy and incomplete but the idea is right.  You click on the chart and some text pops up at the top left corner of the chart, regardless of where the chart window is on the screen.
The position of the chart within the panel will not change when the window moves, because the position of the chart is relative to the window that contains it.  So, you can use the chart position as an offset from the window position to find the position of the chart in real coordinates, which you then use as the position of your pop-up.
Attachments:
Text Pop-up.vi ‏10 KB
Chart with Pop-up.vi ‏22 KB

Similar Messages

  • Keeping Front Panel Position the same at runtime

    There has been some threads on here that say to set the Pane.Origin to 0,0 and that will set your front panel position to 0,0 every time you run.  I can't seem to get this to work.  I created a property node under GObject.Origin.  Then I tied a constant to the input and a constant to the reference.  I keep getting an error about the reference.  Any advise?  Maybe another way to do it?  I'm probably just doing something wrong.
    What I am trying to accomplish is when I am developing on the front panel and moving things around, I want the front panel to always run from the same position when I go to runtime.  I have tons of buttons that border the edge of the bottom of the screen and so they get covered up if I don't set the front panel back perfectly.  I am not using the scroll bars and the title menu is completely gone.  All that the user sees is the front panel that I have created.
    Thanks. 
    Solved!
    Go to Solution.

    I believe you need to obtain a reference to the pane starting from a "this VI" and working your way down the hierarchy, like this:
    This sets the origin on the first pane.  If you have more, you can put the last property node in an array and remove the index array node.
    (edit: note that the second property on the VI PN is a typo)
    This is a common thing to want to do at run time, but some of the other things you mention are a little suspect.  Why do you have "tons" of buttons off-edge?  There are a number of ways the user could accidentally see those despite your efforts to keep them hidden.  What function do they serve if they are GUI elements but excluded from the GUI? 
    Message Edited by blawson on 04-21-2010 02:02 PM
    -Barrett
    CLD

  • How to Save & reload front panel position

    I would like to save the front panel position into an ini file or registry, so that the next time the program is used, it comes up where the user left it.
    With the Invode Method: Front Panel.Run-Time postition.Get positon  
    I can get all the position data I want:
    left-top
    state
    monitor
    However...  How do I set the same information at startup?   
    There's no  Front Panel.Run-Time Position.Set position. as far as I can see...
    To set position, state and monitor values, it seems I need to first call  FP.Open for the state, then FP.Run-Time Position.Centered to select the monitor, and then FP.Run-Time Position.Custom to set the position....   
    That looks weird and complicated...    Am I missing something here?   Is there a more elegant approach?

    NI explains the difference between Property nodes and Invoke nodes as this.
    Property nodes access the properties of an object and allow you to read/write those properties.
    Invoke nodes perform actions on an application or VI allowing you to get and sometimes set attributes of those actions.
    Sometimes there is some overlap between Properties and Methods as you noticed with the "Get Position" method and the "Panel.Position" property. But most of the Methods do not have a similar Property. For instance, there is a Method you can use on a front panel item called "Get Image". This will return image data about the item that will let you save the items current visual appearance to a graphics file. (.bmp, .png, .jpg) There is no equivalent property to do this.
    So it really depends on what you are trying to do as to which one you end up using.
    Ed
    Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
    Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.

  • Get front panel position of the control strange behavior

    Hi,
    I have a code that returns the front panel coordinates of a control. I use the same code and front panel design (splitter/pane layout) in two separate VIs, but I get two different result in each VI and I cannot find the difference between them. VIs are attached. I have LV2013 f2.
    Attachments:
    1.vi ‏23 KB
    2.vi ‏16 KB

    Dear Andrej,
    you are indeed correct. If you happen to have multiple panels with splitters, the you have to account for the splitter positions as well, assuming they are to the left, or on top of your control. Here's some very simple code written for your example:
    Of course to make it more flexible for any setup, you will need to add some tuning to that (you can programmatically get the right pane instead indexing with Owning property, check splitter Vertical? property to decide which coordinate to add to, check whether to include splitter based on position and other things I've been too lazy to properly code ), but this is the basic idea.
    Kind regards:
    Andrew Valko
    National Instruments Hungary

  • How to get the position of the stem in control valve using slider control in the front panel

    I have created a calibration program for a control valve. Signal (4-20mA) is generated from labview using slider contorl which is given to the valve via DAQ(module 9265) and again the feedback signal from the valve is acquired using DAQ(module 9203).. . There is an input ISO/ISC(Increasing signal to open/ Increasing signal to close) in the front panel.
    ISO would set the output to increase from (4-20)mA further opening the valve
    ISC would set the output to increase from (4-20)mA further closing the valve
    I have doubt, how can i get the position of a stem

    Ravens Fan wrote:
    If the position of the stem is being sent to the PC through a 4-20 mA signal into your DAQ 9203 module, then you just need to do an analog input read in order to get the signal.
    When reading this post, that is what came to mind...  So let's see if both RavensFan & I are trying to understand the same thing...  Are you saying that the position of the stem is linear (or scaled) to the amount of current sent to it?  Meaning a 4mA signal would move it a certain distance, and 10mA would move another given / known distance?  Or are you saying that it is calibrated so that a 20mA signal for a certain duration (ms) would move it a given distance? So the scale would be time and not current unless a lookup table is used to adjust the time duration based on the current being drawn...
    It's just that I am not familiar with solenoid / drive devices that related to current..  To voltage, yes.  To time, yes..  To current, I'm simply saying that I am not familiar with that.  Can you tell us more about this stem (mfg / model designation)?

  • Bug: Front Panel objects relative position change when placing merge VI onto Block Diagram

    I've posted a bug report on LAVA, here:
    http://forums.lavag.org/Front-Panel-objects-relati​ve-position-change-when-placing-merge-VI-onto-Bloc​...
    If someone at NI can reproduce, can I please get a CAR #?
    Thanks,
    -Jim
    Solved!
    Go to Solution.

    Donovan B wrote:
    Hi Jim,
    After my previous post, I also saw this behavior, so I decided to do another test.  If there are no decorations in the VI set to “Merge VI” (“Place VI Contents” for LabVIEW 8.5 and later) the controls and indicators are still not selected when dropping the VI from the Functions palette.  I checked this behavior back to LabVIEW 7.1 and it is consistent throughout that controls and indicators are not selected.  (Consequently, so is the fact that when decorations are present they don’t maintain the relative position).
    I am not sure if this would be better suited as a CAR or product suggestion since it has been this way that long, but it does not appear to be related to the fact that decorations are present in the Merge VI.  It does seem strange that the decorations are selected though.  Looks like the best way to work around this is to drop the VI from the Controls palette.  Hopefully, it’s not too much of a hassle.
    Hi  Donovan,
    Thanks for checking in.
    >  I checked this behavior back to LabVIEW 7.1 and it
    is consistent throughout that controls and indicators are not
    selected.  (Consequently, so is the fact that when decorations are
    present they don’t maintain the relative position).
    This just means that not many people use this feature.  However, now that VIPM Professional makes it so easy to edit the palettes, I'm sure that others will start complaining that this doesn't work as they expect.
    > I am not sure if this would be better suited as a CAR or product suggestion
    since it has been this way that long, but it does not appear to be
    related to the fact that decorations are present in the Merge VI.
     Just look up the functional specifications for this feature and see if all objects are supposed to be selected.
    But seriously, is there a reason that only the FP decorations are selected?  Surely this would be documented somewhere, if there was a good reason for this current (IMO, buggy) behavior.
    > It
    does seem strange that the decorations are selected though.  Looks like
    the best way to work around this is to drop the VI from the Controls
    palette.  Hopefully, it’s not too much of a hassle.
    That's not a reasonably work-around, IMO.  It doesn't make sense to drop Block Diagram components onto the Front Panel.  For example, this bug affects the JKI State Machine.  It doesn't make sense to drop a State Machine onto the Front Panel.
    So, I'd file it as a CAR/bug, and then wait to see how LV R&D feels about it.  If they can find some valid reason for why Controls and Indicators shouldn't be selected, then that's fine (and hopefully someone will explain it to me).
    Thanks,
    -Jim

  • Adjust front panel to screen size and re-position objects on different systems automatically

    Hello, i have designed a vi that contains 5 led's placed at the 4 corners and center of the front panel which occupies the entire screen. However, this vi is to be used on different systems having different screen sizes. But on every screen, i'll need the front panel size = screen size and the led's to  be placed to the centers and corner of this new screen size automatically without any manual operations and positioning bieng done every time. Will the resize option perform this task completely or do i have to go for some other techniques?
    Solved!
    Go to Solution.

    As far as I know, what you want is not easy to do but it is doable but you have to programmatically do it (no Labview setting). Here is an example for only 2 LEDs but I suppose that you will be able to make it work for your other LEDs.
    This VI maximizes the front panel and then positions the 2 LEDs in the center and top right corner upon running. The LEDs are positioned according to their own top left  corners, not according to their centers.
    Marc Dubois
    HaroTek LLC
    www.harotek.com
    Attachments:
    Position LEDs.vi ‏14 KB

  • Fix position of 3D graph in front panel

    Hi I haev used 3D graphs in my VI but whenever I open my vi I see that the position of 3D graph has changed in my Front Panel  and it takes a lot of time to rearange everything again. It also change the position of the other things like pics or  Tab boxes. Is it something related to the resolution of the screen? and how can I fix it to not change because I want to use my laptop for a presentation and I would like to avoid this mess during demostrating my vi
    Many thanks

    Hi,
    I don't know if it would help, but you can lock the psoition of front panel objects. Select the object and then select Reorder >> Lock from the toolbar:
    -CC
    "If anyone needs me, I'll be in the Angry Dome!"

  • Setting up position of front panel objects using input from file

    I am working on a project and i have got the following query.
    i have a front panel with lot of objects like knobs,dials,push buttons etc..
    the entire panel will be the console to the user and as he changes the various
    positions of the objects their values will be written in to a file.
    now after a days work when the system is restarted again the next day
    the values of various objects should be read from the file and the front panel objects should be set in their position according to it
    in short the objects(knobs,buttons etc) should both act as o/p i.e when user interacts with them and they should also act as i/p when their position will be set from
    file.
    how can i achieve this.any help regard
    ing this would be greatly appreciated

    You should separate the read portion of this vi from the write portion of the vi. You want to execute the read portion of the vi only at startup and the write portion of the vi only at shutdown. So you'll be reading the file and writing the output to the property nodes, running your program, and then taking the value of the controls and writing to file. I have attached an example of how this might work. You might also do this with a state machine structure to control the data flow.
    Hope that helps
    Attachments:
    query.vi ‏49 KB
    read_file.vi ‏42 KB
    write_file.vi ‏36 KB

  • Scope soft front panel signal position

    I'm using the new version of the Scope Soft Front Panel, 2.7f0.
    How can I change the position of Ch 0 relative to Ch 1. When they are right on top of eachother, its not as clear. The older soft scope allowed them to be moved.
    You can see in the attached picture that there is a little action cursor available as I hover over the channel designator on the left. But no action is available.
    Anybody know how to do this? I don't want to use the offset values, because then I have to change the trigger levels as well
    ~~~~~~~~~~~~~~~~~~~~
    Paul Johnson
    Renco Encoders, Inc
    Goleta, CA
    ~~~~~~~~~~~~~~~~~~~~
    Attachments:
    New Scope.jpg ‏146 KB

    Thanks Raajot,
    Unfortunately, the first method does not work. Seems like the channels
    move together and can't be separated. However, changing to the classic
    mode with the scroll bars works fine.
    Its nice having the controls for both channels available in the new
    mode, but I can't have the signals laying ont op of each other, so I
    suppose I'll just have to stick with the old mode.
    Does changing the vertical postion apply to only one channel on your
    installtion? On mine, as soon as I pick a percentage, that same value
    appears if I pick a different channel on the channel selector control.
    Strangely enough, the menu method works fine in the classic mode. I
    suspect a bug with the new mode. Otherwise, I'd be able to drag the
    channel indicator in the new mode,  similar to having scroll bars in
    the classic mode.
    ~~~~~~~~~~~~~~~~~~~~
    Paul Johnson
    Renco Encoders, Inc
    Goleta, CA
    ~~~~~~~~~~~~~~~~~~~~

  • Position Sub VI front panel

    Is there an easy way of positioning the Front panel of a sub VI on a coordinate point of the calling VI?

    I just found the SnapToPanel utility on the community.
    Description
    The SnapToPanel VI enables you to position a Target VI window relative to a Reference VI window.
    Use the SnapToPanel VI in your application to control the position of sub-panels relative to the main application panel.
    Ton
    Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
    Nederlandse LabVIEW user groep www.lvug.nl
    My LabVIEW Ideas
    LabVIEW, programming like it should be!

  • How do I automatically make new front panels and block diagrams a certain size and screen position, like able to fit on a 1024 x 768 screen?

    I'm studying for the CLD and I notice that one of the requirements is this:
    Develop block diagrams to fit a screen resolution of 1024 x 768.
    When I create a new VI, its resolution is slightly too big: 1110 x 768.
    When I create a subVI via the menu item Edit >> Create SubVI, it is way too small: 800 x 543.
    For both methods of creating new VIs, I would like to specify both the screen position and window size. But if that is not possible in LabVIEW, I'd like a quick way to make this happen. I see some property nodes for VIs where I could write a subVI that could do this for the front panel, but that is awkward. And it does not apply to block diagrams.
    Is there a clever way to do these things?

    bmihura wrote:
    I'm studying for the CLD and I notice that one of the requirements is this:
    Develop block diagrams to fit a screen resolution of 1024 x 768.
    When I create a new VI, its resolution is slightly too big: 1110 x 768.
    When I create a subVI via the menu item Edit >> Create SubVI, it is way too small: 800 x 543.
    For both methods of creating new VIs, I would like to specify both the screen position and window size. But if that is not possible in LabVIEW, I'd like a quick way to make this happen. I see some property nodes for VIs where I could write a subVI that could do this for the front panel, but that is awkward. And it does not apply to block diagrams.
    Is there a clever way to do these things?
    It doesn't mean the default size of the window. It means once your code is complete, your block diagram should be small enough that you can see all your code when its on a monitor of that resolution. Before you test, set your computer monitor resolution to 1024x768. Write your code. If all the code on your block diagram can be seen without scrolling, you will be fine. They won't measure this explicitly. They are basically just saying "you shouldn't have a huge block diagram."
    CLA, LabVIEW Versions 2010-2013

  • How to open front panel of a VI running in RT.

    Hi,
    I have an application to read the encoder position using the cRIO program. I have made an executable and this application runs as startup application whenever the controller reboots. Right now, i am accessing the VI of the startup exe through Remote Panel connection. This works fine but everytime i close the remote panel , i have to reboot the controller for the next view.
    So is there any alterntaive to open the front panel of the VI.
    I tried using VIServer but ran into errors. (i tried using front panel -open property node.did not work)
    Also i do not have any VIs stored on the controller. Only the exe is stored on the ni-rt/startup folder on the RT controller.
    Please let me know how to open this VI.
    Thanks.

    Hi Ben,
    When i close the remote front panel the first time, i am terminating the RT VI which is running on startup.
    So i had to reboot everytime to access the remote VI.  I guess that the VI (exe) should be continuosly running when the RT is started up. The remote panel only should be opened and closed. After I close the remote panel , i want a windows VI to be opened up.
    I have a Windows VI which programmatically opens connection to the RT server for opening the remote panel. The VI runs. When the user clicks Exit on this RT VI, the VI running is stopped and then another windows VI opens up. This works fine for first time. Since the RT VI is terminated, second time , if I run, it says, VI not in server memory.
    Is there a method to close the remote panel programmatically in the RT VI itself. I have a Exit button in this RT VI, so if the user clicks, Exit, the program has to be running, but the remote panel has to close. There is a method called close connection to client , but this does not work in RT , as this requires VI path.. Right now , when the remote panel RT VI is launced, to close the remote panel, i click on the 'close' button on the VI title bar. Again when the remote panel is launched, there is no error. but is there a method to close the remote panel in the server(RT VI itself).   i have attached the VI.
    Thank you.
    Attachments:
    Dummytest.vi ‏39 KB

  • Exporting front panel of subVI to calling VI

    Is there a way to "export" the front panel of a subVI so that it becomes part of the (or a pane of) the calling VI? If so, what is it called? I don't know the right language to search for examples of this concept.
    My problem is as follows:--
    I built a nice, classy interface to a test program that allows the user a great deal of flexibility in controlling the parameters of the device under test and in seeing the impact of those parameters on other parameters. This has about 8-12 control objects, some of which are also wired to act as indicators so that changing one can display on another and vice versa. This interface and its supporting program is big enough that it belongs in its own subVI rather than in the main program. In addition, I built another interface that charts signals from the device under test; this is also big enough that it belongs in its own subVI.
    I would like to have the front panels of both of these VIs be part of the front panel of the main program. That is, the front panel of the main program should "inherit" the front panel of each subVI wholesale. If I need to tweak the interface of one of the subVIs -- for example, to add, delete, or replace controls, indicators, displays, charts, etc. -- I would like to be able to do this without having to wrestle with the main VI and the connector pane between it and the subVI.
    It seems that LabView should be capable of this, but I cannot find any help, guidance, pointers, etc., in the documentation, textbooks, or examples.
    Could someone give me a clue?
    Thanks,
    Hugh Lauer

    So I tried to configure a subpanel, and found it very confusing. It seems that when you put a subpanel control on the front panel, you have to then set up a way to invoke the subVI. Since my subVI has some inputs and outputs on its connector pane, I created a VI reference for it and wired that to the type specifier node of the Open VI Reference node. I then inserted a Call VI by Reference node, so that I could wire up the inputs and outputs of my subVI. Finally, I wired this to the subpanel Invoke Method (Insert VI).
    This is different from the examples I found. In those cases, the subVIs had no inputs or outputs on their connector panes, but rather took all of their information from their front panels.
    I got different behavior on different attempts to run it. The most common (and most recent) behavior is that the subVI front panel opens up a few seconds after the main VI starts, but it is not quite "in" the subpanel. Instead, it is offset about an inch from both the top and left, as if it were a floating window that I cannot move. Also, it has annoying scroll bars on the bottom and right, which I don't want.
    Incidentally, I have two of these subVIs, and I have not yet tried to put the second one into a subpanel.
    What I would really like to do is
    have both subVIs populate their respective subpanels as soon as the main VI starts, but before any work gets done.
    after both subpanels are loaded, run the two subVIs in parallel, one to control the device under test and the other to capture its signals.
    have no scrollbars in the subpanel windows.
    In fact, what would be the best from a GUI point of view is for the two subpanels to be permanently part of the front panel of the main VI.
    Any guidance or insight would be most helpful.
    REgards,
    Hugh

  • Floating VI front panel

    I have question regarding keeping a specific VI front panel always "On Top" of any other front panels(Sort of like toolbar pallete floats over the "main" window in LabVIEW). I can set the front panel properties to be a dialog (ModaL) but then I don't have access to menu or any other controls on the other front panels. I can set the front panel properties to normal, but when the operators click on main front panel the other front panel goes to the back. We have very very very novice computers and they get confused and they can't "find" the "other front panel".
    Any help would be greatly appreciated.
    Thanks

    If you have LabVIEW 7.0 or 7.1, there is another selection in Window Apperance setup called 'Floating' that does exactly what you want.
    If you have an earlier version, this Dev Zone thread may help.
    Ed
    Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
    Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.

Maybe you are looking for