Software
Intelligentes Standardisieren, Teil 2
Rainer Hochgeladen Ulm
Wer noch vor wenigen Jahren die Frage nach der Automatisierung von Konstruktionsprozessen stellte, erhielt automatisch die Antwort »Makro«. Mit Makros wurde stets implizit auch standardisiert, indem für bestimmte Maße oder Teile eine Auswahl angeboten wurde, aus welcher der Anwender auszuwählen hatte. In der Regel wurde eine Tabelle hinterlegt, die die erlaubten Werte vorgab, Alternativen waren nicht möglich. Häufig war dabei weder den Programmierern noch den Anwendern bewusst, dass sie damit einen »de-facto-Standard« gesetzt hatten. Entsprechend lax wurde dieser Standard oft auch gehandhabt: wenn ein Anwender andere Werte als die vorgegebenen benötigte, wurde die entsprechende Tabelle vom Programmierer einfach erweitert. Moderne CAD-Systeme bieten die Möglichkeit, derartige »Konstruktionstabellen« ohne Umweg über eine Makroprogrammierung direkt in den Komponenten unterzubringen. Auch damit wird ein Standard gesetzt, allerdings ist hier die Standardisierung die Motivation, eine solche Tabelle einzuführen und nicht deren (unerwünschte?) Nebenwirkung. Wenn also heute von »Standardisierung und Automatisierung in der Konstruktion« die Rede ist, stehen grundsätzlich zwei Wege zur Verfügung, entweder die Makroprogrammierung unter einem erweiterten Blickwinkel oder die Schaffung leistungsfähiger Modellstrukturen, beziehungsweise eine Kombination von den beiden Ansätzen. Beide haben Vor- und Nachteile und im Ergebnis überlappen sie sich in hohem Maße; sie sind aber nicht einfach austauschbar. Konstruktionstheoretisch handelt es sich im ersten Fall um einen algorithmischen Ansatz und im zweiten Fall um einen strukturellen Ansatz. Wo liegen nun die entscheidenden Unterschiede, die vor dem Einsatz bekannt sein und bewertet werden sollten?
Wird ein Mensch vor ein Problem gestellt, so wird er eine Abfolge von Handlungen entwerfen, an deren Ende die Problemlösung steht. Er schafft einen Algorithmus. Das können komplexe Handlungsstränge mit Verzweigungen oder parallelen Abschnitten sein, letztendlich ergibt sich in der Anwendung eine (oder mehrere) lineare Kette von Maßnahmen. Der strukturelle Ansatz beschreibt im Gegensatz zum Algorithmus keine Abfolge von Handlungen, sondern Abhängigkeiten zwischen Komponenten, das heißt »Relationen zwischen Objekten«. Während im algorithmischen Ansatz passende Modellstrukturen erstellt werden, werden im strukturellen Ansatz bereits bestehende Strukturen angepasst.
Nun könnte als Einwand kommen, dass auch im strukturellen Ansatz die Anpassung der Strukturen einem Algorithmus folgt. Das gilt allerdings nur im »mikroskopischen«, dem Anwender nicht sichtbaren Bereich auf der Ebene der CAD-Software; im »makroskopischen«, dem Einfluss des Anwenders unterliegenden Bereich existiert in einer statischen Struktur – und um eine solche handelt es sich bei CAD-Modellen – keine vorhersagbare Abfolge von Maßnahmen bei der Neuberechnung von Modellstrukturen. Die sicherste Betrachtung ist, dass bei einer Neuberechnung (Update, Regeneration) alle Änderungen gleichzeitig erfolgen. Sich auf eine bestimmte Reihenfolge zu verlassen kann funktionieren, kann aber auch schief gehen; auf jeden Fall ist es nicht planbar. Wer eine bestimmte Reihenfolge bei der Auswertung von Parametern erzwingen will, kann diese in eine Regel oder ein Makro packen.
Abhängigkeiten zwischen Komponenten in einer statischen Struktur sind zum Beispiel Constraints (Bemaßungen), parametrische Verknüpfungen (Formeln, Regeln) sowie geometrische Verknüpfungen (Boole’sche Operationen). Eine Regel (wenn … dann … ansonsten …) implementiert in sich zwar einen Algorithmus, die Einbindung in die Struktur ist aber statisch, insofern ist eine Regel eine Komponente, die Abhängigkeiten in einer statischen Struktur erzeugt. Strukturelle Lösungen sind grundsätzlich flexibler und durch den Anwender änderbar, weil sie sich nur auf die konstruktiven beziehungsweise funktionalen Möglichkeiten des CAD-Systems stützen. Der algorithmische Ansatz ist umfassender, benötigt bei Änderungen jedoch grundsätzlich die Programmierung (Programmiersystem, Programmierer).
Algorithmische Lösungen erzeugen in der Regel schlankere Strukturen, während die strukturelle Lösung oft einen Überhang an potenziell benötigten Komponenten vorhalten muss. Dafür sind letztere normalerweise schneller, da Makros durch das CAD-System interpretiert werden und die manuelle Interaktion nachstellen. Außerdem sind strukturelle Lösungen bi-direktional und begünstigen wiederholte Änderungen, was algorithmische Lösungen nur mit erheblichem Aufwand realisieren können. Das Beispiel einer Leiste mag das verdeutlichen: Eine Leiste sei bis zu einer Länge von 30 mm mit einer Schraube zu befestigen, darüber mit zwei. Der algorithmische Ansatz (siehe Bild 1) implementiert bei kurzen Leisten nur eine Schraube. Beim strukturellen Ansatz sind stets zwei Schrauben vorhanden, von denen eine aus- oder eingeschaltet wird. (Natürlich gibt es systemabhängige Optimierungen, hier geht es aber um das Prinzip.) Die Zusammenhänge sind in Bild 2 illustriert. Folgende Regel steuert das Verhalten:
if ( L_Leiste <= 30mm )
{
Schraube2da = false
O_Schraube = 0mm
}
else
{
Schraube2da = true
O_Schraube = ( L_Leiste / 2 ) - 10mm
}
Vor dem Hintergrund der Standardisierung ist der strukturelle Ansatz vorzuziehen, weil er die zu Grunde liegenden Standards sichtbarer abbildet und weil er vom klassischen Konstruktionspersonal intuitiver zu pflegen ist. Erst, wenn ein Standard im CAD-System strukturell nicht mehr mit vernünftigem Aufwand zu realisieren ist, sollte auf algorithmische Lösungen ausgewichen werden. -fr-
SmardCAD Deutschland GmbH http://www.smardcad.com








