01.03.2013 Aufrufe

Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...

Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...

Diplomarbeit (*.pdf - 5,3MB) - Faculty of Computer Science ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Das Laden der ausgewählten Klasse und deren Instanziierung zeigt Abbildung<br />

4-19.<br />

public void createDynCNCInterpreterClass(String name)<br />

throws ClassNotFoundException, NoSuchMethodException,<br />

IllegalAccessException, InstantiationException,<br />

InvocationTargetException<br />

{<br />

}<br />

// Klasse laden<br />

Class dynCNCInterpreter = Class.forName(name);<br />

// Parametertyp des zu ermittelnden Konstruktors<br />

Class[] paramTypes = new Class[] { Joints.class };<br />

Object[] paramValues;<br />

// Konstruktor ermitteln<br />

Constructor cncInterpreterConstructor = dynCNCInterpreter<br />

.getConstructor(paramTypes);<br />

// Konstruktor-Parameter erstellen<br />

paramValues = new Object[] {<br />

new Joints(elementConnections,cncEmulator)<br />

};<br />

// Instanz erzeugen<br />

cncInterpreter = (CNCInterpreter) cncInterpreterConstructor<br />

.newInstance(paramValues);<br />

// Interpreter der Ablaufsteuerung zuweisen<br />

cncEmulator.setInterpreter(cncInterpreter);<br />

Abb. 4-19 dynamisches Laden des CNC-Interpreters<br />

Zusätzlich können im Konfigurationsdialog der CNC-Simulation die Anzahl<br />

der parallel auszuführenden CNC-Programme festgelegt und diese benannt<br />

werden. Folglich können beliebig viele parallel laufende Prozesse simuliert<br />

werden.<br />

Zur Auswertung der CNC-Simulationen können die wichtigsten angefallenen<br />

Daten in einer Log-Datei gespeichert werden. Diese enthält Informationen über<br />

den zeitlichen Verlauf der Simulation und eventuell aufgetretene Kollisionen<br />

(auf Wunsch inklusive der kollidierenden Primitive). Letztere werden dabei der<br />

aktuellen CNC-Zeile und dem aktuellen Zeitschritt zugeordnet. Somit lassen<br />

sich in einer nachträglichen Auswertung Rückschlüsse auf die Ursache der<br />

Kollision ziehen.<br />

Es soll an dieser Stelle nicht unerwähnt bleiben, dass bei Eintritt einer<br />

Kollision selbstverständlich auch eine Ermittlung des ersten Kontaktzeitpunkts<br />

zwischen zwei Zeitschritten möglich wäre. Da hier jedoch lediglich die<br />

betr<strong>of</strong>fene CNC-Zeile von Interesse ist, wurde von einer Implementierung<br />

abgesehen. Darüber hinaus wäre es sicherlich lohnender, die in Abschnitt 3.3.9<br />

angesprochene kontinuierliche Kollisionserkennung anstelle dessen zu implementieren,<br />

da diese die Ermittlung des ersten Kontaktzeitpunkts bereits implizit<br />

mitbestimmt.<br />

82

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!