LabVIEW Idea Exchange

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

The current implementation of the "Disabled and Grayed" state of a FP object is unusable in a professional project. It adds a shading to the bounding rectangular region around the FP object, even shading pixels that were previously transparent (see below).

 

DisabledAndGrayed.png

 

This proposal brings this function up to the bare minimum of "usable". As a bonus, consider even introducing new property nodes for FP objects that define new colors for the disabled state.

I was almost certain this idea already existed, but I couldn't find it. If it does exist, please cross-link and disable this idea.

 

There are a coupe of functions which could really benefit from backwards propagation of data types. By this, I mean the ability to change a functions input datatypes based on a wired output.

 

Some functions already do this (like Variant to Data). However, that implementation has its flaws (as far as I can tell, the backwards propagation only works if wired to an indicator terminal).

 

Functions like Select, Obtain Queue, and Create User Event would benefit greatly from this (as well as many others).

 

Essentially, what I would like is a Type Specialization Structure that works backwards.

 

To implement this using today's technology, I guess we could create express VIs which have scripting function calls whenever the outputs are wired??? But that's janky and not practical for everyday development.

 

Simple example of SelectSimple example of Select

 

 

Here's a previous idea I posted, for this post, I'm proposing a generalized version of what I suggested there.

Sidenote: here's a plugin I created to make working with Select easier.

I have often the case, that i have to display an array of cluster. It takes a lot of space on the front panel to show all the captions of the cluster elements, cause they will be shown on each array element. A better solution would be, showing the captions or labels just on the top visible element.

IMAG000.jpg

IMAG001.jpg

Currently the only image formats still commonly used today that can be imported into custom controls are non-scalable bitmap formats. The only supported vector formats that I know of are WMF and EMF, which is almost never used anymore to my knowledge. Even worse, it doesn't support features now expected in vector formats, such as gradients and alpha transparency. So if you're developing a custom control, you have to either use an antiquated format or a bitmap format.

 

LabVIEW 2011 introduced the new Silver control set, which to my knowledge still use LabVIEW's internal PICC format, which is completely undocumented. Rather than adding gradients and other new features to this private, undocumented format and using that, it would have made a lot more sense to add support for SVG, a modern, full-featured vector format that is commonly used, and used that for the Silver controls.

 

Not only are the two vector formats LabVIEW supports ancient formats, but their inclusion almost seems like an afterthought. Imported WMF and EMF images aren't anti-aliased like the Silver controls. Because of this, it's practically impossible to create any modern-looking custom controls that look good scaled unless you don't want any diagonal lines or curves, in which case you might as well just use a bitmap.

 

Sorry for the abrupt end!

 

It would be great if the invert option is given for all possible Boolean terminals like input and output of Boolean functions, controls, indicators like what we have in compound arithmetic function.

 

 

Invert option in boolean terminal

LabVIEW loops are quite flexible and allow me to do just about anything I want, but I often find myself writing the same code over and over again trying to iterate across different data types and data structures. There are several situations where smarter looping constructs could greatly simplify my code. One simple example is stepping by a delta between a minimum and maximum value. Currently, I have to calculate the number of iterations required ahead of time (for a for loop) or do a comparison with the maximum (with a while loop) and use shift registers to maintain the intermediate value. I'd like to be able to wire the max, min, and delta to my loop and have LabVIEW do the required calculations for me. The iteration terminal could also adapt to the proper data type given the input parameters. Perhaps the iteration terminal would have two outputs, one with the current iteration count and the other with the proper iteration value.

 

stepped-loop.PNG 

 

Another useful feature would be allowing me to wire a queue reference to the loop count terminal of the for loop and having it automatically pop each value from the queue and feed it to me through the iteration terminal. It would do this until there are no values left in the queue or until the code stops the loop. One could write an algorithm that pushes new points into the queue from within the loop or push the current value back onto the queue for later processing.

 

I'm sure there are other useful iteration strategies that are fairly common, please share them with the community

In most software a tab character (/t) is "visually equivalent" to several space characters (see tab list below in notepad).

 

8-30-2011 2-34-58 PM.png

 

Unfortunately in LabVIEW, a tab character is visually equivalent (in normal display mode) to 1 space character. I am proposing that this should be change to be n space character.

 

8-30-2011 2-38-00 PM.png

I was going to post an idea to make the Find Items With No Callers window resizable.

 

Doing a search for "resizable" returns a few ideas specific to a particular window such as the example finder. But any and all windows should be resizable. Is there any good reason that the user should not be able to resize them?

 

find items with no callers.PNG

"Auto-insert Feedback Nodes in cycles" option under Tools > Options > Block Diagram should default to OFF. I am a believer and preacher of FN's since Darren's blog post about them, but it seems I can only get FN's to appear when I mis-wire, not when I want one.

 

Plus, they really scare LV beginners (and me!) when I miswire. GAH! What just happened??

 

ScaryFeedbackNodes.png

Each page of a tab control should behave just like a pane does.

This means it should be possible to put splitter bars on a tab page.

This way one could build real nice front panels that look good when resizing, even when using tab controls.

 

At the moment I always have to decide: Do I need several tabs or is it important to be able to resize the panel?

There is no way to have both at the same time

 

(OK, there is one way - but I know much better ways to spend my time than programming all those pixel calculations to resize every control programmatically  :smileytongue:)

 

Here is a quick scetch of a dialog front panel that could be improved very much by using splitter bars and  "fit control to pane":

 

 TabCtlExample.png

 

Look what happens when the panel is resized: It's a big waste of space that could be put to a better use by extending the tree.

 

  TabCtlExample2.png

 

Add support to transparency in picture control. When you load a PNG file to the picture control consider the Alpha Channel instead of a threshold.

I did a search for explain error - I did find this idea which is similar but for probes.

 

Explain Error is a feature I have been using more lately but its not available for an error that is in an array (LabVIEW 2010).

It would be great if it was!

 

Cheers

-JG

 

 

Explain Error In Error Array.png

When do I use the Run Continuously button?

 

Almost Never. And most times I hit it, it's an accident and it's a pain.

 

PLEASE hide it by default on all new VIs.

 

Untitled.jpg

Structures have many right-click options, but the property dialogs are currently very sparse (only label and subdiagram label). Let's compare the current right-click options of a FOR loop with the actual properties dialog, and we can see that many useful properties are missing (visibility of conditional terminal, autogrow setting, etc.). The parallelization has it's own standalone dialog, why not have all these settings on a new tab instead?

 

I propose that these scattered properties should all be integrated into the single properties dialog to keep things better organized. Here's how the properties dialog of a FOR loop could look like after implementation of this idea.

 

 

 

Similar changes could be made for all other structures.

 

LabVIEW's case selector icon (?) is taller than tunnels, so it interrupts wiring flow whenever a standard VI (4-2-2-4 terminal configuration) uses one of the terminals as the selector and an adjacent terminal is also wired as a tunnel.  I'd like to see the case selector be the same height as a tunnel.

Hi.

 

I suggest an ellipsis be added to long enum or text ring values if they don't fit in the control. As it is today long values are line-breaked at last fitting hyphen (for instance):

 

EnumLongSelect.png --> EnumSnippedSelect.png

 

Instead I'd like as much text as possible to be displayed with an ellipsis at the end. The above example would then become:

 

EnumEllipsisSelect.png

 

Cheers,

Steen

Oftentimes, I'll use a probe simply to see if code has executed, waiting for the probe value to change from "Not Executed" to the value on the wire once it's first executed. Having a "Reinitialize" or "Reset to 'Not Executed' " context menu item would make debugging iterations faster.

 

ReinitializeProbe.png

Make the Panel Resize event in the event structure a filter event.  This would allow for clean, professional looking control of VI panel size.  Use cases include: limiting the maximum panel size, preventing a panel from resizing in one direction, only allowing the panel to resize in discrete increments, etc.

 

In traditional windows programming, filtering the WM_RESIZE event is often used to control window size and I'd like to see this same functionality come to LabVIEW.

 

Ideally, this change would include a Discard? option as well as NewBnds and Act as options in the Event Filter Node.  Setting NewBnds or Act would allow the programmer to amend the resize before it takes effect.

 

Panel Resize Filter Event Idea.png

Originally discussed here, this would be a time saver in quite a  few cases:

 

when dropping a structure (sequence, case, while or for loop, etc) over wires, an option should be provided allowing these wires to go through the structure (instead of ending up untouched UNDER the structure as is currently the case). Maybe with a modifier key?

 

Illustration:

 

Starting from this simple situation, where I want to do some comparison on the two strings (please imagine that the wires go through a lot of hooplahoops rather than directly to the indicators shown, as otherwise the solution is trivial):

 

ScreenHunter_001.jpg

 

I currently need to drop a sequence structure and do all the connection manually before creating a subVI (or doing stuff in a case structure, see below):

 

ScreenHunter_002.jpg

 

The suggestion is to go directly to this:

 

ScreenHunter_003.jpg

 

The reasons this would be useful are plenty, I think.

For instance, you want to do some sanity check on a bunch of wires now that you have added a new control on your panel. As of today, you need to drop a case structure, get wires you are interested in one at a time, connect them to the left of the structure, pass through the structure, connect them to the right of the structure, delete the wire underneath the structure, reconnect them to the right tunnels, etc...

Now, for a case structure, there might be some options on how to do that (for instance connect the wires through all cases? through the True case only?). Likewise for a while/for loop (you could autoindex at the entrance and/or at the exit, a mess that already exists anyhow).

 

My 2 cts.