LabVIEW Idea Exchange

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

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!

Wire a Case Structure with an enum. Now pop up on it and select "Add Case For Every Value." In today's LabVIEW, this adds new frames to the structure so that every enum value is handled by a unique frame. This makes creating the structure initially easy, and it gives you a way to walk through and make sure that you've filled in code for every frame. But today, the Case Structure has includes the "Default" case when the Case Structure is first wired. That is done so that wiring a Case Structure with an enum does not result in a broken VI. When a programmer provides a unique case for every value, the Default state is now redundant, and the only thing it does is create the potential for error if you ever add to the enum. Thus I would propose that if you use "Add Case For Every Value", then LV should remove the Default tag from the first case.

 

AddCaseForEveryValue.png

String containers have display format Glyphs to help us understand the String Values when the display is Normal, Hex or Escape codes.

 

Integer numeric type containers have them too to show radix.

 

Timestamp containers must be inspected for their display format property to determine if they are in System Time or UTC.   

 

Timestamp Controls, Indicators and Contsants SHOULD have a similar optional display format glyph.

 

This could be used instead of the misleading coercion dots when operations are performed on Timestamps as Seen Here 

Since LabVIEW 2017, the default build specification check the option "Allow future versions of the LabVIEW Runtime to run this application".

 

I don't undertstand why it is checked by default when you read the help that said "Disabling this option prevents any changes to the performance profiles and helps you avoid unexpected problems resulting from compiler upgrades."

 

Because NI and me doesn't know the future, NI will never garanty that your application will run with all the future LV Runtime. I know it well because I'm facing this issue with le LV RT 2020 that breaks the execution of different application that I have buid in 2017 SP1.

 

The behavior is a little strange too, because, even if you have the run-time use to build the application on your computer, the application will use the highest one present one the computer.

 

This options can be very usefull, and I appreciate it, but maybe we need to have more control on it. So my idea is to give to the user the ability to list supported or unsupported LabVIEW Runtime.

 

This will help us managing future LV Runtime without having to recompile the application which seems to be the goal of this option.

 

for Example :

 

[MyApplication]

ExcludeLVRTe = "2020,2021"

 

Regards

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

I saw this idea which I really liked and I realised that this would also be nice.....I do this type of 'insert subVI, delete broken wires' action all day.

 

error_wires.png

 

I searched I think what I am proposing is a little similar to this idea but I think in the difference with the idea I'm putting forward is that labview will only automatically delete a section of the broken wire when the 'short circuit' is sending data around a VI as well as through it!

 

The second part of the idea - where the 'merge errors' vi can be configured to appear automatically when two 'sources' are wired to one sink would be useful when you are parallelising subVIs on the block diagram. I'd also suggest that if this option is configured and the source wires are deleted (so that only one source is linked to one sink) have the merge error vi disappear!!!

 

I'll be gutted if I've wasted my time on another duplicate.....I keep not finding other peoples great ideasSmiley Happy

 

 

If You drag a tunnel of a loop, case structure or any other structure along the border over a corner, then

the connected wire becomes hidden behind the frame.

 

Sometimes, the wire looks alike it is connected to another wire instead - like in the example below.

I fell into that trap, because I've just seen the frame to the right and didn't expect, that the wire was

connected to the tunnel near the bottom.

wire_behind_frame.png

Wouldn't it be great to break up the wire with a 90° corner and place it in the visible area?

     wire_not_behind_frame.png

 

 

More similar situations like this are posted in this thread:

http://forums.ni.com/t5/LabVIEW/wire-vanishes-behind-frame-of-case-structure/td-p/3221167

When using LabVIEW in combination with other languages, it would be really nice for LabVIEW to be able to read from and write to the stdout and stderr streams. For example, when writing a dll in C that is to be used by LabVIEW, it would be really nice to be able to see the output and error streams from within LabVIEW. As it stands you have to jump through hoops in another IDE or create a log file or some other workaround if you want to see what might have happened inside the dll to cause it to crash.

After reading Restore High Contrast Icons I procrastinated as long as possible before installing LV2016.  When I finally did, I was disappointed by the additional space required for the palettes; all of them!  I have been using LabVIEW since 5.0 and switched to an Icon view of the palettes shortly after getting comfortable with the graphics.  Now, I have to move my mouse further to get to each sub-menu and VI selection.  It's a waste of developer's time and apparently done for absolutely no good reason except to make a change; very similar to the washed out icons.

This extra space needs to be removed or at least an option provided to set the spacing back to the condensed spacing always available.

These images to show the relative size of the palettes LV2016 vs. 2015.

Controls Palette

ControlsPalette

BoolenPalette

Functions Palette

FunctionsPalette.png

ArrayPalette

 

Yes, this might seem trivial, until you think about traversing several palettes to get to your needed VI.

 

FTPPalette

*Random example, if one were doing FTP development they'd pin the menu.

** The original size of the above graphic is 1030 pixels wide; less than 800 for 2015.

 

Quit messing with what works and has become the standard with regards to options.  At least when that ridiculous "default" setting for icons instead of terminals was introduced we could undo the setting in Options

It seems that NI has hired some non-G experts to mess up the interface simply so they can enumerate all the "great" improvements they've made.  Or, was all the extra space to make sure newbies couldn't miss the folder tab, since connecting the "right arrow" on an icon to it being a sub-folder would be too difficult for children?

 

 

Has this ever happened to your application?

 

RootWin.PNG

 

Well, it happened to me many times. I never figured out when this happens and when it doesn't, but I do know of a certain way to disable it - add the line HideRootWindow=TRUE to the application's INI file.

 

The problem with that solution is that when you build a new EXE, LV creates a new INI file which overrides the old one, unless you explicitly create your own INI file and tell LV to use it.

 

So, the solution to this is simple and this is the idea - LV should add the line HideRootWindow=TRUE to the application's INI file by default. Problem solved. Alternatively, maybe the whole root window thing is not needed anymore and NI can simply get rid of it.

 

 

ThisVI.PNG

The label should be hidden as standard on This VI referrence as it gives no extra information, it only clutters the block diagram.

/Y

The error ring is a great and simple tool to define errors, especially when selecting "Custom Error Message" and supplying parameters from outside of the error ring.

 

errorring.png

 

The fact that the text search doesn't look inside the error ring makes it hard to find hard-coded error codes. 

 

Idea: I would love to see the search in LabVIEW also find strings inside error rings. 

 

PS: This idea (or inspiration for it) comes from Stefan Lemmens.

This idea came to me from Darren's Nugget 2-23-2018 on Data Agnostic Probes I thought it might be useful to write a Probe.vim or specifically, a data type malleable probe to gain the ability to have some access to the data itself in a general smart probe and maintain the ability to display the data in a type specific manner.

 

One example would be a "Data History Probe" that displays the history values of any data type.  I'm sure there are other good uses.

Estimate and show the Time Remaining during LabVIEW Installs, using selectable and realistic time units:

.

install.png

I remember when I first discovered the "Show Item Paths" option in the "Project" menu. This is such a useful view, but for some reason we are only seeing the tip of the iceberg!

 

I propose that the project window be enhanced to support other useful VI properties too:


properties2.png

 

Among other things, this would allow us to very easily identify VIs (or controls, or libraries, ... ) with non-standard properties. (Have you ever revisited an old project and tried to figure out which VIs are reentrant, or inlined?)

 

What properties should be available?

  • Ideally, this view would support ALL properties for ALL project items ( - at least those that have a compact text representation).
  • If that proves impractical for some good technical reason then I'd suggest we at least get access to the Execution properties.
  • It would be great if we could choose which columns to display from available item properties. These columns could then be toggled on/off (just like the existing "Paths" column):

 

menus2.png

An added bonus would be the ability to sort by any column:

 

  • My preferred implementation would be to allow the user to click on any column name to toggle between ascending and descending view. (This type of thing has been suggested a few times for multicolumn listboxes...)
  • On the other hand, I'd be happy enough if this worked the same as it currently does with "Paths", i.e. using the "Arrange By" option (>> Right-click on a parent item in the project and arrange the child items by Name, Type, Path, etc)

 

I think this would be a BIG step in the right direction towards leveraging the existing project interface to provide some REALLY useful information.

 

Spoiler
If anyone is wondering about the "Runs On Error" property then you should visit this idea.

 

In LV 2010 the string constant display style is a nice new addition based on the ideas here and here.

The implementation is consistent with how the radix indicator works on numeric constants in that you must navigate to the visible items shortcut menu and turn them on discretely.

If I want to take a string constant, show it in '\' format and turn on the descriptor, it requires two separate operations.

 

I propose that the descriptor (or radix for numeric constants) be automatically shown when displaying any mode other than the default.

 

String formatting.PNG

Not only would this add to the readability of these constants but would eliminate the extra step to have to discretely show this valuable piece of self documentation.

If the developer did not want the descriptor shown, they they could manually turn it off.

Three graphs contain the word "waveform":

 

  • Waveform Chart
  • Waveform Graph
  • Digital Waveform Graph

 

(... and equivalent graphs in the classic and silver palettes ;))

 

This is misleading because these don't just work with waveforms, but with a rich selection of other datatypes. Then the word "waveform" is very long and the default label invariably gets in the way of structure borders and other code elements.

 

I suggest to drop the word "waveform" from all graph types that contain it. Now we simply end up with the following labels:

 

  • Chart
  • Graph
  • Digital Graph

 (... and equivalent changes in the silver palette.)

 

Ahh, so much more concise and compact!!! I feel better already!

 

Idea Summary: Drop the word "waveform" from the default label of all graph types that contain it.

 

Thanks for your support!

I sometimes feel difficult to see the value of a wire while editing the VI. When "Retain Wire Values" is turned ON, I need to put a probe on that wire to see last executed value. Applying probe on every other wire while coding will result in lot of probes and also it will increase the coding time.

 

Having a way to view the wire value on Mouse Hover in edit time will be really useful. What I feel is, the value can be displayed as a tooltip or a dialog box similar to context help window which will disappear when mouse pointer is removed from the wire. 🙂

 

 wire hover.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.

 

There's a lot you can do with LabVIEW to improve the appearance of the UI.  The community has really helped move the LabVIEW UI frontier forward with many wonderful UI palettes and tools to improve UI creation and customization.  One key limitation to all of this though is that LabVIEW controls are comprised of parts that are NOT programmatically accessible.

 

This is a large drawback since it prevents developers from creating dynamic UIs.  For example, you cannot really add a good "Dark Mode" feature without designing specifically for dark mode because Frames and other control components are not customizable at runtime.

 
 

Control Parts.png