Verwendung von Kollisionsgruppen

Die dynamischen und feststehenden Physik-Objekte können bestimmten Kollisionsgruppen zugeordnet werden. Standardmäßig befinden sich alle Objekte in der Kollisionsgruppe 0, was bedeutet, dass diese mit allen anderen Physik-Objekten kollidieren.

Die Einstellungen für die Kollisionsgruppen sind in der Rubrik "Experten-Einstellungen->Physik-Einstellungen->Kollisions-Einstellungen" zu finden. Diese bestehen aus den beiden Eigenschaften "Kollisionsgruppe" und "Zusätzliche Kollisionsgruppen".

Bevor die Kollisionsgruppen genauer erläutert werden, soll der Unterschied zur Eigenschaft "Neutral bei Kollision" innerhalb der Rubrik "Grundeinstellungen->Endschalter Einstellungen" erklärt werden.

Wird die Eigenschaft "Neutral bei Kollision" selektiert, dann übt das so eingestellte Objekt keine Kraft auf einen möglichen Kollisions-Partner aus. Das Objekt wird also von einem anderen Objekt passiert, ohne dass das andere Objekt in seiner Bewegung beeinflußt wird. Allerdings "spürt" das Objekt mit der Eigenschaft "Neutral bei Kollision" die Kollision (sofern die Kollisionsgruppen-Einstellung dies ermöglicht) und ist das Objekt als Endschalter konfiguriert, dann wird der Endschalter-Operand im Status verändert.

Im folgenden Beispiel ist dies zu sehen. Ein blaues Rechteck-Objekt fällt von oben herab. In der Mitte ist ein grünes Rechteck-Objekt als Endschalter konfiguriert und die Eigenschaft "Neutral bei Kollision" ist ebenfalls ausgewählt. Der Endschalter-Operand wurde an der LED angegeben, somit leuchtet diese, sobald der Endschalter betätigt ist.

Die Anordnung zeigt, der Endschalter beeinflusst das herabfallende Objekt nicht, dieser "spürt" aber die Kollision und somit wird der Endschalter-Operand entsprechend im Status geändert.

Im nächsten Schritt wird die Anordnung verändert. Das herabfallende Rechteck wird der Kollisionsgruppe 1 zugeordnet. Der Endschalter der Kollisionsgruppe 2.

Nach diesen Änderungen "spürt" der Endschalter keine Kollision mehr mit dem herabfallenden Rechteck, denn dieses gehört nun einer anderen Kollisionsgruppe an. Somit wird auch der Endschalter-Operand nicht mehr im Status verändert und die Lampe leuchtet ebenfalls nicht mehr.

Die beiden Beispiel zeigen deutlich den Unterschied zwischen der Eigenschaft "Neutral bei Kollision" und unterschiedlicher Kollisionsgruppen-Zugehörigkeit.

Anwendungsgebiete von Kollisionsgruppen sind beispielsweise Anordnungen mit Abscheidern oder Filtern.

Im folgenden Bild ist eine solche Anordnung zu sehen.

Das blaue Kreis-Objekt und das unten angebrachte braune Rechteck gehören der Kollisionsgruppe 1 an. Diese beiden Objekte kollidieren somit miteinander. Das graue Kreis-Objekt gehört zur Kollisionsgruppe 2, somit kollidiert dieses nicht mit dem braunen Rechteck. Die schwarzen Rechtecke der Behälter sind alle auf die Kollisionsgruppe 0 eingestellt, diese kollidieren somit mit allen Objekten.

In der Simulation zeigt sich somit folgendes Verhalten:

Die Kreis-Objekte werden separiert. Die grauen Kreis-Objekte fallen durch die schräge Eben hindurch, die blauen Kreis-Objekte kollidieren mit dieser und werden in den rechten Behälter separiert.

Ein weiterer Anwendungsfall ist die Darstellung von verschiedenen, übereinander liegenden Ebenen.

Im Bild sind zwei übereinander liegende Förderelemente angeordnet. Das blaue Förderelement beeinflusst Objekte der Kollisionsgruppe 1, zu denen das blaue Kreis-Objekt gehört. In der vertikalen ist ein weiteres Förderelement platziert. Dieses ist auf die Kollisionsgruppe 2 eingestellt. Dieser Gruppe gehört das gelbe Kreis-Objekt an.

Bei der Simulation verhält sich die Anordnung wie folgt:

Die beiden Förderelemente und deren Objekte beeinflussen sich nicht.

Über die Eigenschaft "Zusätzliche Kollisionsgruppen" kann eine Kollisiongruppe angegeben werden mit der das Objekt ebenfalls kollidiert. Zusätzlich zur eigenen Kollisionsgruppe. Ist beispielsweise das Objekt der Kollisionsgruppe 2 zugeordnet und an der Eigenschaft "Zusätzliche Kollisionsgruppen" ist die Kollisionsgruppe 3 angegeben, dann kollidiert das Objekt mit anderen Objekten der Gruppen 2 und 3.

An der Eigenschaft "Zusätzliche Kollisionsgruppen" können mehrere Gruppen angegeben werden, die Nummern sind dabei durch Komma getrennt anzugeben: Beispiel "2, 5, 10".

In der nachfolgend dargestellten Anordnung gehören die Kreis-Objekte unterschiedlichen Kollisionsgruppen an. Der blaue Kreis gehört zur Gruppe 1, der gelbe zur Gruppe 2 und der grüne zur Gruppe 3.

Im gelben Kreis-Objekt ist an der Eigenschaft "Zusätzliche Kollisionsgruppen" die Gruppe 3 angegeben. Am grünen Kreis die Gruppe 2. Somit ergibt sich bei der Simulation das folgende Verhalten.

Der blaue Kreis beeenflusst die beiden anderen Kreis-Objekte nicht, denn diese gehören ja nicht seiner Kollisionsgruppe an. Der gelbe und grüne Kreis kollidieren miteinander. Diese gehören zwar unterschiedlichen Kollisionsgruppen an, allerdings ist bei diesen auch die jeweils andere Kollisionsgruppe in der Eigenschaft "Zusätzliche Kollisionsgruppen" angegeben.

Damit besteht die Möglichkeit, Objekte in Kollisionsgruppen zu unterteilen und zusätzlich aber auch bei einzelnen Objekten spezielle Beziehungen zu anderen Kollisionsgruppen einzustellen.

Ab der Version 1.5.1.0 kann ein Endschalter (oder auch ein geometrisches Physik-Objekt) so eingestellt werden, dass bei Kollision die Kollisionsgruppe des kollidierenden Objekts verändert wird. Dazu sind die beiden Eigenschaften "Endschalter verändert Kollisionsgruppe" und "Neue Kollisionsgruppe bei Kollision" hinzugekommen. Mit Hilfe der Eigenschaft "Endschalter verändert Kollisionsgruppe" wird die Funktionalität eingeschaltet. Dabei ist in der Eigenschaft "Neue Kollisionsgruppe bei Kollision" die neu einzustellende Kollisionsgruppe anzugeben. Die Angabe erfolgt in Form einer Konstanten oder aber variabel z.B. mit Hilfe eines Wort-Operanden (z.B. IM.MW2).

Kollidiert ein Objekt mit dem Endschalter, bei dem die Eigenschaft "Endschalter verändert Kollisionsgruppe" selektiert ist, dann wird das Objekt der neuen Kollisionsgruppe zugewiesen. Kollidiert ein aus mehreren Objekten bestehender Körper mit dem Endschalter, dann werden alle Objekte des Körpers auf die neue Kollisionsgruppe eingestellt, welche der Kollisionsgruppe des kollidierenden Objekts zugehörig sind.

Beispiel

Ein Körper besteht aus 4 Objekten. Zwei Objekte gehören der Kollisionsgruppe 1 an, die restlichen der Kollisionsgruppe 2. Nun kollidiert ein Objekt der Kollsionsgruppe 1 mit einem Endschalter. Somit werden nur die Kollisionsgruppen der beiden Objekte mit der Kollisionsgruppe 1 verändert. Die beiden anderen Objekte verbleiben in ihrer alten Kollisionsgruppe 2.

Eine Ausnahme der oben beschriebenen Regel ist, wenn die Kollisionsgruppe 0 geschrieben wird. Kollidiert eine Körper-Gruppe mit einem Endschalter und ist an diesem die Kollisionsgruppe 0 als zu setzende Kollisionsgruppe eingestellt, dann wird diese bei allen Objekten des Körpers gesetzt, unabhängig von deren bisherigen Kollisionsgruppe. Dies ist der Tatsache geschuldet, dass die Kollisionsgruppe 0 die Besonderheit besitzt, dass Objekte dieser Kollisionsgruppe mit allen anderen Kollisionsgruppen kollidieren.

Beispiel für das Schreiben einer neuen Kollisiongruppe

Im folgenden Beispiel werden blaue Rechtecke erzeugt. Diese sind der Schwerkraft unterworfen und fallen somit nach unten. Dabei betätigen diese einen Endschalter, welcher die Kollisionsgruppe des Objekts verändert. Die zu setzende Kollisionsgruppe kann über ein Slider-Objekt im Bereich 1 bis 3 eingestellt werden. Darunter befinden sich Rampen, die den jeweiligen Kollisionsgruppen 1 bis 3 zugeordnet sind und somit nur mit Objekten dieser Gruppe kollidieren.

Man erkennt, dass je nach Einstellung der zu setzenden Kollisionsgruppe, das blaue Rechteck mit der zugehörigen Rampe kollidiert und von dieser abtransportiert wird. Diese Anlage mit der Bezeichnung "KollisionsGruppeSchreiben_01.plclab" finden Sie im Verzeichnis der Dokumente des Benutzers unter "PlcLab-Editor\Examples".

Weiteres Beispiel für das Schreiben einer neuen Kollisiongruppe

Im nächsten Beispiel wird ein Kreis-Objekt von einem Förderelement transportiert. Auf dem Förderelement befindet sich ein Endschalter, welcher bei Kollision die Kollisionsgruppe des Kreis-Objekts überschreibt. Die zu schreibende Kollisionsgruppe kann über einen Schieberegler vorgegeben werden. Je nach Einstellung wird das Kreis-Objekt von dem Nebenband 1, 2 oder 3 abtransportiert.

Die Nebenbänder wurden in der Eigenschaft "Zusätzliche Kollisionsgruppen" so eingestellt, dass diese jeweils nur Objekte der Kollisionsgruppe 1, 2 oder 3 befördern. Diese Anlage mit der Bezeichnung "KollisionsGruppeSchreiben_02.plclab" finden Sie im Verzeichnis der Dokumente des Benutzers unter "PlcLab-Editor\Examples".