Better Object Arrangement In Block Diagrams

Reducing unnecessary wire bends in diagrams by making a standard terminal size.


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.

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 32×32 pixels big. Because the user can choose from many different connector pane patterns, terminal sizes can vary greatly.

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?”

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.

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

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.

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.

Leave a Reply

(Note: This name will be displayed publicly)