LabVIEW Idea Exchange

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

Current behavior:

When saving a new .lvlib inside a .lvproj the save file dialog brings me to the last saved location which is often a different repo.

 

Desired behavior:

When saving a new .lvlib inside a .lvproj bring me to the root directory where the .lvproj is saved and not the last saved file location. i.e. implement the same behavior as when saving a VI inside a library or a class. This would solve the issue of VIs accidentally being miss-saved outside of the project folder and then getting lost.

Often when I want to look at the structure of a complex data type containing nested typedefs, I find the data type description in the Context Help quite heavy/verbose.

 

For example, could you tell at first glance how many levels of hierarchy there are in this data structure ?

 

raphschru_2-1700832707643.png

 

Well, actually there are 5 levels (including the root cluster), but this is obfuscated by the unnecessary levels added by typedefs.

The description could be much more concise:

 

raphschru_3-1700833121443.png

 

Here is an alternative that keeps the typedef type descriptions and appends them after the typedef name. However I'm not sure about this one because it could create description texts that are too long to be displayed in a single line:

 

raphschru_4-1700834723096.png

 

Also for the configuration, it could be an option in "Options > Environment" and/or a button in the Context Help:

 

raphschru_7-1700835928603.png

 

What are your thoughts ?

 

Raphaël.

Show the Context Help for packed project library VI terminals. Without it, development suffers. For example, a wire conflict occurs but the nature of the source or sink type is not available for inspection.

pplhlp.bmp

One of the most common operations performed on arrays is to determine whether an element is found inside the array or not.

 

There should be a function that is dedicated to this fundamental operation. My workaround is to use the "Search 1D Array" function followed by a "Greater Or Equal To 0?" function, as seen below. While it only takes a few seconds to drop the geqz function using Quick Drop, it's still slightly frustrating that this is necessary.

 

The set and map data types rightly have been given the "Element of Set?" and "Look In Map" functions. An equivalent should be provided for arrays.

Element of Array - edited.png

 

Thanks! 

When debugging it's common to place a series of probes on a wire that goes into an out-of multiple sequential subVIs (a "rail" wire).

 

For example, in the screenshot below, we might want to place four consecutive probes, on each of four consecutive error wire segments.

Petru_Tarabuta_1-1700167441346.png

Currently this requires four right-click gestures.

 

It would be useful to have a "Probe Chain" menu item (not sure if this is the best name, please suggest better ones) just beneath "Probe" or beneath "Custom Probe", or perhaps beneath "Generic Probe" in the Custom Probe sub-menu.

Petru_Tarabuta_2-1700167544064.png

When clicked, the "Probe Chain" would apply a probe to each wire segment in a sequential or consecutive set of wire segments. This would result in the same set of four probes shown in the first screenshot. It would save a few right-click gestures.

 

Another typical example would be when probing an object or cluster wire.

Petru_Tarabuta_3-1700167889489.png


Notes:

  • I'd be happy if the propagation of the probes occurs only in the downstream direction. What I mean is: if the user right-clicks on the wire segment between SubVI B and SubVI C (screenshot above), then probes 6, 7, and 8 would be created (using the numbering in the screenshot above), but probe 5 wouldn't be created because it is "behind" or upstream of the segment where the action was triggered from. I'd be happy if the propagation worked in both directions, but I suspect that the implementation would be slightly simpler for just the downstream direction.
  • In the first screenshot above, it would be ideal if the tool would create probe 4. But I'd be happy if the tool would omit creating that probe on the grounds that that wire segment is bifurcated, assuming that dealing with bifurcated wires would make the implementation more difficult.
  • Perhaps pseudocode for determining if wire segments are sequential or consecutive (i.e. if they form a "rail") is: if a node takes as input a single wire of a given data type, and outputs a single wire of that same data type, then consider the two wire segments to be part of the same "rail". I wonder if the Quick Drop Ctrl+W tool already implements a similar algorithm, and whether parts of that algorithm could be reused.

Thanks!

I would like it if LabVIEW offered the option of creating Block-Diagram-Only VIs. These VIs would be just like regular VIs, but without the Front Panel window.

 

BD-Only VIs would be beneficial because:

  • They would remove the need to spend a few seconds tidying up the Front Panel of every VI. In a large application most VIs do not have a user-facing GUI. Most of the time tidying up the FP is "busywork" that slows down the developer. (The alternative: creating BD code without ever looking at the FP results in the FP being a mess, which is even more undesirable than wasting a few seconds to tidy the FP up.)
  • They would reduce the developer workload, thus making developers faster.
  • They would reduce the surface-area of the codebase.
  • They would replicate functionality that exists in all text-based languages where creating functions or methods does not involve "touching" a GUI.

BD-Only VIs would be my default choice for small, low-level VIs that serve as subVIs deep inside my application. For example, does a VI that takes "a", "b", and "c" as inputs, and outputs "3D Distance = sqrt(a^2 + b^2 + c^2)", really need a GUI (the Front Panel)? Do most class accessor VIs really need a GUI (the Front Panel)?

 

Notes

  • I realise that implementing BD-Only VIs is not trivial. But I believe that the benefits would far outweigh the implementation cost.
  • The Connector Pane functionality would have to be implemented in the Block Diagram. This has already been suggested by CaseyM in a comment to his popular Make the default behavior of opening a VI open ONLY the block diagram idea: "Hell, you could even add the connector pane wiring functionality to the BD - then I'd have even less reason to go to the FP on most VIs."
  • Steen Schmidt has aluded to the need for BD-Only VIs in a comment from 2014 to the popular Allow ONLY the Block Diagram to be opened Without Front Panel idea: "But this idea of Jack's here is about being able to have the BD open only, and leave the FP closed. Not about having VIs without FP at all (that discussion is a totally separate one, which we will have hammered out in due time :-)."
  • I would be happy if, for technical reasons, BD-Only VIs would use a dedicated file extension, for example ".vibd", similar to how malleable VIs use the dedicated file extension ".vim".
  • It would be ideal if BD-only VIs could be converted to regular VIs, and vice-versa. But I would be happy if, for technical reasons, this is not possible or too difficult to implement.

Thanks!

The asterisk (*) that LabVIEW automatically places in the title bar when a file is modified should be placed first not last so that it can be seen when the window is too narrow to display the whole string, e.g. where other programs like Notepad.exe put it when then text truncation is indicated by an ellipsis (...). Some titles can be much longer when they include lvlib and lvclass contexts.

 

ast.jpg

It would be really nice if double-clicking column header separators in tables, trees, and multicolumn listboxes automatically resized the columns based on their contents (like Microsoft Excel). This would be useful in these types of controls and indicators at both edit and run time. It would also be useful to have this capability interactively (initiated by the developer or user) and programmatically (through properties or methods).

Quick Drop (Ctrl+Space) should support replacement (Ctrl+P) on the block diagram terminal as well as the front panel icon. The front panel icon can be selected and replaced with another .lvclass but if its block diagram terminal is selected the replace does nothing.

QDP.jpg

Quick Drop (Ctrl+Space) is often used to work with a selected VI (e.g. Ctrl+P replacement). The Quick Drop dialog window opens with blank text box. Default that text box to the VI name if one is selected when Quick Drop is opened. That text should be pre-selected so that typing replaces it (no extra keystrokes for backward compatibility). Furthermore, it would be extra nice if the selected VI was automatically highlighted in the list.

QDP.jpg

Changing the misleading red pause sign for continuing the execution in debugging mode to a more appropriate icon (e.g. red play button) would improve the user experience and help newcomers intuitively learn about the feature.

Sometimes you need to change the name of the library (class) or you need to change dependent library (class) and everything becomes broken. It is really painful to replace broken subVIs one by one. I wish "search and replace" functionality is available for these broken subVIs.

 

Ekran görüntüsü 2023-11-01 083836.png

 

 

Ekran görüntüsü 2023-11-01 084213.png

 

Format Into String can become very complicated when you have multiple inputs. I think implementing it in a way similar to the Formula Node could make it much better.

Ideally,

  1. naming of the inputs should be allowed
  2. the input fields in the string should be color highlighted
  3. when hovering or clicking over any of the input or the format string fields, the matching ones should be highlighted in bold or with different background for example.

FJR0_0-1697721252785.png

As a side note, the Formula Node itself could also benefit from the same color and hover highlighting.

 

I haven't tried yet, but this might be already possible by generating C code and then building a Python package from that. It would be nice to have that automated.

I think there's also a commercial potential to sell Vision Assistant as a separate product (to Python developers).

I think it would be very useful to have the create DVR, change to DVR and change from DVR shortcuts on the menu.

I already did some of this, but it shall be a built in functionality.

I also encountered a bug in the change from DVR for controls and I couldn't work them around yet. To be exact, when a control is moved out of a DVR using scripting it becomes locked and the label is made invisible. The same is not true for the same operation on the UI. The only workaround I found was to replace the created control with one of the same style. The new problem is, that enums and rings that aren't typedefs loose their item lists. Of course this could be worked around too, but there might be other types I haven't tried yet.

To begin with, this is very likely a corner case, I don't expect this to get ever implemented, but the VIs are password protected which makes customizing them difficult.

When a project with a lot of VIs is open in a LabVIEW instance the Quick Drop loads for ~2 seconds, which is more then enough for me to press the shortcut combination too, leading to another pop-up windows to appear (like find window for Ctrl+F).

I wish this would be options, i.e. another option on the customization panel, or an option inside the project file/library which might be used less frequently.

Provide a new command line option to open the VI specified on the command line automatically minimized (/MIN) or hidden, i.e. just in memory (/MEM). When I want to research something in a project, I open many top-level VIs from the command line which takes a considerable amount of time. While they are loading I should be able to work on something else but LabVIEW keeps opening the windows on top of all other applications. Neither cmd.exe's start /MIN a.vi nor start /MIN LabVIEW.exe a.vi minimizes it. See current arguments here: https://www.ni.com/docs/en-US/bundle/labview/page/lvhowto/lv_defined_args.html

 

Consider that a related idea had 334 kudos but was declined for NI-convenience. If LabVIEW did that this wouldn't be needed: "Don't force all LabVIEW windows to the top when one is selected" - https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Don-t-force-all-LabVIEW-windows-to-the-top-when-one-is-selected/idi-p/2546089

Right-clicking the icon on the front panel of most VIs displays a pop-up menu with a "Find All Instances" of that subVI on the block diagrams of other VIs. However, if the VI is password-protected the pop-up menu is displayed. The password may not even be known by the developer.

When logging errors to a text file, I would like to see the latest error that occurred rather then the first error to ever happen and have to scroll to the bottom of the file and view the latest error (I know first world problems).  If there was a way to place the cursor at the start of the first line on a text file and enter the data shifting all the original data over/down, that would be helpful.  Currently when the cursor is placed at the start of the file it deletes the data as it is overwritten, if 25 characters is being written, then the first 25 characters of the text file is overwritten.

 

It is possible to read the entire file and concatenate the new data at string 0 with the old data at string 1, but if the file gets large (we don't clean our files / want to remove error data) this can become cumbersome and CPU consuming.

 

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019RNsSAM&l=en-US - Dated 7 July 2022, states that prepend can not happen the way I would like.

In LabVIEW IDE, when configuring executable build specifications, under "Version Informtion", it could be greate to have a string control to store free information depending on our version numering management (ex: alpha, beta, release candidate ...). This value could be used as a postfix to the 4 digits version (ex: version "1.3.0.1 alpha 5").

 

In "Details" tab of Microsoft Windows executable files, the "Product version" metadata is a string so there should be no problem.

 

Download All