LabVIEW Idea Exchange

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

The For/While Loop conditional indexing feature (new in LV 2012) is neat but so far only accepts a Boolean. That's departing with the behavior of the Case Structure selector terminal, which accepts error clusters:

 

ScreenHunter_007.jpg<----------- I'd like to connect the error cluster wire in the For Loop directly to the indexing condition terminal

(the case structure outside is just here to show what I mean by connecting an error cluster to the condition terminal of the Case Structure).

Of course the workaround is simple (as shown), but why introduce an even simpler approach for the Case Structure and not offer it here?

 

Edit: The obvious objection is that some will want to index when there is an error, other when there is none, which in fact might be best handled by the approach shown above. An error cluster connection would need a different contextual menu as well (index on error or index on no error).

 

Here are a couple of ideas to improve the Polymophic VI (along with this, this and this)

 

Allow selecting Multiple VIs when adding VIs to a Polymorphic VI:

 

Multiple Select From Disk.png

 

Allow adding files by Dragging and Dropping files from disk:

 

Drag and Drop.png

 

Add a RTM Shortcut entry for creating a Polymorphic VI to the Project Menu:

 

Select PolyVI from Project Menu.png

 

Increase the default size of the Polymorphic VI screen:

I normally always have to enlarge it (twss)

Note: a small UI glitch occurs when this happens too.

 

Bigger By Default.png

I've been wondering for years now why the LV Save (& Save All) dialog is quite unusual in terms of its layout & usability.

 

Redesign the "Save Changes?" dialogin accordance with the standard dialog design criteria as follows.

 

  • Resize the dialog to be somewhat bigger than now.
  • Place the Apply same action checkbox & the Affected items list at the top half of the dialog. Remove these items from the tabbing list, so the user can easily tab among the other 3 buttons, with Save highlighted by default.
  • The Affected items list is not sorted properly, but in the Explain Changes dialog, it seems the VI List is alphabatically sorted. So when you select a VI in  the Affected Items list & click the "List unsaved changes..." hyperlink-like text, the selections are confusing to the user. PFB snapshot.

Save Changes Dialog.jpg

 

  • Additionally, the selection in the Affected Items list is not actually a selection, but looks like only a marquee. It gives a false impression that the selected item can be edited. Fix this.
  • Make the Affected Items list to be vertically scrollable, instead of the current horizontally scrollable style, which is highly cumbersome.
  • Change the "List unsaved changes..." hyperlink-like text into a button that is prominently visible. New users think that this would open a web browser.
  • Place the Save (All), Defer Decision / Don't Save (All) & Cancel buttons at the bottm right of the dialog in a horizontal fashion.
  • Add the Help button, like in many other dialogs in LV.
  • Keep the name of the dialog to be consistent - "Save changes before closing?", instead of like "Save changes? (Close Project)" - The Close Project text is misleading.

Hello,
I believe many of you had already the problem that you accidentally changed a VI's from the vi.lib  and saved it.

 

There should be an option to use the complete vi.lib Read only!
I do not want to change the VI's in the vi.lib at all! Never!

 


Thanks for your support.

Excuse for my bad English.

 

 

 

Sample of an open VI from the vi.lib

Unbenannt1.jpg

 

 

and in the Options Menu it can look like this:

Unbenannt2.jpg

 

The variant data type parsing palette is great when you have to deal with passing variants around. However, there is one call that would be super useful. If I have two variants, I'd like to know if they are of the exact same type. The type information only tells you so much. For example, if you have an array in the variant, it will only tell you it's an array, not a double float array, or a waveform array.

 

I've wrote a version of this that does it, but I'm not sure I cover all the edge cases. NI would be much better suited to ensure it covers all the potential typing possible and can likely make it more efficient than I could. But, I think this implementation solves this issue for most common data types and even some more exotic things that could be in a variant. I would love to see this included in the variant data type parsing palette.

Screen Shot 2020-08-13 at 8.56.41 AM.png

In this example, I'm using it to check an array of variants to filter out ones of type I32.

now labview take the reference of position of a control, in the top left corner of any part of a control.
this behavior generate some problems, frequently the top left corner it's the label or caption of a control, this textual part can be modified in execution time, in this moment, the reference of the position of this control it's changed, if you generate some movements of controls during the execution, there don't work properly because this change of reference.
sugestion:
change the reference of a control at the top left corner of body of control, and the position off the labels relative of this origen.

 

reference of position of controls.png

 

NI LabVIEW allows VIs with invalid characters such as "?" in the filename inside an LLB file as shown below:

LLB.png

 

However when it comes to building a Source Distribution / TestStand Deployment that uses this file it returns an error as shown below:

Build Error.png

 

This inconsistency within LabVIEW is quite frustrating where one part allows invalid characters in the filename and another part will return an error. Since the invalid characters are allowed in VI filenames within LLB files I would suggest that the LabVIEW build tools also handle them graciously.

 

During the build process it could quite easily rename the file "pi40iv Can Connect Channel?.vi" to "pi40iv Can Connect Channel_.vi"  and link the VIs that use it to the newly renamed file. The build tools already contain the ability to rename files by adding prefixes so something like this would not be that difficult.

 

While people may argue to just rename the filename within the LLB and be done with it, the fact that the LLB is a perfectly valid file in the Development Environment but causes problems when trying to do a build is a problem that should be rectified.

 

The LLB in question is one that is not developed by us but is part of a Pickering Driver Installation obtained from the following location:

http://downloads.pickeringtest.info/downloads/drivers/IVI/

Therefore every time we install a new version of the driver we would need to rename the VI filename within the LLB file.

In Labview, tabpages are not treated as panes ! 

 

So you cannot put an object in the tabpage and applicate the "Fit to pane" in order to have an autogrowing objects.

 

For example :

 

  • I add a tabControl on a front panel ... i made it autogrow with a "Fit control to pane"
  • I add a Multicolumn listbox in a tabPage (or a chart, a treeview ....)
  • And then i want that my listbox grows automaticaly with the tabpage ....
  • And here no more solution than "Do it yourself" !

 

Because the tabpages are not treated as "Panes", the power of Labview HMI is very limited ...

 

It would be nice to treat the tabpages as panes in order to be able to build autogrowing, dynamic HMI.

 

The mechanisms of dynamic resizing should  be fully improved in Labview ...  

 

No to "static fixed sized window" ... Yes to "autogrowing applications" ...

 

 

Many times I like to keep my memory footprint small by using "right-size" data representations for my arrays.  Unfortunately, in the event I need to sum the array elements using the 'Add Array Elements' I am stuck in rollover city.  I can then blow up the data to a larger size or write out the sum (or product) longhand.

 

AddArrayOutputConfig.png

 

I would prefer an output configuration to let me specify the representation of the array sum or product:

 

OutputConfigDialog.png

A shortcut menu like this one would easily move a label by right clicking the label and selecting the snap location.

The move would not change the locked state of the label.

Only the label should change position, the control should remain anchored.

It would especially make the middle right and middle left positions much easier to get to on single-line controls.

 

LV Idea Exchange Label Snap.png

 

The mockup is purposefully large to give visual distinction between locations.  It could instead be more compact, but this worked for an example.

It would be nice if we had a C++ like class template functionality for LabView classes.

 

Templates are a powerful concept. Being able to provide the type of control in a class at edit time would allow users to create reusable classes, like data structures. It would be nice if we had a way to select a control and make it part of a template, so that we could pass the data type of that control in at edit time without changing the base definition of the class, and thus be able to reuse the class in several instances and never have to rewrite any code.

 

A great example would be the node of a tree. If we were to have 2 classes Tree.lvclass & TreeNode.lvclass.  Assume that the Tree class contains an array of nodes and VIs to add, remove, insert, and recurse the nodes in the array. Assume that a node contains a numeric which is the index in the tree array to its parent and an array of numerics which are the indexes into the array of the nodes children. We also need a control in the node that stores our data. We will call it data, and it will be of type LogData.lvclass.

 

The tree works well and great for children of LogData.lvclass, but if we decide we now also need a tree to hold FilterData, we can't just swap out LogData.lvclass for FilterData.lvclass in the TreeNode.lvclass. Because then we wouldn't be able to put LogData classes into our tree node anymore.

 

Class Templates would allow us to tell the TreeNode Class that the type of the control data can be changed at edit time, and in fact is worthless unless we give it a type. Thus we can create several instances of the Tree class and feed the desired type down into the TreeNode, and we can in fact have 2 different trees containing to different types of data, while still reusing the same Tree code.

I've been working with a ton of different projects lately, and I am frequently changing properties settings on them. I instinctively press Ctrl-I to launch the properties dialog, then I sit and wait a few seconds before I realize that Ctrl-I doesn't do anything in the Project Window, and I have to go right-click the top-level project item and choose Properties instead. Let's make Ctrl-I launch the Project Properties dialog, just like it launches the VI Properties dialog for VIs.

Scenario: You have a number of classes, and they are perhaps even members of a library. Now you find out that the folder one of the classes and it's member files are stored in on disk should be renamed, or you wish to move a number of the files (as a group) to a different folder...

 

End result; LabVIEW will at best ask you where the files have gone, and then typically fail(!) to relink and get back to runnable code. At worst you end up at a dead end/nightmare, with a "class or library corrupt"-message...(editing the XML content of the class file might solve it yes...but that's not a proper solution).

 

I understand that it can be complex for LabVIEW to track the changes done externally, and/or be able to link everything back up, but it should be able to do it better than it does (not) with the guidance of the user.

 

And if that's too big a task, could we at least get the possibility of renaming folders on disk from the project explorer - and *then* get LabVIEW to automatically handle the changes correctly?

 

PS. There might be ways of doing this already without running into trouble that I'm just not aware of (hopefully!), but the suggestion still stands, as it is obviously too vulnerable and counter-intuitive as it is now...

 

 

Wouldn't it be great if National Instruments could support AUTOSAR SWC-development in LabView. The AUTOSAR standard with its module-based approach fits perfectly for LabView. I am convinced that your company could do a great job in implementing an easy-to-use environment for this emerging standard. I have worked with the tools from Vector and in my opinion everything there is very messy and illogical.

 

Best regards

Mats Olsson

Currently, there is exactly one undo buffer for everything.

 

Scenario: I make a minor code edit,

... then run the VI to test if we get the correct result for a variety of control settings,

... and then stop the VI and decide that we actually don't want to make the code change (e.g. because the results are wrong!).

 

--> for some reason, we need to press ctrl+Z many (many!) times, because first we need to "undo" all the control changes during runtime.

 

I suggest that two undo histories should be kept, one for edit changes and one for runtime changes.

 

In the above scenario, pressing ctrl+z after stopping the VI would immediately start undoing the edit operations.

 

Message Edited by altenbach on 09-04-2009 08:20 AM

Hi, i wanted to suggest the creation of a separate utility software that would convert a VI from any version to any other version. This would save people a lot of time by not waiting to get it converted from their respective threads. Also it would serve for more people to able to reply on the forum(me included since i am using LabVIEW 8.6 and most of the posts contain VIs made in 2009 and 2010 even though most of the time the same functions are avalable in 8.6 😞 ).

 

 

PS: Sorry, got no pictures

 

The System Numerics are driving me crazy!  My wants are simple, a radix display and increment/decrement controls.

 

System Spinner = Increment/decrement but no radix.  Why the property page gives you the option is a mystery.

System Numeric = Radix but no increment/decrement.  Argh.

 

When you have the default style set to System, the created controls leave you in no-mans land.  A system spinner with invisible spinners.  If you wanted a spinner, you have to make them visible.  If you wanted a numeric with radix you have to replace, and then resize.  It seems nobody is happy.

 

I seem to want the numeric more often than the spinner myself, I would be happier if it was the default.

 

Bugs: there are issues with the property pages versus right-click menu settings (LV9 hopefully fixed).  Besides giving you false hope with the radix display of the spinner, the checkboxes for increment/decrement do not always reflect the current state.  It often shows up unchecked even when they are visible.  Just adds to the fun.

 

tl;dr : Make a single system numeric with both radix display and increment/decrement buttons.

Imagine the following:

 

When you hover (take your mouse) over the SubVI node in the callers diagram, the subVI code is brought up as an image in a small rectangle size. And that disappears when the mouse is taken away from the subVI node.

 

Demonstration (snapshot):

 

When mouse is hovered over 'SubVI Two.vi',

 

Caller Code.png

 

How does it help ?

 

1. Understanding a prototype code, where there is less emphasis on creating VI Icon and naming SubVI properly, quick glances of the subVI code can speed up the understanding/edit time.

2. Even otherwise, shipping code, could be sometime hard to understand and require often switches to subVIs block diagram.

3. Huge subVIs code, definitely, the image may not make much sense (as it is contained in a small rectangle), but could be useful to get some basic idea or to clear ambiguities between subVIs expected behavior.

4. This feature must be an opt-in. Not every time, this behavior would be desirable, hence this must be Tools->Options opt-in.

5. Does not open up the block diagram, which means that you have lesser VIs to deal with it in taskbar.

6. Drawback: This could hurt the edit time performance a little but, as LV would have to do some extra work to bring up the image..

I'm developing some software for a colleague, to run on (one of) his machines.  I do my best to follow Good LabVIEW Practices, including using Version Control (SVN) to maintain my code.  Hence my Project "jumps" from computer to computer.

 

I recently noticed an old problem re-appear, namely occasional Front Panel and Block Diagram labels appearing in a different Font Size (18) than I've set as the default on my Office Desktop and home Laptop (15).  This was really irritating (especially having to find those wayward labels and "fix" them), forcing me to re-examine the Where and How of setting Default Fonts in LabVIEW.

 

This still appears to be a Dark Art, one (perhaps) involving LabVIEW.ini (and some undocumented keys, not present in the "vanilla" configuration file).  There appear to be several such INI files, with LabVIEW.ini attuned for development, and an INI file in the Data folder of a built Executable for that Executable.  But still, the values are bereft of documentation (i.e. documentation is conspicuous by its absence) and not everything is explained (like why some values are in quotes, what they mean, and how one sets a specific Font, e.g. Arial).

 

One thing that I, in particular, would like to see would be the ability to set the Font Defaults on a Project basis.  For myself, I "own" the Project, and would want it to have a consistent Font (size) on all my VIs (unless I specifically decide to Emphasize something), no matter on what machine I develop them and when.  If I have to set the Font Default on a machine-wide basis, then every time I develop on my colleague's PC, I'd have to (a) note his settings, (b) change them to mine, and (c) remember to set them back when I finish.  As such sessions are often an hour here, an hour there, this "machine-centric" setting becomes a nuisance fast.

 

I recently had the opportunity to discuss this with an NI Applications Engineer, who assisted me in finding (some of) the obscure references to Font Setting Tricks.  I noted that a lot of what the Community knows seems to come from "Reverse-Engineering" NI's settings, and that some Documentation and Standardization (let's get away from designating Fonts as "1", "2", or "3", which have no intrinsic meaning, please) would be a good idea.  Hence this LabVIEW Idea.

 

Bob Schor

Currently we have File >> Save then File >> Apply Changes.

I would like save and apply changes for typedefs in one operation. So either replace Apply Changes with Save and Apply Changes or add this as another option to the menu.