LabVIEW Idea Exchange

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

The default cursor color in the Fuse palette is yellow, which is nearly impossible to see:

 

cursorcolor.png

 

Since we can't set a default cursor color for a graph, and there are no events exposed that let us know when the user creates one, can we at least get the default color to be somewhat visible? Maybe dark gray?

I would like to have that in place element structure specific operations can be added on a tunnel. This would integrate especially well with drag-a-box-then-Ctrl-Space an ipe.

ipe.gif

 So basically to have this menu when right clicking a ipe tunnel:

 
 

Unbenannt.png

 

In large-scale LabVIEW projects, performing a text search across the entire project hierarchy can take a significant amount of time to complete, especially when the codebase contains numerous VIs, libraries, and dependencies. Currently, the search results can be browsed(doble click and locate the search result in the code) only after the entire search operation has finished.

It would be highly beneficial if the search results could be browsed incrementally while the search is still in progress. In many practical cases, the desired result appears early in the search process. Allowing users to review and navigate through the partial results as they are discovered would enable them to quickly locate the needed item without waiting for the full search to complete. If the relevant result is found early, the user could simply stop the search operation, thereby saving valuable time and improving overall productivity when working with large LabVIEW codebases.

 

Sample.png

 

Please add your opinion.

 

Regards,

Adarsha Pakala

LabVIEW from 2006

CLA From 2014 

 

drag.gif

Dragging block diagram objects across structure boundaries preserves wiring correctly when tunnels are involved, but it fails when shift registers are used. It should be feasible to adjust this.

1.png

 

 

 

 

 

 

 

 

 

 

 

 

2.png

 

Idea: The "Text Color" and "Background Color" fields of LVTextColorsTypeDef.ctl should be replaced with a Color Box

 

This suggestion is very similar to the following idea, which was kindly implemented in LabVIEW 2025 Q1: The "Color" field of LvFontTypeDef.ctl should be replaced with a Color Box

Replacing a cluster constant should not alter its 'View Cluster As Icon' setting.

 

Combined Image.png

 

The bug manifests itself regardless of the method used to replace the constant: via QuickDrop Ctrl + P tool or via right-click >> Replace menu.

When working with classes and interfaces, I often use the right-click option on classes to navigate to their parent class.  I regularly find myself trying to do this with classes that inherit from interfaces too, but...this isn't made easy.  It'd be nice if there was a right-click menu option on classes to navigate to their parent interface(s):

 

Untitled.jpg

Currently each error in terminal contains the following description: "<B>error in</B> can accept error information wired from VIs previously called. Use this information to decide if any functionality should be bypassed in the event of errors from other VIs. Right-click the <B>error in</B> control on the front panel and select <B>Explain Error</B> or <B>Explain Warning</B> from the shortcut menu for more information about the error." This occupies 367 characters (bytes).

 

Currently each error out terminal contains the following description: "<B>error out</B> passes error or warning information out of a VI to be used by other VIs. Right-click the <B>error out</B> indicator on the front panel and select <B>Explain Error</B> or <B>Explain Warning</B> from the shortcut menu for more information about the error." This occupies 271 characters (bytes).

 

This applies to terminals of all styles: Classic, Modern, Silver, Fuse Design System.

 

This adds a total of 638 characters (0.62 KB) to each and every VI that uses a pair of error in/out terminals, which is probably a majority of VIs in LabVIEW.

 

The descriptions appear in the Context Help window and can be useful to beginners. But this benefit is not worth 638 bytes of space in so many VIs. The contents of the descriptions should be mentioned in training material such as LabVIEW Core 1 or the LabVIEW Help.


This proposal is to remove (clear) the error in and error out descriptions, such that VIs are "slimmer" and codebases are smaller.

 

Combined.png

Occasionally, we want to defer panel updates and most often it is just the current front panel. Unfortunately, the defer property node absolutely requires a wired reference to the panel.

altenbach_2-1770235627004.png

 

 

 

In the past it always took me quite a while with many dead ends to get it right. For example, one might try to do the obvious and "right-click...link to..Panel", but that does not work! I challenge anyone to get that panel reference in under 60 seconds starting with a generic property node from the palette. Just try! (Hint. After selecting the right class (VI Server...VI...VI), the drop down lists it as "Front Panel" and not "Panel".)

 

The idea would be to allow defer nodes without a wired panel reference and they would just act on the current front panel and not break the VI.

 

Note that the panel reference defaults to the current VI and does not require a reference, so why can't the defer node do the same?

 

(Note that we also have this old idea, which would simplify things...)

 

For the "OS" and "CPU" symbols, the documentation states: "The VI must be in a LabVIEW project to access this symbol."

 

The documentation is correct and reflects the current behavior of LabVIEW. Instead, the condition should reflect the operating system where LabVIEW is running, like the "TARGET_BITNESS" and "TARGET_TYPE" symbols.

Wiki link: https://en.wikipedia.org/wiki/Memoization

 

I have a lot of "stuff" that gets created dynamically from config files at runtime. The "stuff generation" process is pretty quick, but often I need to create a LOT of these objects, and most are identical. The "stuff creation" process is quick and painless when I design my app to work with, say, 1000 "data objects", but then a user comes along and says they need a million of 'em, and now that fraction of a second takes forever.

 

One easy way to handle this is to bundle up all of my config data and use it as a key for a map, then look up that key prior to running the "generate" function. If it already exists, return the cached value, otherwise, run the code and add it to the cache.

 

For example, here's what a wrapper looks like around "slow.vi":

 

This is simple enough on the block diagram, but I have to do it for each function. It would be nice if LabVIEW could do this for me.

 

I propose that this gets implemented as a VI setting as an option for Run VI or possibly as a checkbox in the Execution menu. Alternatively, you could make it like a VI Refnum where you drop an existing VI into a "box" that handles this wrapping.

 

 

cache2.png

 

There would need to be a bit more to it than a simple checkbox- for example, you'd likely want a way to programmatically force a re-compute for a given input, or clear the cache entirely. And you'd need to decide how you handle shared or preallocated clones, (probably) prevent inlining, that sort of thing.

 

I would think implementing this at a "core" level would offer speed benefits over making a bunch of wrappers. I think you could probably make an Xnode that does this, but that's far beyond my comfort level, and I'm gunshy on them anyway, especially since I'll be using this mostly with objects.

 

When I draw an case structure around existing code, it should be possible to choose the existing code to go to the false case.

 

E.g. holding ctrl down when selecting or drawing the case structure.

 

It is the last step I would like to save, by just pressing a key.

Optagelse 2026-03-13 132056.gif

The Build status window should display the amount of time that has elapsed since the build started. The two screenshots below show a possible implementation.

1 (edited).png

 

2 (edited).png

The Class Browser (Ctrl-Shift-B) is a little-known LabVIEW feature that makes it much easier to work with property-based class hierarchies in LabVIEW (VI Server, DAQmx, VISA, Sys Config, your own .lvclasses, etc.). The Class Browser search function is particularly helpful when you aren't exactly sure what property or method you need, or if it even exists. Unfortunately, the search results are often very difficult to navigate, as in this example:

Darren_0-1767913475591.png


I was looking for a property or method relating to locking controls on the front panel, so I searched for "lock". Over 1000 results were returned. But the results include a tremendous number of duplicates. If there is a property of a parent class (like the Is On Block Diagram? property of the Generic class in the screenshot above), then that property will be duplicated for all child classes of that parent class... in this case, there are hundreds of children of the Generic class! It took me a few minutes just to scroll through all these duplicate results to finally find what I was looking for (the "Lock Objects" method of the Pane class).

Idea: Only show the parent class property/method in the search results of the Class Browser window. Do not show child class entries for that same property/method.

In the example above, if duplicates had been removed, then my "lock" search would have returned 49 results, which is a much more reasonably sized list of results to dig through.

For pass-through values like errors, classes, visa sessions, etc. it's a hassle to insert a vi into existing wires.    It would be intuitive and very efficient if you could "pick up" the wire, hover over the vi terminals, and have the connections made automatically.

The window for selecting interface inheritance isn't resizable -- and is rather painful to use as a result since interface names from dependency libraries are almost always going to be long. Allowing this window to be resizable would be a simple way to make this more pleasant.

 

_carl_0-1771513150988.png

 

 

(Adding a search/filter option would also be great, along with just generally making all windows resizable, but that's a bigger ask, and has been requested elsewhere.) 

The QuickDrop insert shortcut (Ctrl + I) is extremely useful already. The following enhancements would make it even more so.

Enhancement 1.png

 

 

Enhancement 2.png

 

 

 

Enhancement 3.png

The Rearrange Cases window (which appears when clicking the Rearrange Cases... menu item on Case Structures and Event Structures) would benefit from having "Move Up" and "Move Down" buttons, just like the "Edit Enum Items..." window.

 

Rearranging cases currently requires dragging and dropping. Using Move Up/Move Down buttons can be more precise and easier on the hand.

 

1 (edited).png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.png

Current state:

 

Suppose you have some neat code that bundles/unbundles elements from either a typedef-ed cluster or a class. You even provided free space in case some names are changed in the future:

raphschru_17-1769453321291.png

 

But then, when you change an element's name to a longer one, this happens:

raphschru_18-1769453350666.png

 

Now, to have the same neat code as before, you have to surgically select, move and realign the Bundle/Unbundle nodes correctly:

raphschru_16-1769453276240.png

 

Since these nodes are resized in a centered manner, to keep neat code without the need to realign everything by hand, you must provide free space both on the left AND on the right.

 

Remark 1: The same issue can happen when you select another item with a different width in the Bundle/Unbundle node.

 

Remark 2: It seems all nodes of class "Named Bundler" and "Named Unbundler" are concerned. So that also includes the Waveform / Digital Waveform / Digital Data Bundlers/Unbundlers.

 

Proposed Idea:

 

When a Named Bundler or a Named Unbundler updates its own size (either because the typedef is changed or because the user selects another item), it resizes to the right instead of resizing from the center. So, if you want to provide space for further modifications, you only need to put space on the right (and not both on the left and the right). Also, I find that resizing to the right is quite consistent with the left alignment of the element names.

 

 

Regards,

Raphaël.

I really like the drag-a-box-then-Ctrl-Space structures feature we got. It would improve my coding speed if it could respect bare wires aswell.

To my knowledge we can't solve this ourselves, so it's up to NI.

I suggest to make it the default option or to make it respect wires when clicking Ctrl-Shift-Space instead.

strcutures.gif