LabVIEW Idea Exchange

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

Suppose a front panel contains the three elements seen below, with the first one being selected.

1 (edited).png

 

 

 

 

 

 

 

 

 

 

 

 

In the situation above currently pressing Tab does nothing. It would be useful if, instead, pressing Tab would cycle the element selection to the next element in the tabbing order, as seen below.

2 (edited).png

 

 

 

 

 

 

 

 

 

 

 

 

If Tab was pressed again, it would cycle to the next element in the tabbing order, as seen below. And so on.

3 (edited).png

 

 

 

 

 

 

 

 

 

 

 

 

Notes

  • This idea would speed up development by enabling us to cycle through element selection without using the mouse.
  • When used in conjunction with the F2 idea, this would enable us to use Tab + F2 combinations to quickly cycle through elements and rename their labels and/or captions.
  • This idea could be extended to terminals on the block diagram. Suppose a terminal is selected on the block diagram, pressing tab would navigate to another terminal on the block diagram.
  • I'm aware that currently it is possible to use Tab or Shift+Tab to cycle between elements forwards or backwards when the VI is in Run Mode (Ctrl + M). While that is useful, this idea asks for more.

Thanks!

Idea:

Double-click to a wire + holding <ctrl> or <alt> will call the wire-cleanup tool for this particular line => much faster than via context menu

cleanup

nvb.png

 

More often than not, I just Create Constant on that terminal and leave it at zero, either cause the diagram isn't going to be seen anyway or because I'm just going to call Clean Up Diagram afterwards. I think it would make sense if this terminal was merely Recommended rather than Required.

 

         in "debug mode" (retain wire values), be able to choose the "radix"

 

                something like this:

 

                toto.png

 

           yes, I know the custom probes, but I'm not talking about that. .
It would be nice and useful to have this in the native behavior of LabVIEW
                                        sorry for my poor english, i do my best

I searched reentrant in this idea exchange and didn't see anything on it so here goes. I would like some sort of indicator showing that a VI is reentrant. Right now, as far as I know, you have to go into the properties and check. It would be nice if there could be either something on the icon, or a small label that would show if the VI was reentrant. Or maybe a slight "halo" around the VI, something to that effect. Any other ideas on how to do this are welcome.

 

 

 

Message Edited by for(imstuck) on 02-24-2010 10:00 AM

DVRs are references, and are automatically released when the VI hierarchy that created and "owns" it goes idle (stops executing).  Commonly, the DVR just contains by-value objects, or LabVIEW references that are also automatically released, but an important use case of DVRs is wrapping a non-labview reference that must be properly cleaned-up.   An example is an SQLite Connection pointer that must have a dll method called on it in order to release the database file it is holding open.  Many dlls have similar pointers/handles that need to be properly closed.  This is a headache for Programmers, who cannot rely on a stopped VI releasing its resources, often requiring restarts of LabVIEW to unload the dll.

 

A clean and easy solution to this problem would be to allow a "DVR Cleanup Callback VI" to be registered with the system when the DVR is created.   That VI would be called if and only if the DVR is release because its calling VI hierarchy goes idle.   This VI would contain the code to cleanup/close the contained non-LabVIEW references.  Could have other uses, such as debugging. 

 

I have developed multiple APIs that wrap non-LabVIEW dlls, and this feature would be a very significant help.   Please consider it.

Who has ever made a cluster typedef, then added some elements, then added more, then a little more? Have you noticed the "typedef explosion" of your block diagram as a result, with constants overlapping other code? Make a right-click option to "link" a bundle by name to a typedef. Note that the two pieces of code below would be identical, but the bundle on left would not suffer from typedef explosion. In addition, have a selectable menu

LinkToTypedef.png

 

Another idea is to link the bundle to the destination:

 

LinkToDestination.png

 

 

For most functional blocks on the Front Panel, the wire anchor point is very near the edge of the block (reference this idea for an exploded view of the wire anchor point). This lends itself very well to a trick I use to achieve neat parallel wire routing (until this idea is implemented!😞

 

WireRoutingTip.png

 

Step 1: Wire up a bunch of parallel wires, and you've got a mess!

Step 2: Grab one of the functions, and drag it all the way up and down so that the parallel wires all bend along the same line

Step 3: Grab the wires one at a time, and using Shift+Arrow Left or Right and distribute so that the vertical wire runs are evenly spaced

 

Here's the problem: Bundle by Name, Unbundle by Name, Property/Invoke Nodes, Local Variables etc. have the "wire anchor point" in the center of the node. This makes the above trick difficult, and it also presents more problems:

 

HiddenWireBends.png

 

Frame 1 shows erratic spacing of tunnels, and a highlighted wire that lands in the center of the large Unbundle by Name. I have drawn a red line that shows the center of the wire run as currently implemented, and the green line shows where I propose the wires should bend. Frame 2 shows what you see when check "Hide Full Names": the wire bends are clearly evident and easy to fix, as shown in Frame 3.

 

Another problem is "what you see is (maybe or maybe not) what you get":

 

WiringIllusion.png

 

The three tunnels appear to be wired to 6, 7, and 8, but indeed they are actually wired to 1, 5, and 7.

 

In a nutshell: When the location of a wire bend is calculated, it should bend halfway between the edges of two nodes. This could be accomplished by placing the wire anchor point at the edge of the node instead of the center of the node.

So at the moment LabVIEW has the icon editor glphs stored in the following location.

 

<username>\Documents\LabVIEW Data\Glyphs

 

This is fine, until you login as another user.  Then you realize all of your icons are gone because LabVIEW installed the icons for the user that was logged in when LabVIEW was being installed.

 

Similarly a problem exists if I am distributing icon editor glyphs of my own.  I have a reuse package with a bunch of useful icons, and I have VIPM install them to that users folder.  The problem is if I login to a machine remotely, and perform the update as my user, then those icons are only installed for that user name, and not all users.

 

What this idea is for, is to have a shared folder for icon editor glyphs, which is used for all users on that PC.  Some place like

 

<LabVIEW Install>\Resources\Icon Editor Glyphs

 

would work, or...

 

<ProgramData>\National Instruments\Icon Editor Glyphs

 

Then icons can be installed in one folder, and be shared for all users.

Very simple idea that can make locating the basic comparison functions more efficient (first two lines). Changing the order putting each comparison function and his counterpart below him would make easier to find the desired one.

 

Now: Comparison palette.png        Proposed: Comparison palette - rearranged.png

It is fairly common to build applications in LabVIEW that are useful to run as a service (monitoring software e.g.) , however to do so today you need to "cheat" and use srvany, and write and run batch files to get it installed. 

 

It would be great if we could build real services, and the installer would take care of the installation process. You could even have a nice template for services with an accompanying user interface client, with notification icon and everything.

 

LabVIEW everywhere...Not just on different targets, but in every part of the system. 🙂 

 

The Open/Create/Replace file I/O primitive is pretty powerful.  It will check to see if the file is there for you, and, if not, create a new one.  I use the "Open or Create" option often when generating multiple delimited text files in long term tests.  When a new file is created, I need know so I can add a header, and I need to skip the header operation if the file is being appended.  Sure, I could check to see if the file exists before trying to open it, but then wouldn't that just make the power of the Open/Replace/Create function redundant?  Some operation took place based on my input to the "operation" terminal, and whether or not the file exists.  Unfortunately, I have no idea what that operation was, because the function doesn't tell me. Let me know if the Open/Create/Replace function created a new file so I can add my header.  

 

New File Feature.png

 

This is not without precedent.  For example, the "Obtain Queue" primitive has an option to create a new queue if a queue of the given name is not found.  It let's you know if the new queue was created:

 

created new.png

I love the new integrated structure labels! I will probably be using the free text labels much less in LabVIEW 2012. But they need a vertical scrollbar and probably a horizontal scrollbar as well. We can debate about whether or not it is a good idea to have hidden text in the labels. But regardless there needs to be some indication if there is.

 

This is closely related to another idea here.

 

vertical scrollbar.png

 

 

This is just an idea I had while working on a simple application.  I often find myself wanting to replace multiple objects on a block diagram in a repititive manner.  As an example, I have an application that uses a queue requiring an enumerated value as an input - when I started the application I didn't use a type definition, but I (of course) quickly arrived at a point where I needed to replace all of my constants with a type definition.

 

Right now I have a few options:

1) Delete the type definition and drop a new one down and wire it up

2) Right-click and select 'replace' and point it to the ctl file

both of which take a considerable amount of time to do over and over again.

 

Here's my idea...  I create the type definition once, and press CTRL+C while it's highlighted on the block diagram.  Then I select one (or multiple) items that I want to replace with this type definition and when I press CTRL+P it automatically replaces and wires the item in the copy buffer.

 

It's hard to illustrate, but I just wanted to throw it out there to see if anyone likes the idea.

Right now, if you select to show the label of a wire connected to the output of a named cluster, the label is empty:

 

ScreenHunter_001.jpg

 

The white space surrounded by a box pointed to by the line is the location of the blinking cursor.

This is similar for all wire sources: controls, constants, function outputs, etc and should behave similarly for all.

Whenever I place a Bundle By Name (or Unbundle By Name) function on the block diagram, it is configured to Show Full Names. But while creating the cluster, I provide descriptive names to each element and so I want that every time when I place the Bundle By Name (or Unbundle By Name) function on the block diagram, by default it must be configured as Hide Full Names.

 

Unbundle function

 

I know, my wish is not what everybody else wants to have, so better solution to this could be a selectable option (perhaps categorized in Environment setting).

 

Right-Clicking on a connector in the connector pane brings up a context menu.  This menu should have the same "Find Terminal" option as if you click on the FP object.  This will provide quick access to the Terminal especially if the FP object is hidden.

 

 Connector Pane Find Terminal.png

The ability to define a mask for a string control to simplify data entry. Useful for any type of data including zip codes, phone numbers, IP and MAC addresses, formatted serial numbers etc...

 

Similar to Microsoft InputMask property in Access (http://msdn.microsoft.com/en-us/library/bb215691.aspx)

 

 

 

 

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