LabVIEW Idea Exchange

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

Trim Whitespace currently accepts strings (scalars).

 

I propose that Trim Whitespace be made polymorphic so that it also handles an array of strings (basically just wrap the scalar impelementation in a For Loop).

The property AllVisInMemory does not return in its list the clones of VIs that are running. It would be helpful to have this included.

There is a small bug in the sorting of VIs by Name in Project Explorer.

 

If a virtual folder or an auto-populating folder contains VIs named "abc", "abc def", "abc def jkl", when the folder is set to "Arrange By >> Name" Project Explorer displays the VIs in the order 1. abc def jkl; 2. abc def; 3. abc. In other words, when there's a tie the longer name is displayed first. Breaking the tie in favour of the shorter name seems more logical, and is what Project Explorer does when sorting virtual folders.

 

The screenshot below shows the issue.

Screenshot 2.png

 

This was noticed in LabVIEW 2022 Q3. Please excuse if it's already been fixed in 2023 Q1.

Is there a compelling reason that enums cannot be a signed integer? 

 

EnumDatatypes.png 

 

 

 This would provide the very handy function of assigning them the I32 "base" datatype, eliminating coercion dots on most LV primitives.

 

EnumCoercionDots.png

On that note, how about supporting sparse enums (enums with non-consecutive value-string pairs)?

 

OK, I know rings support both features, but rings have the distinct disadvantage of only showing their numeric value in a case structure.

I like to compare two build specifications of two different projects.

To do this it would be very helpful, that the build specification dialog box is not modal and that i can open each build spezification of each project at the same time. Resizeable would be also nice.

 

Untitled.png

Hello all,

 

I find myself constantly tweaking my wire labels so that they look like they are exactly vertically centered on the wire, rather than a couple pixels higher or lower.  They are not always created that way, and of course when you move the wire around they don't stay that way like I wish they would.

 

I'd like to propose an option to have LabVIEW automatically force wire labels to stay vertically centered on the wire (similar to other "snap-to" label positionings).  I know that other programmers prefer other positions, such as immediately above the wire, therefore having it snap to that position would be another option.  I'm not sure if it makes more sense to select one position that it always snaps to, or have it snap to one of a few options (like labels on controls do now).  I always use them consistently in the one vertical position, myself.

 

It may make sense to have the default be free-positioning as it stands today, but it would save me a non-trivial amount of time to have the option for it to be always enforced to what I think looks nice.  Smiley Happy  Hopefully I'm not the only one!

 

Obligatory pictures:

 

Initial vertical position when I select to make the wire label visible (looks terrible!):

Initial position.PNG

 

The vertical position I always want it to stay in:

Centered position.PNG

 

An alternative snap-to vertical position:

Above wire.PNG

I suppose this is a grey area between feature and CAR, but it is certainly a long-standing aspect of the LabVIEW editor that vexes me on a daily basis that could be improved.

 

The issue is that if you are dragging to select objects on the block diagram or front panel and you accidentally move the mouse cursor to the edge of the window, LabVIEW starts scrolling insanely fast in the direction of the mouse. By the time you've figured out what's happening and released the mouse, you're often 4-5 screen lenghts away the actual content of the diagram, and you must now manually scroll back to the main area. To make things worse, you're not really sure where the origin is anymore, so it takes a little blind searching to find the screen contents again. In addition, you're likely left with a selection that is not what you intended, meaning you have to start over (more carefully) from scratch.

 

I really don't see any reason to scroll the panel so terribly fast. At all. A slow, steady scroll, in my opinion, would always be preferable, since the fast scroll leaves the user no real control at all over what's being selected. If anyone really wants a chaotic super-fast scrolling operation to be preserved, I would perhaps accept a shift-drag option to enable this.

Looking at all my body of work, I use tables exclusively as indicators. They are well suited to display formatted results in tabular form, but much less suited for user input, because they only allow strings. If we need to enter numbers, there is no input validation (as we have e.g. for numeric controls), so they are pretty useless for that.

 

It is thus a bit confusing that the tables in the palettes currently exist as controls. In fact, the modern, classic and system tables are even labeled "Table Control" (seems redundant!), while "Table" alone would have been sufficient (this has already been corrected for the silver controls :)).

 

It would be much more appropriate if tables are indicators by default. We can always change them to controls in the rare case where this is needed.

 

  1. I suggest that the various table controls in the palettes be changed to indicators.
  2. Their default name should just be "Table".

 

 

 

 

I would like to remove all broken wires that are currently visible, and not ones hidden in other cases.

I want to be able to select a case, review the broken wires, and mass delete (if applicable).   Then select the next case for review.

I never use ctrl-B when working on a large application.  I want to review all broken wires before deleting.. but I hate trying to double or triple-click each wire.

 

Something similar to this post: broken wires    ...which notes that it can be accomplished with Quick Drop scripting... 

When the Grid is on it is difficult to see Boolean wired due to their 'dotted' appearance.

 

Change the Boolean wire from a dotted green line to a solid green line to improve visibility

 

LabVIEW wires.JPG

Ken

 

 

 

 

When dragging a snippet onto the block diagram, its code should remain selected so we can immediately drag (or use the arrow keys to move) it to a better location.

 

Currently, the new code is not selected and it is nearly impossible to separate it from the existing code, for example if a complicated snippet is dropped on an already complicated block diagram.

 

(Not everybody has a gigantic screen to resize the existing BD for plenty of whitespace. I also often only have a small strip of the BD showing, with the explorer window containing the "droppee" on top. Dragging the snippet to the BD invariable ends in a complete mess.)

 

 

This idea is to improve the QuickDrop search window, to return functions that might be betters suited, based on the datatype of the selected function or wire.  Lets say I have a 1D array of numerics selected and I want to reverse it.  I will select the wire, then invoke QD and type "reverse".  But the first item in the list is actually "Reverse String".  With a context aware QD hopefully the search window will see I have an array of numerics, and prioritize the Reverse 1D Array function, and still include the reverse string but maybe push it farther down the list.  

 

This idea can be applied to the basic data types pretty easily (numerics, boolean, array, string, cluster).  But we could also use this on class wires that are selected.  A class library can have an associated mnu file, which is why some functions you can right click and the corresponding subpalette menu comes up.  So this idea could also prioritize functions that are found in the mnu associated with the class.

When using feedback nodes, you can store data like you can with shift registers. However, you cannot get multiple data points from previous iterations like you can with stacked shift registers. I think this is best shown with a picture, so here is my idea:

 

feedbacknode.jpg 

I like that there is a zoom feature in the latest release, however, I don’t like how it was done.  Zooming in causes fonts to get really funky. I’m sure there are major reasons for this since LabVIEW IDE is not based on vector graphics.  I would just like to see better font handling for fonts.  

Hello all,

 

This is an elaboration on a prior request by RavensFan:

 

When AppBuilder reports a file related error, such as error 8, could someone please provide a path?

 

I have no idea what's causing my file IO error, as I am running LabVIEW as a local admin and there should be nothing interfering with my path.

I can't probe a path wire in the AB method because the diagrams are understandably locked.

 

This is so frustrating.  No one likes to debug by guessing and it wastes a tremendous amount of time.

 

 

 

Thank you with my deepest respect to the AB team.

 

Jim

 

 

For example:

AppBuilder.png

In many spectral monitoring applications such as vibration spectrum, electrical power spectrum and other frequency analysis, it is standard practice to label peaks in the FFT graphic.  To do this in LabVIEW, we use cursors and cursor labels to point out specific frequency of interest.  However, LabVIEW does not allow the fonts and rotation of cursor labels to be adjusted either manually or programatically. 

 

smudged Cursor Labels Example.JPG

 

It is common practice to use a cursor marker on the peak of the FFT frequency, with its label in a vertical orientation.  Here is a common peak labeling practice used in most all vibration spectral applications:

Competitive Spectral Analysis Tool.JPG

 

It is painful to create work around such as programatically relocating cursors, writing text on graphs, etc.  Is it possible to add at least the rotate cursor name property to LabVIEW?

 

Here are some other posts I have seen in the discussion forum related to this topic.

 

Rotate Text on Cursor

http://forums.ni.com/ni/board/message?board.id=170&message.id=242378&query.id=1281596#M242378

Move the name of the cursor

http://forums.ni.com/ni/board/message?board.id=170&message.id=45856&query.id=1282652#M45856

Change the Text Font:

http://forums.ni.com/ni/board/message?board.id=170&message.id=406465&query.id=1282652#M406465

 

I look forward to comments and feedback.

Preston

 

 

 

 

This one is pretty basic...and I'm guessing there is a valid reason for the way it is. Still, I wanted to throw it out there.

 

Right now, if you make an object, the localized name defaults to <object>.lvclass. Therefore, when you put it on the front panel, create a constant on the block diagram, etc. it will be stored with the label <object>.lvclass:

object.lvclass.jpg

 

My request is that the default name be changed to the name of the class, rather than the name of the class.lvclass. The size of the icon makes it pretty clear that we're using an object, making the extension unnecessary. Either way, this is something that I change every time I make a new object and I'm curious if the other lvoop users feel the same way.

 

Thanks

Much like the ever-popular With with Errors, "Get Date/Time in Seconds" would be great with error clusters for inputs/outputs.  This would help with coordinating timing (start/stop and duration).

 

Here would be an example of what the underlying code is that I currently use:

 

GetDateTimeInSecondsWithErrors.png

 

Pretty simple...  and an example of what the use could look like:

 

GetDateTimeInSecondsWithErrors_Icon.png

 

And a duration example:

 

GetDateTimeInSecondsWithErrors_Example.png

Dealing with fonts in LabVIEW can be a nightmare due to the variations in fonts, types of fonts, rendering variations, resizing, etc.  If you are deploying a LabVIEW application on another machine, frequently the fonts or settings on the target machine don't match; creating a very ugly looking panel.

 

When developing for Windows in the past I have always edited my LabVIEW.ini file  to include the following:

 

appFont="MS Sans Serif" 13
dialogFont="MS Sans Serif" 13
systemFont="MS Sans Serif" 13

 

And when deploying an application; I include these in the app's ini file also.

 

This seems to work for most windows targets since MS Sans Serif appears to be a common font.  I suspect this will produce unpredictable results in OSX or Vista for that matter.

 

What I expect as a developer is not having to deal with these font issues.  I expect that when I develop an application that it has the same look and functionality; regardless of where it is deployed; even as a VI being edited on another machine with different font settings.  This means that the font information must be encoded and stored with the VI itself.  I would expect that both the LabVIEW editor and run-time engine would be able to recognize detailed font encoding within the VI and adjust the display accordingly based on the local machines font capabilities.  This is what one expects when printing or viewing an Adobe Acrobat PDF file; and the behavior of LabVIEW code; particularly since it is so graphical in nature; should also be similar.  I wouldn't expect that the actual font bitmaps be stored within the VI itself; but some detailed metrics about the font should be; height, width, kerning, etc.  Thus if a font substitution takes place when being deployed on another machine; at least the text will occupy the exact same extents as the original.

 

Though I don't know exactly what the detailed implementation would be; it does need to be transparent to the LabVIEW programmer, i.e. zero code; zero hassle; zero worries.  It should just work.  I hope we can all agree on this.

Currently, the configuration file object only has access to save a file when you close the object.  I'd like to be able to save the file at any point in time and keep the object open.