LabVIEW Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

It would be nice to have the ability to use a Startup VI icon as the executable icon from the build specifications menu.

 

18641i46F31ADE0962A2F8

I would love it if LabVIEW had logical constants, similar to what other languages have. Basically, a logical constant is similar to a variable (i.e. it's a value which is assigned a name), but its value is set at compile time. CONSTs help code readability.

 

In LabVIEW, a CONST would basically be similar to a global variable, with two differences:

 

1. It would be read only (so no race conditions, everyone can relax).

2. Changing the value on the front panel of the CONST VI will automatically require the user to save the VI, without needing to manually set the new value as the default.

 

Today, you can implement these in LabVIEW using all kinds of methods, but non of them is as convenient as this.

I find myself with my fingers on the shift and arrow keys a significant amount of time while trying to make my code more readable. Invariable I switch between the arrow keys and the mouse in the process of straitening and aligning. Why not use the arrow keys for both alignment and object movement?

 

I'll let the following illustrations explain what I mean. I'm only showing a limited subset of the possible combinations, most of the time you can go in all 4 directions.

 

Basic

 

 

Note that during a "combo" (the control key isn't released) the original order of the objects will need to be remembered, so that when they are all aligned into a corner, subsequent combinations will maintain the order.

 

 

 

 

 

 

 

Building on that, more advanced functions are below:

 

advanced.gif

 

For the diagonal, once they are aligned to a corner, the diagonal can go in any of the 4 directions.

 

 

As you can see, this will emmensely increase productivity and general neatness of code. And perhaps more importantly, it will bring us even closer to our ultimate goal: making LabVIEW programming even more like playing a video game.

It would be helpful to have an array control property that fixed the number of elements in the array control to the specified size.  This would allow the developer to programmatically set the array control dimensions such that the user is unable to add new elements to the array.  This is specifically necessary when the number of elements in the array control may vary and may also be too large to display all of the elements.  If the scrollbar(s) are visible, then the user will always be able to add a new element add the bottom by editing the available empty element value.  This is undesireable if the developer wants to prevent the addition of new elements by the user.

   

Please see the discussion forum post below for the details of the issue and current workaround.

http://forums.ni.com/t5/LabVIEW/initialize-array-control-dimension/m-p/1221930#M520867

 

 

Thanks
Dan

When improperly stopping a project that has launched asynchronous vis set to fire and forget, you end up with classes and libraries that are locked.

 

Reserved VIs.PNG 

 

There seems to be no way of unlocking them other than to close the project. There is an idea to abort called VIs when the parent stops but from the lack of kudos and by reading the comments it doesn't seem like a good one.

 

I know about and use the Abort.vi but it does not work in this case. The dropdown is empty:

 

Not running.PNG

 

Not even the LabVIEW Task Manager can help.

 

 

Task Manager.png

 

My idea is to have a button that does whatever closing the project does when it unlocks the class or library. Maybe this means it transparently closes the project and opens it again in the state it was in when the button was pressed. I don't know.

 

Abort Project.png

 

 

I know there are some similar ideas but as far as I can tell this is not a duplicate.

Currently if code is already written, it is difficult to put it into a sequence structure, splitting the code into multiple frames, without breaking wires. It would be great if when I right clicked on the edge of a sequence structure and chose "add frame after" it allowed me to draw the next frame before placing it.

 

Add-frame-after-sequence.png

 

I would also like to be able to selectively split an existing frame up

 

Split-frame-in-flat-sequence.png

 

Wouldn't this be easy and intuitive?

 

I tried to look for other ideas like this on the exchange and all I found was this but he was a little confusing in explaining his idea and how would it work. 

 

SVG would be a great image format for icons. It would also be nice if you could use it for front panel designs or as background images. Exporting a VI as an SVG might also be a nice way of printing a VI or copying it into a presentation.

 

The advantage would be that it's scalable and an W3C standard.

 

(see also  http://forums.ni.com/ni/board/message?board.id=170&message.id=449853#M449853 )

I continually find myself fussing over the "configuration" of terminals. There are many permutations of icon/condensed view and label alignment, yet little consensus thus far for a standard.

 

My goal is to convince you this: Having different "flavors" of terminals does not make LabVIEW easier to understand or more "customized" to your preferences or learning style. Instead, it creates a source of confusion for new users to identify these Block Diagram components, and creates a hassle when it comes to formatting new or existing VIs to "your style". And no more label gymnastics trying to fit what should be a 22120iFF5D2D358A179035 into a 22124i47B01DC3554D8D28 or a 22122i534509B41D018E18.

 

Just a few Common Terminal Configurations:

22102iC18AB09CA35049A6

 

  1. Default Alignment - Not too bad, but not so great for stacking terminals vertically
  2. Block Diagram Cleanup Tool - Interesting choice of label alignment...
  3. CTRL+Space then CTRL+T - This is the "best" style, but it falls short in correctly aligning label in Icon View (arguably of inconsequence, since Icon View is not "best" style)
  4. The "Rogue Drag" alignment - Now where'd that label go?
  5. The "Monk" alignment - Everything has to be perfectly snapped to center
  6. The "There's a 'Size to Text'??" alignment - AKA - "This is what happens when I open your VI on my system" alignment
  7. The "Don't Stop - Believing - Hold on to that Feeeeling" label - I can't let go of LV 4.0 or Power Ballads
  8. The "But it takes up too much BD space - I'm'a remember what it's called" guy - or worse - "Neat, terminals can all have blank labels!!"
Oh yeah, and to add to the confusion of configuration permutations, we have some more ingredients:
22100i5704DD0516745EAB
 
Many Ideas - some very popular - have hinged around Terminal Configuration. Respectfully, I think they should all be supplanted by this Idea. The goal here is to eliminate even the need for a configuration:
  
  1. Default Option: Do NOT Place FP Terminal as Icon
  2. Separate label locations for Controls and Indicators
  3. Lable Position Options
  4. Add a setting to allow different label positions for controls and indicators
The prelim artwork is an attempt for an information-dense, easily-recognizable, same-footprint, attractive alternative to the current terminal configurations. It offers no display configuration, always showing the label for the sake of self-documentation. It was designed to complement the Improved Control References and the New LV2010 Local Variables. I would envision being able to double-click on the integrated label in order to rename the node.
 
22112i4F5D7F09801CC176
 
For completeness, here's what an array would look like. Or perhaps, one of the array alternatives on the Redesign Terminals Idea that focuses on the inability to clearly show array dimensions with the currently implemented terminal:
 
22114iE4253941BD5748E5
 
Finally, you're not voting for my artwork, you're voting for this concept: Standardize terminal configuration to make it non-configurable, robust against self-documentation SNAFUs, and universally recognizable. Just like the zero-config behavior of the Local Variable, we want a what-you-drop-is-what-you-get Terminal.

Quite often I find myself running a new bit of code which contains an untested modal subvi somewhere in it's bowels, to find that the when called the modal subvi doesn't exit. Clearly there's a little bug in my code, but now I'm stuck. The modal vi has all the focus of LabVIEW, I can't close the vi, I can't abort the vi. Nothing is accessible, including the Project Explorer window.

 

Now what I need here is a LabVIEW Running VIs Task Manager, which allows me to simply scroll down a list of open and running vis, and abort the one that's stealing my focus.

It would probably have to operate outside the development environment to avoid being supressed itself, but presumably a standalone executable can link into LabVIEW through the server port and access the list of running vis with server calls.

 

This would save me from having to use Windows Task Manager and killing LabVIEW (and potentially any unsaved work)

When customizing a boolean control, there are 6 pictures you can set. On, Off, On to Off transition, Off to On transition, Off Hover and On Hover. But setting those pictures can be a pain since they aren't labeled. Here is a screen shot of a page from the UI Interest group. Adding those labels to the menu would be very helpful when creating custom buttons.

 

Boolean Picture Item Labels.PNG

Local Variables. When a VI has a hell of a lot of Controls or Indicators, creating a Local Variable can be a pain. The list to choose from can get very, very long, sometimes so long that it needs a scrollbar.

 

The current method of selecting which control a Local is connect to looks like so:

19687i444C237C87E7B505

All in all, not too bad. I like the alphabetical ordering, and the fact that you can type to choose one.

 

However, from this image you have no idea what datatype each of these variables are (the name helps a bit). I suggest adding the Data Type and Control/Indicator information to this menu like so:

19689i75D30CDEB5395A73

You can now easily see that "Params" is a cluster control, "XY Graphs" is an array of Refnums control, and "Vg Points" is an indicator array of I32. Notice that the datatypes are color coded and look similar to the block diagram icon.

 

In addition to this simple display change, it would be nice if there were an option somewhere in the preferences that sorted this list in different ways. Perhaps two different options: 1. First by Alpha, then by Type - or 2. First by Type, then by Alpha.

 

For those of you who prepend a data qualifier to the beginning of your controls and indicators (such as "str_Input1" or "dbl_Numeric"), this will still help you via the color coding. Plus you probably don't do that for ALL your controls, ones that end-users will be modifying when you release your code.

.net and many other languages have an intuitive and simple way to allow you to define how a window behaves when you resize it: anchors.  Anchors allow you to define the distance between an edge of a child control and the edge of a parent control regardless of the size of the window. The size of the control itself stays constent unless it violates the rules of the defined anchors in which case it changes sizes to meet those rules. For example a front panel with the following anchors:

 anchor1.png

 

Would be resized into:

 

anchor2.png

Change the VI Properties Dialog to be able to reach the desired option with a single click, Instead of using the drop down menu.

 

It will be more clear and fast to access properties. 

 

VI Properties.png

 

I am struggling with my Event Structure event list and the corresponding list of cases in the parallel consumer loop Case Structure.

Both have currently over 100 cases each and finding one or scrolling down to access the latest one has become painful due to the lack of a scrollbar in these lists.

For instance, here is the Event Structure list:

 

Screen Shot 2015-09-29 at 12.19.16.png

 

Same goes for the list of controls in a Local Variable (and other objects, I am sure).

There is no reason why such lists do not have a vertical scrollbar when that corresponding to a Enum do have a scrollbar:

 

Screen Shot 2015-09-29 at 13.33.30.png

 

Or is there?

 

Suggestion: All long pulldown lists should have a vertical scrollbar

Currently, the markers of intensity graphs are left-aligned with the intensity pixels. This is most noticable when graphing small arrays, but is a general problem. Have a look at the left picture (x0 and dx are at the default). There is one too many markers on each axis and it is errorprone to read out the coordinates of a certain pixel because it is always betwen two adjacent markers.

 

(If we graph a 1D array with 10 elements on a plain graph with the same size (loose fit off), the axis will go from 0..9. It is misleading to show another marker at 10 in the case of the intensity graph!)

 

Correct would be to center the axis markers on the pixels as simulated in the image on the right. Now the limits are correct!

 

The problem is even more severe with cursors locked to the plot. The cursors align with the markers and thus fall right between four adjacent pixels (left) while they should be smack dab in the middle of exactly one (right). Currently, we have a 25% chance of picking the right pixel with a cursor unless we are very carefully!

 

 

Idea summary: The markers of intensity graphs need to be centered on the graph pixels. Same for cursors.

 

(...of course the same applies to intensity charts and similar)

It would be nice, if the plot fill cold be set semi-transparent.

 

I have to plot minimum, maximum and average. It would give a better impression if the area between minimum and maximum is filled. Unfortunately the fill area hides the grid completely. It would enhance the plot if the fill was semi-transparent and the Grid would shine through.

 

I don't know how much effort it would take to implement a semi-transparent fill function in LV. If such a semi transparent fill function should be implemented could be implemented easily it should be done easily.

 

The picture shows a graph with   (A) normal fill,   (B) semi transparent fill (new idea)  , (C) no fill

wfg.png

 

Does anybody else miss such a semi-transparent fill option (B)?

Subversion is one of the most popular SCC systems in use yet currently LabVIEW can only integrate with the help of rather flakey 3rd party plugins. It would be so much easier if LabVIEW included native SubVersion support, allowing full integration with the LabVIEW Project etc.

For the reasons eloquently stated here:

 

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/quot-Defer-Panel-Updates-quot-within-sequence-frame-so/idi-p/1288952

 

defering Panel updates is both useful and a bit tedious.  You have to fetch the Panel reference, and while you are doing your presumably time-consuming operation, the entire panel is stuck.  I suggest that Deferring Updates should be a property of an individual object and not just the entire panel.  Wrap your operation with a pair of property nodes to start and stop deferring and you are all set.

 

NewDeferPNExample.PNG

I'd like to suggest to add a small button to the header of a disable structure.

Clicking to this button would enable the currently visible case while all others should be disabled automatically.

 

quick-enable-button

If you have mulitple versions of LabVIEW installed, some of them show up in the "Open With" menu, but regardless of which item you select, the VI will always open in whichever version of LabVIEW was opened most recently.

 

Example: if I opened a legacy VI in LabVIEW 2009, closed that version of LabVIEW completely, and opened another VI using the "Open with" menu and selected LabVIEW 12..., LabVIEW 2009 is relaunched and is unable to open the VI because it should have launched in LabVIEW 2012.

 

 

OpenWith.png

The current workaround is to add all installed versions as options in the "Send to" menu, but this is not nearly as intuitive as using "Open with" would be.