Graphical Programming Block Diagram Auto-Layout

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional text-based programming languages limit user efficiency in creating computer programs, especially for those without advanced programming skills, and graphical programming environments, while powerful, often require manual arrangement of nodes in block diagrams, which can become cluttered and difficult to understand.

Innovation Solution

A graphical programming development environment that automatically analyzes and repositions objects in a block diagram to better organize the layout, align nodes, and route wires, improving visibility and aesthetics.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If manual arrangement of nodes is used in graphical programming environments, then user control over node positioning is improved, but the complexity of the operation and time required increases

Engineering Contradiction:
Improveuser control over node positioningVSAvoidtime required for node arrangement
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system automatically analyzes the block diagram and repositions nodes based on detected functional relationships and data flow patterns, enabling the arrangement process to serve itself without manual intervention while maintaining logical organization

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary analysis of the block diagram structure, identifies functional relationships between nodes, and pre-calculates optimal positioning before executing the repositioning operation

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If more nodes are added to the block diagram, then the functionality of the graphical program is improved, but the clutter and difficulty in understanding the diagram increases

Engineering Contradiction:
Improvefunctionality of graphical programVSAvoidclutter and understandability of block diagram
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the block diagram into functional groups based on detected relationships, organizing nodes into logical clusters that maintain functionality while reducing visual clutter through structured arrangement

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system utilizes two-dimensional spatial arrangement in the block diagram to represent hierarchical and functional relationships, organizing nodes across multiple dimensions to maintain clarity as complexity increases

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Ease of operation

If automatic repositioning is performed, then the organization and aesthetics of the block diagram is improved, but the computational resources required increases

Engineering Contradiction:
Improveorganization of block diagramVSAvoidcomputational resources for repositioning
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The system performs partial analysis by focusing on detecting functional relationships and data flow patterns rather than exhaustive analysis of all possible node configurations, achieving effective organization with reduced computational overhead

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8479218B2Automatically arranging objects in a graphical program block diagram
Publication Date: 2013.07.02 NATIONAL INSTRUMENTS CORP
  • US8479218B2 patent drawing
  • US8479218B2 patent drawing
  • US8479218B2 patent drawing

AI summary

Various embodiments of a system and method for automatically arranging or positioning objects in a block diagram of a graphical program are described. A graphical programming development environment or other software application may be operable to automatically analyze a block diagram of a graphical program, e.g., in order to determine objects present in the block diagram, as well as their initial positions within the block diagram. The graphical programming development environment may then automatically re-position various ones of the objects in the block diagram. In various embodiments, the objects may be re-positioned so as to better organize the block diagram or enable a user to more easily view or understand the block diagram.