LabVIEW Idea Exchange

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

Please add to the right-click Cluster popup menu a Remove Cluster item analogous to a tab control's Remove Tab Control removes the parent container and leaves the contents as-is.

In vi.lib\Utility\file.llb the 'file open+.vi' throws an error when a file can't be opened. It doesn't tell which file it can't open.

 

One of the strenghts of LV is the source string in the error cluster that can be used to include a lot of extra information. For example which file couldn't be opened.

 

The change can be very simple, just add the file into the source string, also see attached file:

beuvink_0-1652104974240.png

This is probably true for some other files here as well.

 

(also checking out these files... would be nice if they are updated to some newer standards... still some very old styling here...)

 

Some background: https://forums.ni.com/t5/LabVIEW/Looking-for-feedback-on-the-Carya-PDF-toolkit/m-p/4229342#M1228046

 

 

 

 

 

Now, project could be pinned in Getting Started window only. But it would be nice to have some menu for it, which would pin project when it is opened. 

So user opens project -> realizes that it would be nice to pin it, for faster access -> user calls some menu (from toolbar, or right-click on project in project explorer) -> then project will be displayed as pinned when Getting Started window will be called.

This might be a bug report; it depends on whether todays behavior is intended or not(?).

Anyway: if you have properly defined the destination of a file in your application build e.g. on Source File Settings, but then later learn that the file was not actually on the list of source files - adding it to source files will automatically change the destination(!). I suggest it should check whether the user has already defined a valid destination for it and if so keep it.

 

Here is a demo of the issue:

structure_merger.PNGEvery now and then I (or others) have two case or event structures that I would like to merge, either completely or just copy some cases from one to the other. If we are talking about one or a couple of cases, doing it by creating empty cases and copying the code from one structure to the other as is the option today is fine. If the number is much higher this gets quickly tedious, and we have to come up with alternative solutions.

 

(Making a subVI of the two and add another case structure around them, as described in the discussion linked to above, is one -  but that changes the layout and adds another selection to the logic).

 

So how could it be handled by the IDE instead and made much easier?
A case merger function.

Here are a few quickideas on how to implement it (but any similar solution would be better than none);

 

  1.  Copy-Paste-Merger: Selecting the frame of structure 1, copying it, selecting frame of structure 2 and pasting will bring up a merge dialog with the following options:

    a) Replace structure?
    b) Merge structures (all cases)?
    c) Merge selected case only into structure?

    Now if the user selects to merge the whole or just the top/selected part of the structures (b or c) the function has to handle overlapping cases (just like the OS does when copying into a folder with existing content) by asking the user whether to keep the old ones, replace with the new ones or leave them as non-unique values (or add an index to the value) for the user to tidy up manually afterwards.

  2. Drag and drop merger; identical to the previous suggestion - but instead of copy/paste the transaction is initiated by dragging structure 2 over structure 1 and e.g. holding it with an edge aligned when dropping to indicate that it is not intended to go *into* the other structure.

  3. A merge option that can be called from the menu or contextual menus on case/event structures. The advantage of this would be the ability to add more complex mergers where you would want to pick frames x, y and z from structure 1 to merge with structure(s) 2 etc... This option could alternatively be combined with the other two and used as the dialog when those are initiated.

Hi,

 

I think it would be nice to have this function on LabVIEW when using lvclass.

 

 

carloandreslpz_0-1650651726106.png

 

By this way would be easy to add new elements to the class private data.

 

Regards.

The various options for aligning, distributing and sizing the elements of a front panel are very useful.

 

Snap1.png

 

What I find lacking is the ability to move one or more elements according to a number of pixels.

An adaptation of the box for resizing would suit me very well.

 

Resize Objects.png  Move Objects.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 

Autoindexing inputs and outputs is incredibly useful, but when it indexes and you don't want it to, you have to right click the tunnel, select Tunnel Mode, then Last Value.

 

Can we get an option to enable or disable autoindexing with a keyboard shortcut? Say, hold Shift to disable indexing, or tap Alt to toggle it.

 

A couple similar ideas:

Change tunnel mode with Ctrl-click 

Smart autocorrecting autoindexing (from 2009!!)

 

Like some other ideas here and here, I find the connector pane right-click context menu to be a burden. I would like to see some of the menu items moved or rearranged.

 

For example, I’ve been using LabVIEW a few years, but the first time I tried many of the shortcut menu items was today. If I were looking for them, I would probably expect to look under "Patterns".

Picture1.png

Additionally, if I click a little to the right, three more of the menu options are already available in a much shorter context menu, so I don't feel like they are needed from the connector pane. (Personally, I rarely perform these actions through the icon, anyway, but I’m sure some people do.)

Picture2.png

 

I propose removing the top few items and putting the others in the patterns sub-menu.

Something like this:

Picture3.png

Picture4.png

Or, if combining the text and patterns creates a UI programming issue, I think it would be acceptable to leave "Patterns" and add a new sub-menu:

Picture5.png

Picture6.png

 

Thank you for considering this idea!

-joeorbob

Swagger/OpenAPI  has become the default go to way to document and interact with rest API's.  It would be great that when you publish a LabVIEW webservice it generates the OpenAPI yml or json file (being able to generate both would be great).

 

Also having a right click in the lvproj webservice view that brings you to the swagger page for debugging would be helpful. 

Right-clicking a subVI and selecting "Find all instances" is extremely useful. However there is currently no way to filter the results by a particular input or output being wired in the caller VI.

 

My proposal is: It would be great to be able to filter by a particular input or output, or a particular combination of inputs and outputs, being wired in the caller (i.e. being used by the caller) when using "Find all instances". There are multiple ways of exposing such a filter to the user, so I won't attempt to mock up a design here.

 

Background

Recently I refactored parts of a medium-size LabVIEW project that I was working with for the first time. As part of the refactoring I wanted to remove an output of an FGV-type subVI with multiple inputs and outputs, because I suspected that that output was unused by any of the callers. Using "Find all instances" I found around 60 instances where this subVI was called. I had to Ctrl + G through the results list and check that the output I wanted to remove was not used in any of the callers. This would have been simpler if I could have set a filter condition to this effect, as the search would have returned only those callers that were using that output. In this case, the search would have returned 0 results, thus confirming that the output was unused.

 

Side-note: You are probably thinking "You could have disconnected the output terminal from the connector pane, and used the Error List (broken run arrows) to find the broken callers." That's what I intended to do before I realised that virtually all of the caller VIs were dynamically called VIs. Therefore those VIs being broken wouldn't have broken the main VI of the app. I put those dynamically called VIs into the disabled case of a Diagram Disable Structure such that they were loaded in memory and "Find all instances" would search inside them.

Thanks

Background

This idea is derived from the following idea: Front panel controls and indicators should be genuine after being replaced with control or indicator of different style . Please read that thread for background.


Problem

There are three ways to replace front panel controls and indicators:
1. Right-click the control or indicator, select Replace, then select the select the object to replace with.

2. Select the control or indicator, press Ctrl + Space to bring up QuickDrop, search for the object to replace with, then press Ctrl + P.

3. Select a control or indicator and press Ctrl + X. The control will disappear from the front panel. Select another control or indicator. Press Ctrl + V. The second control is replaced by the first control.

 

The first two methods preserve some of the look and feel of the original object. For example, when replacing a Modern-style string control with a classic-style string control, the end result is a control that looks like a mixture between the two styles. This may or may not be desired behaviour.


The third method does not preserve any of the attributes of the object that was replaced. The end result is a control that looks exactly like the control that was selected when Ctrl + X was pressed.

 

Both behaviours can be desireable in different situations, and it's good that there are ways to achieve both. However, the third method is not easily discoverable.

Proposed solution

A more intuitive and discoverable solution could be: After right clicking an object, selecting Replace, and selecting the object to replace with, a two button dialogue message could popup. The message could ask something like "Preserve attributes?" The buttons' Boolean text could be "Yes" and "No".

 

Ideally the same popup would appear when using the QuickDrop Ctrl + Space, Ctrl + P method.

 

This would:

1. Enable the user to select either to preserve attributes or not, depending on their intention at that particular moment. (the same user may prefer either behaviour at different times)

2. Increase awareness that two behaviours are available

Thanks

When I was newer to LabVIEW, I found it hard to understand how people could identify front panel object styles e.g. NXG style string control vs System string control. 

 

leahmedwards_0-1648668143626.png

 

I believe it is the sort of skill that takes experience and experimentation, and it only gets more complex when the appearance of the string control is customised. For example, modifying the above controls so they are the same size, they are practically identical...

 

leahmedwards_1-1648668460012.png

 

I have never been able to find a good complete documentation of the differences in appearance and behaviour between different styles of front panel object - seems each style of each type of control has their quirks. So when presented with front panel objects that you did not make yourself, it is hard to 'reverse engineer' them if changes are needed. This makes it harder to learn how to make good UIs.

A potential solution would be to add a property which tells you which style a control or indicator was created as, or most recently replaced by. E.g. modern, classic, system, silver, NXG. An extension would be to add a 'reset to default style' which would behave as if replacing the customised object with an object of that style from the palette. A further extension would be to allow changing of style e.g. in this example from NXG to System via a dropdown box, although not all front panel objects are available in all styles so I can see this being more difficult to implement.


This is probably the ugliest UI mockup you will see all day but I hope it gets the idea across and sparks some conversation:

leahmedwards_2-1648669786430.png

 

This would be accessed via 'properties' on the right click menu of the front panel object.

leahmedwards_3-1648670215478.png

 

 

I'm not very experienced with XControls, QControls etc. so would welcome suggestions about how these should behave. Perhaps there is some nuance to do with styles that I am missing.

This idea is related to this one which talks about setting style for the whole front panel.

Let me know your thoughts!

I frequently perform operations on Maps of Objects which hold private data where I do not intend to alter the structure of the Map.

Existing Solution

However, Maps are a bit clunky to work with when operating on all Elements. You must first get the list of all Keys, then use an In Place Element Structure within a For Loop and Shift Registers to operate on each Element as follows:

Map In Place Element.pngPotential issues with this:

  1. Unnecessary branch of the Map which may not be optimized by the compiler
  2. Excessive block diagram editing which slows down the development time involved when working with Maps
  3. Potential for syntactical errors due to complexity of this operation

Proposed Solution

It would be great if there were some kind of auto-associating tunnel available to For Loops:

 

For Each Element in Map.pngNote that the Key is not modifiable, nor is it even available within the For Loop.

 

 

Perhaps the tunnel icons must be changed so they are not confused with shift registers.  I just copied the association icon from the map datatype icons.

 

 

 

 

This level of functionality is similar to the syntactical abbreviations available in most languages which support maps as a standard data type.  I originally wanted this kind of functionality for Sets as well, however modifying the values may result in structural changes to the set itself due to the uniqueness constraint.  As such, this is only applicable to Map Values within For Loops.

 

It may not be obvious, but this kind of tunnel would not be available to While loops.

Selection

AutoAssociation Context Menu.pngThis option would be available on the block diagram through the context menu items of the Map datatype Input Tunnel to the For Loop.

 

 

 

 

 

 

 

 

 

 

 

 

 

The IDE would be more consistent if all the toggle-able features were collected together under the "Visible Items" submenu. Photoshopped example of a FOR loop below, but I'm sure there are others. "Show Dynamic Event Terminals" comes to mind...

 

OneOfTheDans_0-1647968497756.png

 

Unlike building a Packed Project Library, source distribution builds will succeed even if a contained VI is broken. For my use case this is undesirable - a broken VI being included in the source distribution is always user error, and I would like to be notified during the build process.

 

It would be helpful if the build specification for a source distribution could be configured to fail if an included VI was broken. By defaulting to false this could be added in a backwards-compatible way without breaking any existing build specifications or workflows.

 

RyanZoeller_0-1646668674035.png

 

I could write a post-build step that validates the VIs are not broken, but this wouldn't provide feedback until the build is complete. A native solution could abort the build early if VIs are broken.

If you happen to put something that LabVIEW doesn't quite like in folders like "~\LabVIEW xxx\project"
LabVIEW will crash at launch and give you a very helpful crash report as shown here : https://forums.ni.com/t5/Discussions-au-sujet-de-NI/Crash-de-LabVIEW-%C3%A0-son-lancement/m-p/4215135#M35349

 

In order to avoid being told by NI support that you have to re-install LabVIEW

Please add a "safe mode" that will ignore whatever was added by the user (or VIPM) in the subfolders of the LabVIEW folder.

 

And also fix CAR 732888

Problem
Using the "Disconnect This Terminal" and "This Connection Is >> Required/Recommended/Optional" menu items can be tedious due to it being too easy to right-click on a different terminal than intended. This is especially true in VIs whose connector pane is densely populated with many inputs and outputs, or VIs that use one of the connector pane patterns that have more terminals than the standard 4-2-2-4.

 

To check that I applied the change to the terminal I intended, I often press Ctrl+S and Ctrl+H to quickly bring up Context Help and check that the terminal is indeed required, recommended or optional.


Solution

It would be useful if the two menu items would also be available in the shortcut menu that pops up when right-clicking the control or indicator in question, as shown in the screenshots below.

1 (edited).png

2 (edited).png

Notes

  • The new menu items would be in addition to the current menu items. I'm not suggesting removing the menu items from where they are now, just adding a second way of accessing them.
  • The two items should appear only in the menus of controls and indicators that have been connected to the connector pane.
  • I'm aware that the functionality can probably be implemented with a shortcut menu plugin, but it'd be nice for it to be built-in.
  • This idea is similar to Disconnect Connector Pane Terminal with ALT + Left Click, which I support. The two ideas are not mutually exclusive. I'd use both.


Thanks

I use an electrical drawing package and on different pages of schematics it is nice to have copied components e.g. potential lines to be in the same position so when flicking through pages you can easily see the differences and it looks prettier.

 

In an event structure or case structure when I copy and paste an object from one case to another I would like to be able to also copy the position of the copied item. I like to be able to scroll through event structures and see any identical components in the same location. 

 

I propose that the X and Y keys on the keyboard be used to trigger this auto alignment so that after pasting, pressing Y will move the copied item to the same Y position and then X to move to X position.