Mit dem Gozintograph Viewer lassen sich hierarchische Produktstrukturen schnell visualisieren. Für einen tieferen Einblick und weiterführende Analysen bietet die reine Struktur zu wenig Inhalt. Gelöst werden kann das durch Integrieren zusätzlicher Informationen zu den einzelnen Stücklistenelementen. Wie das geht, erfahren Sie in diesem Artikel.
Falls Sie den Gozintograph Viewer nicht kennen, würde ich Ihnen empfehlen, vorher den ersten Teil dieser Serie anzuschauen: Erzeugnisstruktur visualisieren als Gozintograph. Dort finden Sie Hintergründe zur Entstehung und den bisherigen Versionsstand des Tools.
Ausgangszustand
Bisher macht der Gozintograph Viewer was er soll: Er stellt die hierarchische Struktur von beliebig vielen Stücklistenstrukturen dar. Die Datenquelle ist eine CSV-Datei mit drei Feldern:
Eltern-Element, Kind-Element und Mengeninformation.
Der Viewer erkennt über die Struktur, um welche Elementart es sich handelt.
- Produkte: haben keine ausgehenden Verbindungen, nur eingehende
- Baugruppen: haben ausgehende und eingehende Verbindungen
- Einzelteile: haben nur ausgehende Verbindungen, keine eingehenden
Genauso kann das Tool ermitteln, welche Dispositionsstufe ein Element hat.
Analyse-Defizite
Für eine Analyse sind das zu wenige Informationen. Dafür werden spezifischere Daten benötigt. Das Problem dabei ist, dass je nach Analyseart unterschiedlichste Daten zusammengeführt werden müssen.
Ein Analyst möchte beispielsweise die Struktur auf Dummy-Baugruppen untersuchen und muss diese Daten integrieren. Ein anderer will die Unterscheidung von Kauf- oder Fertigungsteilen visualisieren und benötigt diese Informationen. In einer tieferen Analysen werden vielleicht weitere Eigenschaften einzelner Elemente gebraucht. Das können Produktmerkmale wie Gewicht, Geometrieabmessungen oder Kosten sein.
Ein Tool darauf auszulegen und alle Möglichkeiten vorzudenken ist kaum möglich.
Neue Element-Eigenschaften
Aus diesen Gründen wähle ich für den weiteren Ausbau des Tools einen universelleren Weg. Die benötigten Analyse-Eigenschaften liegen immer für alle oder bestimmte Elemente vor. Der Analyst weiß schließlich am besten, was er untersuchen will. Also stehen die Daten auch elektronisch bereit.
Deswegen plane ich eine Funktion, welche die bereits geladene Struktur mit weiteren Element-Eigenschaften anreichern kann. Die gewünschten Eigenschaften können dann über eine weitere CSV-Datei oder auch mehreren Dateien dazu geladen werden.
Das Schlüsselfeld ist dabei immer der Name des Zielknotens aus der Strukturdatei.
Struktur-Formatierungen
Sind die Eigenschaften geladen, werden sie in der Detailansicht zum Element angezeigt. Für Analysen ist das schon eine Verbesserung. Jedes Element stellt jetzt seine Daten dar.
In einer großen Struktur bringt das für die Visualisierung keinen großen Vorteil. Viel besser wäre eine visuelle Darstellung der Eigenschaften.
Sinnvoll können dafür zwei Formatierungen des Elementkreises angepasst werden: Farbe und Durchmesser.
Damit gibt es drei Möglichkeiten erweiterte Eigenschaften dazustellen:
- reine Text-Information
- Farbinformation des Elementkreises
- Größeninformation des Elementkreises
ID und Bezeichnung
Mit dieser Vorgehensweise lässt sich auch ein Problem der bisherigen Version leicht beheben. Momentan wird unter dem Elementkreis die ID des Elements angezeigt. Bei vielen Stücklisten ist das immer eine nichtssagende Nummer.
Mit der Hinzufüge-Logik lässt sich auch ein definiertes Feld „Bezeichnung“ einlesen und anstelle der ID in der Struktur ausgeben.
Elementkreise zeichnen
Mit den geladenen Eigenschaften lassen sich jetzt die Kreiselemente formatieren. Möglich sind Farbe und Größe. Die Farbe muss als RGB-Wert in der CSV-Datei vorliegen.
Der Kreisdurchmesser wird anders behandelt. Der Wert muss auch als Zahl vorliegen. Allerdings sind auch reelle Zahlen zulässig (Type extended). Im ersten Schritt werden minimaler und maximaler Wert des definierten Feldes gesucht. Im Dialog muss der Benutzer zwei zusätzliche Angaben zur Pixelgröße des Kreises auf dem Bildschirm machen. Ebenfalls mit der Eingabe der min. und max. Größe. Der Algorithmus skaliert damit die Feldwerte auf die Pixelwerte.
Die bisherige Farbinformation für die Elementart (Produkt, Baugruppe, Einzelteil) empfinde ich für wichtig. Ich möchte sie nicht durch eine zusätzliche Farbeigenschaft verlieren. Deswegen setze ich eine Variante mit beiden Farben um. Liegt eine zweite Farbinformation vor, wird das Element geteilt in zwei Farbhälften dargestellt. Im oberen Teil steht die Farbinformation zur Elementart und der untere Teil ist mit der zweiten Farbe gefüllt.
Soll bewusst keine Farbe verwendet werden, gibt es unter Lazarus den Farbwert clNone mit dem Wert 536870911.
Schneckengetriebe analysieren
Wie die Umsetzung aussieht, zeige ich Ihnen wieder am Beispiel des Schneckengetriebes. Das Bespiel besteht jetzt aus zwei Dateien.
Beispiel für Stücklistenstruktur: demo-stueckliste.csv
Inhalt | Stücklisten-Struktur |
Feldaufbau | Baugruppe;Element;Menge;Dummy-JaNein |
Hier gibt es keine Änderung. Unterstützt werden momentan nur die Felder Baugruppe, Element und Menge. Die Information für eine Dummy-Baugruppe (Phantom) ist für zukünftige Versionen enthalten und soll dort virtuelle Stücklistenebenen darstellen.
Beispiel für zusätzliche Eigenschaften: demo-einzelteile.csv
Inhalt | Informationen, weitere Daten je Element |
Feldaufbau | Element;Bezeichnung |
Feldanzahl | Beliebige Feldanzahl mit jeder vorstellbaren Informationsart |
Analyse über Textinformationen
In diesem Beispiel nutze ich die Möglichkeit, die Beschriftung der Elemente zu ändern. Alle zusätzlichen Element-Eigenschaften lassen sich als Beschriftung anzeigen.
Die anzeigte Textbreite richtet sich nach dem eingestellten Elementabstand aus dem Einstellungsdialog.
Mit den Detail-Eigenschaften lässt sich die Struktur natürlich genauso analysieren. Dort werden alle Eigenschaften des ausgewählten Elements angezeigt.
Analyse über Farbinformationen
Die Informationen zu jedem Stücklistenelement müssen wie gesagt in einer CSV-Datei bereitgestellt werden. Es bietet sich an, diese Datei über eine Tabellenverwaltung, wie Excel, zu erzeugen. Damit haben Sie den Vorteil, dass Sie leicht andere Felder hinzufügen können. Das hilft besonders bei der Formatierung mit Farb- und Größeninformationen.
In Excel wird dafür eine bedingte Formatierung mit Funktionen nachgebaut.
Beispiel: Visualisieren aller Kaufteile in ROT, aller Produktionsteile in GRÜN
Zuerst brauchen Sie die gewünschten Farbwerte als RGB-Wert. Kennen Sie diese nicht, finden Sie im GozIntoGraph Viewer einen Dialog zum Ermitteln. Klicken Sie dafür in der Menüleiste unter Hilfe und Info auf das Pfeilsymbol ganz rechts. Dann erscheint der folgende Dialog.
Sobald Sie in das Textfeld klicken, öffnet sich der Windows-Farbdialog und Sie können sich eine Farbe auswählen. Der RGB-Wert wird dann in das Textfeld eingetragen.
Mit den so ermittelten Werten lässt sich die Element-Datei mit einem zusätzlichen Feld ProcurementColor erweitern. Über eine WENN-Formel wird dann abgefragt, ob ein Kaufteil vorliegt. Ist das der Fall wird der RGB-Wert des Kaufteils (hier 255) eingetragen. Andernfalls der RGB-Wert des Produktionsteils (hier 1360008).
Danach wird die Excel-Tabelle im CSV-Format gespeichert. Sobald die neuen Element-Eigenschaften in GozInfoGraph Viewer eingelesen wurden, kann die Farbinformation genutzt werden.
Nach der Formatierung zeigt der Viewer jedes Element mit den beiden Farbinformationen an. Im oberen Teil wird weiterhin die Farbe des Elementtyps angezeigt. Die zusätzliche Formatierung ist im unteren Teil zu sehen.
Damit ist gut zu erkennen auf welchen Hierarchiestufen sich Produktionsteile befinden.
Analyse über Größeninformationen
Die letzte Möglichkeit besteht darin Zahlenfelder in eine Größeninformation des Elementkreises umzurechnen. Dafür kann jedes Zahlenfeld verwendet werden. Auch ohne zusätzliche CSV-Datei mit Element-Eigenschaften können bereits vorhandene Strukturinformationen für die Elementgröße verwendet werden.
Beispiel: Sie möchten visualisieren in welche Baugruppen die meisten Element einfließen
Dafür wählen Sie im Formatierungsdialog Verbindungselemente aus und definieren den Element-Kreisdurchmesser min und max.
Im Viewer sehen Sie sofort anhand der Kreisgröße an welchen Positionen in der Struktur viele Elemente einfließen.
Interessant ist das genauso für eine Vielzahl anderer Größen, die Sie über die zusätzliche CSV-Datei einfügen können.
Noch klarer werden die Informationen, wenn Sie beispielsweise Elementgröße und -farbe kombinieren.
Beispiel: Sie möchten sehen wo Bauteile sind, welche Kosten > 15 EUR haben
Dafür bauen Sie sich wie zuvor ein zusätzliches Feld in die Excel-Tabelle: PriceColor. Mit einer weiteren WENN-Funktion fragen Sie ab, ob die Kosten > als 15 sind. Wenn Ja wird, wie vorher, der grüne RGB-Wert eingetragen, wenn Nein der rote RGB-Wert.
In der Struktur lässt sich so klar feststellen, an welchen Stellen sich diese Bauteile befinden.
Neuer Sourcecode und Download
Wenn Sie die neuen Funktionen selber ausprobieren wollen, laden Sie sich den Sourcecode von github herunter. Dort finden Sie neben den Quelltext für Lazarus auch eine kompilierte ausführbare Version für Windows.
Die Runtime Version finden Sie im Ordner run. Sie muss nicht installiert werden. Nach dem Download kann das ZIP-Archiv an einem beliebigen Ort entpackt werden und die EXE-Datei des GozIntoGraph Viewer aufgerufen werden.
Links
Artikel Erzeugnisstruktur visualisieren als Gozintograph
Entwicklungsprojekt auf github
Lazarus-ide.org oder Download unter sourcceforge