NI Blog

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

Re: Designing LabVIEW NXG: Diagram Grid

Active Participant

How many of you have spent countless hours and worn down your keyboard arrows cleaning up LabVIEW block diagrams? LabVIEW block diagrams help you move any object 1 pixel at a time. Though this feature gives you a lot of flexibility, it also makes arranging objects on a diagram extremely tedious. When designing the LabVIEW NXG diagram, we aimed to reduce the monotony of this task and make you more efficient.

 

LabVIEW Terminal Evaluation

 

Looking at the picture below undoubtedly makes many LabVIEW users uncomfortable. Unnecessary wire bends can drive developers crazy.

 

LV1.png

 

In fact, we observed that many users would break their programming flow while developing algorithms just to make sure certain wires were aligned. This tendency is an absolute killer to productivity.

 

Nonstandard terminal sizes cause many of these wire bends. In LabVIEW, VIs and many functions are 32x32 pixels big. Because the user can choose from many different connector pane patterns, terminal sizes can vary greatly.

 

LV2.png

 

One way to reduce the unnecessary wire bends was to make a standard terminal size. This adjustment made it much easier to align terminals. The trade-off in this design was no standard size for subVIs. We were OK with this trade-off because LabVIEW already has various sized nodes, and we believe that the alignment benefit outweighs the size difference. The big question was, “What size should we make the terminals?”

 

LV3.png

 

LabVIEW NXG Grid Design

 

One design tenet was to avoid drastically inflating the size of diagrams by making the terminal sizes, and therefore nodes, too large. Though some diagrams might become a little bigger, we didn’t want to make it impossible to create compact code if the user desires.

 

In our research, we were able to split terminals into two different groups: Text Terminals and Node Terminals. Text Terminals are terminals that need to contain legible text within the height of the terminal. Examples include constants and property nodes chunks.

 

LV4.png

 

Node Terminals are terminals on VIs, functions, and property node headers.

LV5.png

 

The smallest size we could make Text Terminals and legibly display text in our localized languages was 15 pixels tall. This height allows us to use an 11-pixel font and have space for borders. However, 15 pixels was far too big for all terminals. In our usability testing of Node Terminals, we discovered that 10-pixel terminals performed the best and helped users be the most proficient.

 

To use these terminals simultaneously, we created a 5-pixel wiring grid. Wires can only sit on this grid on a diagram. The wiring hotspot on Text Terminals was offset 5 pixels from the top border to help line up with any Node Terminal.

 

LV6.pngLV7.png

 

 

 

 

CG Create and Drag2.gif

 

NXG Create and Drag2.gif

 

By providing a more restrictive diagram grid, we’ve improved the wiring and layout experience for you. Instead of using arrow keys for alignment, now you can simply use the mouse to drag objects where you like. Even with the larger terminal sizes, you can still generate compact code if you desire. The result is a system that should save you time and make you more efficient.

 

Regards,

Jon S.
National Instruments
LabVIEW NXG Product Owner
Comments
Active Participant

Note: The original pictures in this post were used to stress test how a dense diagram would change with our terminal and layout design. The diagrams didn't convey they main message of this post and so I replaced them with an animation showing the workflow that we have improved.

Regards,

Jon S.
National Instruments
LabVIEW NXG Product Owner