Inhaltsverzeichnis
5.2. Implementierung
Bei den Mechanismen müssen dem Anwender zusätzliche Bedienelemente verfügbar gemacht werden, um die Typen nach den gewünschten Kriterien einschränken zu können. Dabei ist zu berücksichtigen, dass die Verarbeitung einer Einschränkung u.U. relativ lange dauern kann, da nach dem ersten Typen des Katalogs gesucht werden muß, der dieser Einschränkung genügt. Die Einschränkung sollte deshalb nicht unmittelbar nach jeder Änderung eines der zugehörigen Eingabeelemente verarbeitet werden, sondern erst, wenn der Anwender alle Änderungen abgeschlossen hat. Dafür wird ein Button mit der Aufschrift "Anwenden" vorgesehen. Die gewählte Einschränkung wird in Form der für die einzelnen Eigenschaften jeweils maximal erlaubten Werte in einer Variable des Typs TMechInfo abgelegt (Variable Filter).
Durch diese Möglichkeit der Einschränkung erhöht sich gegenüber den Ketten und AGn auch der Aufwand für die Implementierung der Programmfunktionalität. Die Prüfung, ob der vom Anwender über einen Typencode, eine Gliedmatrix oder eine Katalognummer spezifizierte Typ existiert, ist nicht mehr ausreichend. Es darf vielmehr nur dann eine Anzeige erfolgen, wenn er auch der aktuellen Einschränkung genügt. Zusätzlicher Aufwand entsteht auch durch das Ableiten der MTen aus den Typen kinematischer Ketten, verbunden mit doppelter Numerierung und dem Verwalten einer Basiskette.
Bei der Suche nach einem MT durchläuft das Programm deshalb mehrere Phasen:
Dieses Suchprinzip kommt in jeweils angepasster Form an folgenden Stellen zum Einsatz:
Die Implementierung ist mit Hilfe der Funktionen aus der Bibliothek unkompliziert. Im aufwändigsten Fall sind zwei verschachtelte Schleifen notwendig: die äußere zum Finden der kinematischen Kette und die innere zum Prüfen jeweils aller Ableitung von dieser Kette.
Ein ähnliches Vorgehen ist auch beim Zählen der Typen erforderlich. Es werden alle Ableitungen von allen Ketten des Katalogs gebildet und untersucht. Jede Ableitung, die der aktuellen Einschränkung genügt, wird entsprechend der gewünschten Statistik gezählt. Da der Zählvorgang je nach Klasse und Geschwindigkeit des Computers recht lange dauern kann, wird er in einen niedrig priorisierten Thread ausgelagert [C 42]. Der Vorgang kann so wahlweise auch Ressourcen schonend im Hintergrund ablaufen, während an dem Rechner gearbeitet wird. Außerdem kann die Anwendung dadurch während des Zählens auf den Button zum Abbrechen des Vorgangs reagieren.