LabVIEW Idea Exchange

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

Pop up on a subpanel control. There's an option for "Make Panel Transparent". When you enable that, the background of the panel is transparent and you can see controls/indicators underneath. The key word here is "see". You cannot click on those controls. The subpanel eats the mouse clicks. I talked about this with a couple people and could come up with no use case where you would want a transparent subpanel and not be able to click on the controls behind it. What I think the behavior should be is "if the mouse click hits a control in the subpanel, that control gets the click. If no control in the subpanel gets the click, the click falls through to the controls behind it, if any."

When using a case structure within a loop for a state machine, or when using an event structure, it is frequently necesary to either add a new case/event or add a new state variable to the structure.  This can lead to unexpected behavior if the user has accidentally used "Use Default If Unwired" on an output node, and will require time consuming wiring of all cases otherwise. The Linked Input Tunnel Option helps with this.  However, the mass of state variable wires, if there are several, still creates a confusing and cluttered diagram.

 

It would be nice to add a "Feed Through if Unwired" option.  This would allow us to wire ONLY the variables that need to change, and only need to examine the relevant cases.  Additionally, you would get a nice clean diagram.  Here is one idea, shown for an Event structure:

 

NI Shift Reg Suggestion_sm.JPG

In large &/or dense &/or multi-dimensional arrays, it'd be helpful to be able to tell the location of elements without having to either manually count or use the index values to relate to an element's location. A default tip strip could work - see image below:

Array w Tip Strip.jpg

When building an application, the build will fail if any of the VIs are broken.  But, the build doesn't fail until very late in the build process.  It would be great if the build would fail right away if any VIs are broken.

 

Note: In one of our big applications, it sometimes takes 30 minutes into the build before the build fails.  However, it only takes a couple minutes to detect this by loading the VIs into memory and testing if they are broken.  So, as part of our one-click build, we implemented a pre-build test for broken VIs and abort the build -- this saves us a lot of time (in cases where the build is broken).

The ctrl+drag and ctrl+alt+drag shortcuts for adding and removing space on the BD are super awesome. But I think they would be even *more* awesome with the following tweak:

Limit space addition/removal to the visible diagram; i.e. don't make any changes to other cases in a case structure.

 

I have had many situations where I was doing cosmetic tweaks in one case of a case structure, only to find I have overlapping items in another case that I wasn't looking at.

 

auto_size_issues.gif

 

Hopefully this simple animated gif demonstrates what I'm talking about.

 

(And yes, I know we could enable "auto-grow" on the case structure to eliminate the shrink-case-smaller-than-contents problem, but that still doesn't address all the potential issues here.)

Searching an array for a certain element can be expensive for large arrays. The speed could be dramatically increased if we can assume that the input array is sorted. The speed difference can be several orders of magnitude.

 

There is an old example that discusses this in more detail. I also wrote a similar tool long ago when I needed to recursively score positions for the tic-tac-toe solver, using a retrograde analysis similar to what's used to generate endgame tablebases for chess. (It literally took hours with the plain old "search array"!).

 

(A similar tool is the "search ordered table.vi", which only works for DBL and returns a fractional index.)

 

Suggestion:

 

"Search array" should have a boolean input (default=FALSE) where we can tell the algorithm that the array is sorted.

 

(The output would be exactly as before, with -1 indicating "not found".). Setting this input to TRUE would switch to a binary search where in the worst case only ln2(N) instead of N comparisons need to be made. (e.g. 20 instead of 1048576 for a 50000x speedup!!!)

 

It could look as follows.

 

Of course it should continue to accept all possible datatypes (including clusters) and not be limited to simple datatypes as the polymorphic example quoted above.

.
Message Edited by altenbach on 08-31-2009 03:30 PM

I have been pretty slow to pick up the addition of quick drop functionality. This is mainly due to the list of shortcuts being out of the way.

 

I have always thought it would be easier to get the hang of Quick Drop if I had the option to put the quick drop shortcut in parenthesis next to the object name in the function pallet.  That way when I go back through the "normal" way of programming I will see the shortcut each time and over time I could get the hang of each objects shortcut. 

Currently enums can not be in a cluster that you want convert to JSON. It would be great, if this could be added.

 

Either the enum value could be converted to its internal representation (e.g. u16) or the value could be saved as a string (make it easier to read the JSON and parse it outside LabVIEW).

 

The unflatten should be able to handle the u16 easily to convert back to enum or take the string and search through the enum of the datatype that one has to connect to the vi. If there is no match the VI can issue an error.

 

I am extensively using the Array to Spreadsheet string Primitive and most of the time I never used the Format string input (Use to wire an empty string constant) and still I am getting the right result what I expect. So I think it would be better if the Required Terminal is changed to an Optional Terminal.

 

It is known that the Array to Spreadsheet string is Polymorphic, but when we wire an array of I32 and DBL the output string is DBL format only. It would be good if the output String adapts the data type that is wired unless otherwise specified by the Format string.

 

Changes needed for Array to Spreadsheet String.png

Right now the only way possible to set the tabbing order of controls on the front panel of a (sub)VI is to use Edit >> Set Tabbing Order.

 

I would like a VI Server property/method to be able to programmatically set the tabbing order of the controls on the front panel the way I want.  This way I can write a script to fix a large number of VIs without needing to manually click through each one.  (Of course I would be responsible for programmatically figuring out the order I wanted, but I could make some general assumptions like following the top-bottom left-right on the front panel existing layout, or following how they are connected to the connector pane, etc)

As requested by this fellow 8 years ago: http://forums.ni.com/t5/LabVIEW/Multiple-pattern-lines-in-path-s-Browse-Option/m-p/776968/highlight/true#M355522, it would simplify some GUI if the user could select from a drop-down list, which files to look for in a File Dialog pop-up window.

Currently, we get a single line:

Screen Shot 2016-04-11 at 18.33.05.png

This results in this kind of mess courtesy of the IMAQ Load Image Dialog.vi):

 

Screen Shot 2016-04-11 at 18.35.29.png

 

To update the snapshot illustrating this other thread, here is an example of MS Word in action, illustrating the desired behavior:

 

Screen Shot 2016-04-11 at 18.27.21.png

 

In other words, it helps cleaning up the results, while using a single dialog window for all kinds of different files (which will be dealt with differently down the line).

I am not sure how multiplatform that can be, but here is the file open dialog options from TextWrangler on MacOS:

 

Screen Shot 2016-04-11 at 18.30.21.png

 

so it seems that can be done.

The thread I am referring to had a link to a Windows API call, but the link is dead (probably the result of the recent disastrous site cleanup). And of course is not multiplatform.

Use case :

I work on a multi-plateform project and I compile the same application for Windows, Linux desktop and NI Linux RT

 

Currently I have 3 different lvproj, on for each OS I build my app for.

 

It would make life much easier if LabVIEW would allow me to have - in the same lvproj - app build specs for different OSes.

This idea got triggered by this other idea but this here is a significant variation and deserves it's own entry.

 

There is possibly some need to graph multiple XY plots on the same xy graphs, all sharing the same X values. One problem with the current XY graph implementation is the fact that the x-values need to be duplicated for each plot, unecessarily inflating the data structures.

 

One possible workaround has been suggested here, but I think we can do better!

 

Remember, that in this scenario, all plots have the same number of points, thus the data could fit in a plain 2D array. Why not?

Currently, xy graphs don't accept 2D arrays, so this will not clash. (Of course downconversion will be problematic).

 

I suggest that we should be able to directly wire a plain 2D numeric array to the xy graph terminal. In this case, the first row (or colum as set by a property or other configuration) is taken as X-array, while the remaining rows (or columns, resp.) are Y1, Y2, Y3, etc. arrays.

 

 

(Of course an xy graph should also accept a 1D cluster array where each element is such a 2D array. This is useful if there is more than one set of multiplot data, each with a different x-range or number of points.)

It would be nice if controls/indicators that had a scroll option (most useful for vertical scroll) would have the ability to support automatic scrolling. This is useful for trace windows or long tables which are continually getting updates. At present we need to set the scroll position ourselves for every update.

In case of a front panel with several buttons, a dialog to set the Key Navigation option for all of them would be more convenient and faster than having to open the properties of each button individually.

 

Key Navigation.png

This would replicate the ability of the standard Index Array function to extract a subarray from a multi-dimensional array. Currently both indices must be wired, which only selects scalar elements.

ArrayIndexInPlace.png

 

Another related enhancement that may be useful is to provide the equivalent of "Array Subset" on the In Place Element Structure.

 

I have become a huge fan of the compound arithmetic node, and there are a growing list of good ideas on this Idea Exchange that involve adding invert capability to more boolean inputs/outputs.  Unfortunately, the circles used to show that an input/output is inverted are too small for my taste which makes them easily missed by the untrained eye.  Filling the circles black is one possibility, but there is room between the terminals to at least double the size.  With a more prominent indicator that a node is inverted, I will easily support adding invert capability anywhere it makes sense.  

 

I know that most of the wildly popular ideas here involve making things smaller, hopefully with some of that reclaimed real estate we can make room for some slightly larger circles.  

Sometimes, like in many other software that have a paint feature, we need color swapping between foreground and background. The idea is to add a spot in the Tools Palette to allow this operation in one click. Here is a suggestion:

 

swap colors.png

 

It's difficult to see the spot because I did not changed anything, just added the double ended arrow. One way to help the visibility is turn it white when the mouse hover over it.

Support the loading and use of dotnet core libraries.  They are cross platform and could provide functionality for both Windows, Linux and Mac users and there is so much code that we could begin to bring into the ecosystem.  

I should be able to to this:     mean 0.png      But that's not allowed:     mean 1.png

 

 

 

Instead I have to do this:     mean 2.png