Jump to content

Animationen erstellen


Empfohlene Beiträge

8 minutes ago, Michael65 said:

...If you set a contact point in the middle of the floor panel, you can then set a virtual lane and then link it....

I can't edit, or access, the floor panel. To me, the whole lift building is just one object. It doesn't matter, though; the exercise was simply to get the lift to go up and down. I would construct in a different manner, using different tools. You've done a very good job, though; well done. (y)

Ich kann das Bodenpanel weder bearbeiten noch darauf zugreifen. Für mich ist das ganze Aufzugsgebäude nur ein Objekt. Es spielt jedoch keine Rolle; Die Übung bestand einfach darin, den Aufzug nach oben und unten zu bringen. Ich würde anders konstruieren, mit anderen Werkzeugen. Sie haben aber sehr gute Arbeit geleistet; gut gemacht. (y)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo / Hello Michael und / and Douglas,

bezüglich der Animations-Problematik der Aufzugsteuerung mit dem Anhalten der Animation in den Zwischen-Stockwerken habe ich etwas getüftelt und entsprechende Benutzer-definierte Ereignisdefinitionen gebaut. Da die Animation des Aufzugs zum großen Teil durch die Wand des Aufzugschachts verdeckt ist, habe ich für die Definition ein kleines Modell mit einer den Bereich 0 bis 100 umfassenden Skala entworfen, entlang dieser sich ein mit der Animation gesteuerter Pfeil bewegt.
Regarding the animation problem of the elevator control with the stopping of the animation in the intermediate floors I have fiddled a bit and built corresponding user-defined event definitions. Since the animation of the elevator is largely hidden by the wall of the elevator shaft, I designed a small model for the definition with a scale covering the range 0 to 100, along which an arrow controlled by the animation moves.

Animationsbeispiel.thumb.jpg.f700c717d1444b555324ea5268347fb1.jpg

Das obige Bild zeigt eine kleine Demo-Anlage, bei der die Säule mit dem sich nach oben und unten bewegenden Pfeil von Tastern und Beschriftungsfeldern mit Zahlenwerten umgeben ist. Sowohl die Beispiel-Anlage als auch das darauf platzierte Beispiel-Modell sind im Online-Katalog als Entwürfe hinterlegt und können daher direkt getestet werden.
The above picture shows a small demo layout where the column with the arrow moving up and down is surrounded by buttons and labeling fields with numerical values. Both the example layout and the example model placed on it are stored in the online catalog as drafts and can therefore be tested directly.

Beispiel-Anlage / Example layout :   88526CF3-18A4-4A70-9CDF-7AF1CDE9F93E
Beispiel-Modell / Example model :   CFB94DD0-9772-4905-90B8-D2E191721BE4  

Die Pfeil-Animation wird mit den beiden Tastern gesteuert, wobei mit dem grünen Taster links der Pfeil von einer vorgegebenen Startposition zu einer ebenfalls vorgegebenen Zielposition bewegt wird. Diese Positionen mit Werten zwischen 0 und 100 (jeweils einschließlich)  werden in den mit "Start" und "Ziel" gekennzeichneten Beschriftungsfeldern hinterlegt und von dort beim Drücken des grünen Tasters eingelesen und in der Animation entsprechend eingesetzt.
The arrow animation is controlled with the two buttons, whereby the green button on the left moves the arrow from a predefined start position to a likewise predefined target position. These positions with values between 0 and 100 (inclusive in each case) are stored in the label fields marked "Start" and "Ziel" (destination) and read in from there when the green button is pressed and used accordingly in the animation.

Ist die Bewegung abgeschlossen, wird die Zielposition als neue "aktuelle" Position des Pfeils in einer dem animierten Modell (hier der Skalen-Säule) zugeordneten Objekt-Variable "Position" hinterlegt.
Once the movement is complete, the target position is stored as the new "current" position of the arrow in an object variable "Position" assigned to the animated model (here the scale column).

Enthält das Beschriftungsfeld für die Start-Position einen negativen Wert (im obigen Bild "-1"), wird beim Drücken des grünen Tasters der Wert dieser Objekt-Variable eingelesen, um die aktuelle Position des Pfeils zu bestimmen und als Start-Position für die zu vollziehende Pfeil-Bewegung zu verwenden.
If the label field for the start position contains a negative value (in the above image "-1"), the value of this object variable is read in when the green button is pressed in order to determine the current position of the arrow and use it as the start position for the arrow movement to be executed.

Das mit "Pause" bezeichnete Beschriftungsfeld wird weiter unten erklärt.
The label field labeled "Pause" is explained below.

Mit dem roten Taster rechts wird der Pfeil direkt mit einem Sprung dorthin an jene Position (ebenfalls im Bereich 0 bis 100) gesetzt, die in dem mit "Sprungziel" bezeichneten Beschriftungsfeld eingetragen ist.
With the red button on the right, the arrow is set directly with a jump there to that position (also in the range 0 to 100), which is entered in the label field marked "Sprungziel" (Jump target).

Durch Modifikation der Zahlen in diesen Beschriftungsfeldern können beliebige Bewegungen und Sprünge im Bereich der Skala durchgeführt werden. Die Beschriftungsfelder mit den Zahlen für die Positionswerte dürfen keine Leereichen und keine Zeilenvorschübe enthalten. Sonst kann die Zahl von der Ereignisverwaltung nicht korrekt erkannt werden.
By modifying the numbers in these label fields, any movements and jumps in the range of the scale can be carried out. The label fields with the numbers for the position values must not contain any spaces or line feeds. Otherwise the number cannot be recognized correctly by the event management.

Nach meinem aktuellen Kenntnisstand bietet die Ereignisverwaltung für die Steuerung von Animationen zwar die Ereignisse "Animation abspielen" und "Animation stoppen" an, aber nicht eine Abfrage-Möglichkeit des aktuellen Animations-Zustands (zur Formulierung einer Bedingeung) und auch nicht ein Ereignis, welche die Beendigung eines Animations-Ablaufs meldet.
To my current knowledge, the event management for controlling animations offers the events "Play animation" and "Stop animation", but not a query possibility of the current animation state (for formulating a condition) and also not an event which reports the termination of an animation run.

In den vorhandenen Ereignisdefinitionen können als Start-Position (Animation abspielen) und als Stopp-Position (Animation stoppen) nur Postionen "Anfang", "Aktuell" und "Ende", aber keine individuell festzulegenden Positionen spezifiziert werden. Das Ziel der Animationsbewegung (Animation abspielen) ist immer die Anfangsposition oder Endposition der Animation in Abhängigkeit von der eingestellten Bewegungsrichtung. Man kann also in der grafischen Ereignisverwaltung die Animationsbewegung nicht an einer explizit vorgegeben Zwischenposition enden lassen.
In the existing event definitions only positions "Start", "Current" and "End" can be specified as start position (play animation) and as stop position (stop animation), but no individually definable positions. The target of the animation movement (play animation) is always the start position or end position of the animation depending on the set movement direction. It is therefore not possible to have the animation movement end at an explicitly specified intermediate position in the graphical event management.

Um die Funktionalität der hier beschriebenen Beispiel-Anlagen realisieren zu können, muss man daher auf folgende in der Lua-Ebene zur Verfügung stehende Funktionen zugreifen:
In order to realize the functionality of the example systems described here, one must therefore access the following functions available in the Lua layer:

Lua-Animations-Parameter.jpg.420afbe75dd65f1019219ca3a2fb39a9.jpg

2091944600_Lua-Animations-Parameter(englisch).jpg.87871c050cada7f0b578e5260646f68a.jpg

Die Funktionen "play" und "stop" sind die Abbilder der grafischen Aktionen "Animation abspielen" und "Animation stoppen", solange man bei ersterer die Parameter "min" und "max" nicht spezifiziert (min = max = -1, Voreinstellung min=0, max=1). Damit ist immer gewährleistet, dass die Steuerung der Animation im Eigenschaftsfenster des animierten Modells immer über die gesamte Animation hinweg möglich ist. Bei der Funktion "stop" fehlt in der grafischen Ereignisverwaltung die Möglichkeit, einen konkreten Wert zwischen 0 und 1 für die Stopp-Position anzugeben.
The functions "play" and "stop" are the images of the graphical actions "play animation" and "stop animation", as long as you do not specify the parameters "min" and "max" for the former (min = max = -1, default min=0, max=1). This always ensures that control of the animation in the animated model's properties window is always possible throughout the entire animation. With the function "stop" the possibility is missing in the graphical event management to specify a concrete value between 0 and 1 for the stop position.

Über die Parameter "min" und "max" schränkt man in der Funktion "play" den Bereich ein, auf welche die Animation eingeschränkt werden soll. Liegt der Wert des Parameters "position" außerhalb des Bereichs [min,max], springt die Animation zuerst zu dem nächstgelegenen "Grenzpunkt" min oder max, bevor von dort aus die Animationsbewegung in der vorgegebenen Richtung gestartet wird. Die Bewegung wird spätestens beim Erreichen des in der Bewegungsrichtung vorne liegenden Grenzpunkts gestoppt. Man kann also durch Festlegen von min als Startpunkt und max als Zielpunkt der Animation (oder umgekehrt in Abhängigkeit von der Bewegungsrichtung) erreichen, dass die Animationsbewegung einen individuell festgelegten Teilabschnitt innerhalb des gesamten Animationsbereichs [0,1] durchläuft.
The parameters "min" and "max" are used in the "play" function to limit the range to which the animation is to be restricted. If the value of the parameter "position" lies outside the range [min,max], the animation jumps first to the nearest "border point" min or max, before the animation movement is started from there in the given direction. The movement will be stopped at the latest when reaching the front border point in the direction of movement. Thus, by defining min as the starting point and max as the target point of the animation (or vice versa depending on the direction of movement), it is possible to achieve that the animation movement passes through an individually defined subsection within the entire animation range [0,1].

Die Einschränkung auf diesen Bereich ist allerdings auch über diesen Animationsablauf hinaus weiterhin gültig, bis sie über einen erneuten Aufruf der Funktion "play" wieder korrigiert wird. Würde man also nach dem Abschluss diese Aufrufs der "play"-Funktion die Animation weiter über das Eigenschaftsfenster des Modells steuern wollen, wäre man auf diesen zuletzt eingestellten Bereich [min,max] innerhalb des Bereichs [0,1] der vollständigen Animation eingeschränkt.
However, the restriction to this range is still valid beyond this animation sequence until it is corrected again via a renewed call of the "play" function. If you want to continue controlling the animation via the properties window of the model after this call of the "play" function, you would be restricted to this last set range [min,max] within the range [0,1] of the complete animation.

Es ist daher notwendig, nach Beendigung des Animationsablaufs den "Navigationsbereich" für die Animationssteuerung über das Eigenschaftsfenster des animierten Modells wieder auf [min,max] = [0,1] zurückzusetzen.
It is therefore necessary to reset the "Navigation area" for animation control via the properties window of the animated model to [min,max] = [0,1] after the animation process is finished.

1069586646_Bewegen(Lua).thumb.JPG.1e52610e804146724df5cfdaa5b91228.JPG

Das Benutzer-definierte Ereignis für die Animations-Bewegung enthält daher  einen zusätzlichen "play"-Aufruf, mit dem die Einschränkung des Animationsbereichs wieder aufgehoben wird. Da hierdurch auch eine neue (nicht gewollte) Animationsbewegung gestartet wird, muss diese sofort wieder mittels der "stop"-Funktion angehalten und die Stopp-Position erneut auf den ursprünglichen Zielpunkt gesetzt werden. Da diese Aufrufe "sofort" ausgeführt werden, muss mit dem Start dieser "Korrektur" gewartet werden, bis die ursprüngliche Animationsbewegung abgeschossen ist. Deshalb wurde in den obigen Funktionsablauf eine Verzögerung eingebaut, deren Wert von der Dauer des beabsichtigten Bewegungsablaufs abhängt.
The user-defined event for the animation movement therefore contains an additional "play" call, with which the restriction of the animation area is removed again. Since this also starts a new (unwanted) animation movement, it must be stopped again immediately using the "stop" function and the stop position must be set to the original target point again. Since these calls are executed "immediately", the start of this "correction" must wait until the original animation movement has been shot down. Therefore, a delay has been built into the above function sequence, the value of which depends on the duration of the intended motion sequence.

Dieser wird über den Zahlenwert "Pause" (Anzahl Sekunden) definiert, der als Parameter des Aufrufs in der grafischen Ereignisdefinition mitgegeben wird. Und genau dieser Verzögerungswert kann vom Anwender der Beispielanlage über das Beschriftungsfeld mit der Bezeichnung "Pause"  (im ersten Bild sind 5 Sekunden Verzögerung hinterlegt) vorgegeben werden. Ist dieser Wert kleiner als die tatsächliche Dauer des Bewegungsablaufs der ursprünglich gestarteten Animation, wird diese vorzeitig mit einem Sprung zum Zielpunkt abgebrochen. Deshalb ist stets darauf zu achten, dass die Pause immer die Dauer des tatsächlichen Animationsablaufs umfasst.  
This is defined via the numerical value "Pause" (number of seconds), which is given as a parameter of the call in the graphical event definition. And it is exactly this delay value that can be specified by the user of the example installation via the label field with the designation "Pause" (in the first image, 5 seconds of delay are stored). If this value is smaller than the actual duration of the motion sequence of the originally started animation, it will be prematurely aborted with a jump to the target point. Therefore, always make sure that the pause always includes the duration of the actual animation sequence.

Der aus den Einstellungen in den Beschriftungsfeldern der Beispiel-Anlage abgeleitete Aufruf des im obigen Bild wiedergegebenen Benutzer-definierten Ereignisses ist im nachfolgenden Bild dargestellt.
The call of the user-defined event reproduced in the above image, derived from the settings in the label fields of the example layout, is shown in the following image.

955848413_Bewegen(EV).thumb.JPG.a500bbfe53c04ac182bd6bd7d111acc8.JPG

Der Sprung zu einer bestimmten Position innerhalb der Animation, der über das Drücken des roten Tasters veranlasst wird, wird über die nachfolgend gezeigte Benutzer-definierte Ereignisdefinition realisiert:
The jump to a specific position within the animation, which is initiated by pressing the red button, is realized via the user-defined event definition shown below:

766440147_Springen(Lua).thumb.JPG.2b445716426c1c9b7e78d7393af74621.JPG

Dies ist exakt die Aufruffolge für die Korrektur aus der vorherigen Ereignisdefinition für den animierten Bewegungsablauf. Auch hierfür noch der zugehörige Aufruf in der grafischen Ereignisverwaltung:
This is exactly the call sequence for the correction from the previous event definition for the animated motion sequence. Also for this still the associated call in the graphical event management:

6322722_Springen(EV).thumb.JPG.461c2b7462bd9eb38a55eba238e82921.JPG

Um diese Ereignisdefinitionen auf Animationen anderer animierter Objekte anzuwenden, muss diesen eine Objektvariable "Position" hinzugefügt werden. Danach braucht man in den Aufrufen der Benutzer-definierten Ereignisdefinitionen nur noch die Parameter "Animation" und "Objekt" mit dem neuen Objekt und der darin zu steuernden Animation zu versorgen.
To apply these event definitions to animations of other animated objects, an object variable "Position" must be added to them. After that, in the calls of the user-defined event definitions, one only needs to provide the parameters "Animation" and "Object" with the new object and the animation to be controlled in it.

Und nun wünsche ich Euch viel Spaß beim Ausprobieren dieses Beispiels und der Übertragung von dessen Funktionalität auf die von Euch zu steuernden Objekte (z.B. auf Deinen Aufzug, Michael).
And now I wish you a lot of fun trying out this example and transferring its functionality to the objects you want to control (e.g. your elevator, Michael).

Viele Grüße / many greetings
BahnLand

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

11 hours ago, Michael65 said:

HelloDad3353,

What are you working with? with Blender?

If you feel like it, you can build one for me but in this size. I don't care about the textures. Should look something. 
This elevator was specially built for my model because of the height difference. 

Greetings Michael


I built one, just for fun, with Blender. It's uploaded as a 'draft', with the ID...

Ich habe aus Spaß einen mit Blender gebaut. Es wird als 'Entwurf' hochgeladen, mit der ID...

EDB3B662-2DBB-4FAF-978A-720E4C35BE0D

I couldn't get the Doris twins to go up and down, though. :(

Ich konnte die Doris-Zwillinge jedoch nicht dazu bringen, auf und ab zu gehen. :(

Bearbeitet von Dad3353
Link zu diesem Kommentar
Auf anderen Seiten teilen

2 hours ago, BahnLand said:

...And now I wish you a lot of fun trying out this example...

I'm darned glad that I chose Blender..! :D I did my version as an automatic loop. It would be possible (and easy...) to define individual movements between floors, and trigger them by Events, but more tricky (but not impossible...) to have manual control, as the floors have to be sequential. If there was a specific requirement for this, it could be done entirely through EV, if the associated separate floor changes were defined. Would that really be useful to anyone..? :/
More important, to me, would be a solution to having occupants riding in the lift. I could do that by putting them in at the Blender stage, but have not found a way of attaching Catalogue people to the lift. Is it possible..? Maybe, but I couldn't find a way. Happy to learn how it could be done, though. B|

Ich bin verdammt froh, dass ich mich für Blender entschieden habe..! :D Ich habe meine Version als automatische Schleife gemacht. Es wäre möglich (und einfach...), einzelne Bewegungen zwischen Stockwerken zu definieren und sie durch Ereignisse auszulösen, aber schwieriger (aber nicht unmöglich...) wäre es, eine manuelle Steuerung zu haben, da die Stockwerke sequentiell sein müssen. Wenn es eine spezielle Anforderung dafür gäbe, könnte dies vollständig durch EV erfolgen, wenn die zugehörigen separaten Stockwerksänderungen definiert würden. Wäre das wirklich nützlich für irgendjemanden..? :/
Wichtiger wäre mir eine Lösung, um Insassen im Aufzug mitfahren zu lassen. Ich könnte das tun, indem ich sie in die Blender-Phase einbaue, aber ich habe keine Möglichkeit gefunden, Katalogleute mit dem Lift zu verbinden. Ist es möglich..? Vielleicht, aber ich konnte keinen Weg finden. Ich bin jedoch froh zu erfahren, wie es gemacht werden könnte. B|

Bearbeitet von Dad3353
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Dad3353,

das sieht schon mal gut aus. 
die Türen könnten einen Rahmen gebrauchen, so sieht man nicht ob die Türen zu sind oder nicht. Habe dir mal mein Aufzug als DAE Datei exportiert. Die kann du dann im Blender aufmachen.Lift Blender 3.0.zip  

Die rote und grünen Knöpfe konnte eigentlich als Schalter funktionieren. Wenn jemand auf diesen Schalter drückt fährt er nach oben oder nach unten. Denke das wäre eine Idee. damit braucht man keine schleife oder? Ich weiß das klingt für mich kompliziert, vielleicht für euch nicht.

Wenn du in der Mitte ein ein Quadrat zeichnest und dies Gruppiert, und dieses Quadrat als _CP_Target definierst, kann man ein Kontaktpunk setzen.
Den Kontaktpunkt findest du unter "Online-Katalog / Zusätzlich.

Dort kann man eine Virtuelle Fahrweg drauflegen, dies mit  Kontaktpunk verknüpfen und wenn die Personen drauf stehen fahren sie nach oben oder runter.

 

@BahnLand,

deine Beschreibung ist echt super. Werde mich mal dran machen. 
Kann ich auch in einer X Datei bei der Animation einen Stopp zwischen den einzelne Stockwerken mit Zeit Verzögerung einbringen, wenn ja wie?

Habe mal die ganzen Dateien für Blender und  Sketchup 2017 drangehänktAufzug Sketchup 2017.zip

Habe mir folgendes überlegt. Wenn eine Person am Fahrstuhl steht (egal welches Stockwerk) drückt einen Knopf, dann kommt der Fahrstuhl. Wenn diese Person im Fahrstuhl geht, kann man aussuchen welcher Knopf man drückt und in diesem Stockwerk dann fährt. Habe im Fahrstuhl mal Knöpfe eingebaut mit E, 1, 2 und 3 Die sind Gruppiert und definiert.
Kann man in der X Datei einen Schalter / Taster einrichten.? Sonst könnte man ja im MBS mehrere Schalter einbauen. so ungefähr was BahnLand beschrieben hat. 

Für mich ist das alles noch sehr kompliziert. Aber es muss doch machbar sein oder?

Gruß
Michael

Übersetzt vom Google:

The red and green buttons could actually function as switches. When someone presses this switch, they go up or down. Think that would be an idea. so you don't need a loop right? I know that sounds complicated to me, maybe not to you. If you draw a square in the middle and group it, and define this square as _CP_Target, you can set a contact point. You can find the contact point under "Online Catalogue/Additional. There you can put a virtual route on it, link it with contact point and when the people stand on it, they drive up or down. BahnLand, your description is really great. I'll do it. Can I also insert a stop between the individual floors with a time delay in an X file in the animation, if so how? I attached all the files for Blender and Sketchup 2017 Lift Sketchup 2017.zip I've thought of the following. If a person stands at the elevator (regardless of which floor) presses a button, then the elevator comes. If this person goes in the elevator, you can choose which button you press and then go on that floor. I installed buttons in the elevator with E, 1, 2 and 3. They are grouped and defined. Is it possible to set up a switch/button in the X file? Otherwise you could install several switches in the MBS. roughly what BahnLand described. For me it's all very complicated. But it has to be doable, right? greeting Michael

Bearbeitet von Michael65
Link zu diesem Kommentar
Auf anderen Seiten teilen

 Here's the improved doors, and the Doris twins enjoying the ride...

Hier sind die verbesserten Türen und die Doris-Zwillinge, die die Fahrt genießen …

A686F0DC-79E4-4070-9C9D-63ED62443624

Shared as a Draft layout, just for fun.

Nur so zum Spaß als Layout-Entwurf geteilt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo / Hello Douglas und / and Michael,

vor 7 Stunden schrieb Dad3353:
vor 15 Stunden schrieb BahnLand:

...And now I wish you a lot of fun trying out this example...

I'm darned glad that I chose Blender..!
Ich bin verdammt froh, dass ich mich für Blender entschieden habe..! 

Die obige Beschreibung von mir hat nichts mit der Verwendung von Blender oder Sketchup zu tun, sondern bezieht sich ausschließlich auf die Steuerung der im Modell vorhandenen Animation innerhalb der Ereignisverwaltung. Mt welchem 3D-Modellierungs-Programm das animierte Modell erstellt wurde, spielt hierbei keine Rolle.
The above description of mine has nothing to do with the use of Blender or Sketchup, but refers exclusively to the control of the animation present in the model within the event management. It does not matter which 3D modeling program was used to create the animated model.

vor 7 Stunden schrieb Michael65:

Kann ich auch in einer X Datei bei der Animation einen Stopp zwischen den einzelne Stockwerken mit Zeit Verzögerung einbringen, wenn ja wie?

Wie das im Ablauf aussieht, kann man sehr schön an dem Beispiel  von Douglas A686F0DC-79E4-4070-9C9D-63ED62443624 sehen, wenn man sich während des Ablaufs der Animation die Positionsanzeige im Eigenschaftsfenater des Aufzug-Modells anschaut. Auf Deine x-Datei angewendet könnte Deine AnimationSet-Definiton folgende Aniations-Abschknitte enthalten:
How this looks in the sequence can be seen very nicely in the example of Douglas A686F0DC-79E4-4070-9C9D-63ED62443624, if you look at the position display in the property window of the elevator model while the animation is running. Applied to your x-file, your AnimationSet definition could contain the following aniation sections:

1089266268_AnimatiionBodenplatte.JPG.160073dd9dd6eceafc157ab081931136.JPG

Die Gesamtanimation umfasst sowohl die Auf-Ab-Bewegung des Aufzugs mit Pausen in den einzelnen Stiockwerken als auch den Tür-Öffnungs- und Schließ-Mechanismus in den einzelnen Stockwerken. Hiernei habe ich für den Weg des Aufzugs zwischen 2 Stockwerken 2 Sekunden, für das Öffnen und schließen der Türen jeweils 1 Sekunde und für die Verweildauer des geöffneten Aufzugs jeweils 6 Sekunden vorgesehen. Daraus ergibt sich für einen vollständigen Zyklus zwischen den 4 Stockwerken eine Anmationsdauer von 60 Sekunden. Der Zyklus soll hierbei in der Mitte der geöffneten Zustands im Erdgeschoss beginnen und enden.
The overall animation includes both the up-down movement of the elevator with pauses in the individual floors and the door opening and closing mechanism in the individual floors. Here I have provided 2 seconds for the travel of the elevator between 2 floors, 1 second each for the opening and closing of the doors and 6 seconds each for the dwell time of the opened elevator. This results in an animation time of 60 seconds for a complete cycle between the 4 floors. The cycle is to start and end in the middle of the open state on the first floor.

Hieraus ergibt sich mit den Positionsdaten aus Deiner x-Datei die Auf-Ab-Animation des Aufzugs des im obigen Bild gezeigten AnimationKeys: Der Aufzug setzt sich im Erdgeschoss nach 4 Sekunden nach oben in Bewegung, um 2 Sekunden später im 1. Obergeschoss anzukommen und hier einen Halt von 8 Sekunden einzulegen. Es folgt die Fahrt in den 2. und 3. Stock, jeweils gefolgt von einer weiteren Pause von 8 Sekunden. Der Rückweg in Richtung Erdgeschoss erfolgt in der gleichen Weise. Der Zyklus endet 4 Sekunden nach der Ankunft im Erdgeschoss.
This results with the position data from your x-file in the up-down animation of the elevator of the AnimationKey shown in the picture above: The elevator starts moving upwards after 4 seconds on the first floor, to arrive 2 seconds later on the 1st floor and to make a stop of 8 seconds here. This is followed by the trip to the 2nd and 3rd floors, each followed by another pause of 8 seconds. The return journey towards the first floor is made in the same way. The cycle ends 4 seconds after arrival at the first floor.

Dieser Animationkey ist die "Richtschnur" für die Animationkeys der Aufzugstüren in den einzelnen Stockwerken: In jedem Stockwerk werden in der Pause, die der Aufzug dort einlegt, die Türen geöffnet (1 Sekunde), dann 6 Sekunden für den Ein- und Ausstieg offen gehalten und danach wieder geschlossen (1 Sekunde). In den anderen Bereichen des Animationszyklus bleiben die Türen geschlossen. Entsrechend der Aufenhaltszeit des Aufzugs in den einzelnen Stockwerken ergeben sich für die jeweiligen Türen folgende AnimatiionKey-Definitionen:
This animation key is the "guideline" for the animation keys of the elevator doors on the individual floors: On each floor, during the pause that the elevator takes there, the doors are opened (1 second), then held open for 6 seconds for entry and exit, and then closed again (1 second). In the other areas of the animation cycle, the doors remain closed. Corresponding to the elevator's stay time on the individual floors, the following AnimatiionKey definitions result for the respective doors:

1664737359_AnimationEG.JPG.2bf2b3bd4e0ad905c4b8a49322b83bfb.JPG
Erdgeschoss / First floor

318283892_AnimationOG1.JPG.31a8539b278b35bd7c6524767506b230.JPG
1. Obergeschoss / 1st upper floor

1985012965_AnimationOG2.JPG.1d9d8c72893d74afdec19789e715583c.JPG
2. Obergeschoss / 2nd upper floor

1666732008_AnimationOG3.JPG.3bf971cc753a64298715fbaa7946aa61.JPG
3. Obergeschoss / 3rd upper floor

Ich habe hier jeweils nur einen Türflügel betrachtet. Der andere Türflügel auf dem jeweils gleichen Stockwerk besitzt dasselbe zeitliche Verhalten. 
I have only considered one door leaf at a time. The other door leaf on the same floor has the same temporal behavior.

Die anim-Datei reduziert sich bei dieser Lösung auf einen Eintrag, weil die Animationen für die Auf-Ab-Beweung des Aufzugs und das Öffnen und Schließen der Türen im selben Animationszyklus abgespielt werden:
The anim file is reduced to one entry with this solution, because the animations for the up-down movement of the elevator and the opening and closing of the doors are played in the same animation cycle:

Anim-Datei.JPG.06ab4148e62eb1f36c797ae469ee47db.JPG

Eventuell kann man hier auch gleich "Autoplay" und "Loop" einstellen. Dann braucht die Aufzugs-Animation nicht explizit gestartet zu werden.
Maybe you can also set "Autoplay" and "Loop" here. Then the elevator animation does not need to be started explicitly.

Der Nachteil dieser Animaton liegt darin, dass der Aufzug nicht individuell gesteuert werden kann, sondern immer denselben Ablauf über einen kompetten Zyklus wiedergibt, der dann bei Bedarf wiederholt werden kann. 
The disadvantage of this animaton is that the elevator cannot be controlled individually, but always reproduces the same sequence over a compact cycle, which can then be repeated as needed.

Für die individuelle Steuerung des Aufzugs mit der von Dir in Deinem Modell realisierten AnimationSet-Definition eignet sich dagegen genau die Beschreibung aus meinem letzten Beitrag: Platziere Deinen Aufzugs-Turm in das oben beschriebene Anlagenbeispiel und füge in den beiden genannten Benutzer-definierten Ereignissen als Animation "Aufzug Hoch / Runter" ein und wähle als Objekt den "Fahrstuhl Transit" aus. Setze dann zuerst in das Sprungziel-Nummernfeld des roten Tasters "1" ein und verlagere den Aufzug mit der roten Taste nach oben (hierduch wird die für den grünen Taster benötigte Objektvariable "Position" eingerchtet und initialisiert). Anschließend kannst Du als "Ziel" rechts vom grünen Taster die Zahlen 0, 31, 64 und 100 eingeben, um den Aufzug das entsprechende Stockwerk 0, 1, 2 oder 3 ansteuern zu lassen (die Abstände zwischen den Stockwerken sind nicht gleichmäßig, weshalb die Abstände zwischen 0 und 100 nicht gedrittelt sind).
For the individual control of the elevator with the AnimationSet definition you realized in your model, exactly the description from my last article is suitable: Place your elevator tower in the system example described above and add in the two mentioned user-defined events as animation "Elevator Up / Down" and select as object the "Elevator Transit". First enter "1" in the jump target number field of the red button and move the elevator upwards with the red button (this sets and initializes the object variable "Position" required for the green button). Afterwards you can enter the numbers 0, 31, 64 and 100 as "destination" to the right of the green button to let the elevator go to the corresponding floor 0, 1, 2 or 3 (the distances between the floors are not even, that's why the distances between 0 and 100 are not divided into thirds).

Du darfst die beiden Bentzer-definierten Ereignisse gerne in Deine Anlage übernehmen, um Deine dort zu instalierenden Aufzüge enspechend zu steuern.
You are welcome to use the two Bentzer-defined events in your system to control the elevators to be installed there accordingly.

Viele Grüße / many greetings
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @BahnLand und @Dad3353

vielen Dank für deine Hilfe.

Werde alles ausprobieren und schauen welches ich benutze werde. 
Bahnland, es währe schön wenn die Animation nicht als Bild sondern als Text dargestellt werden. So könnte ich es einfach kopieren.
Na ich schreibe das mal ab. 

Das hilft mir sehr.
Gruß
Michael
 

Bearbeitet von Michael65
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Michael,

als ich bei der Gruppe "Bodenplatte" die Koordinaten für die "Zwischenhalte" berechnet hatte, ging ich noch davon aus, dass alle Stockwerke im gleichen Abstand angeordnet sind. Dass dem nicht so ist, habe ich erst bei der Anwendung der obigen Benutzer-definierten Ereignisse auf Deinen Aufzugsturm festgestellt. Du musst also die Höhen für die Zwischenstockwerke neu berechnen (im Verhältnis der vertikalen Abstände der Türrahmen).

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Michael,

vor 5 Stunden schrieb Michael65:

jetzt habe ich festgestellt, das im 1.Stock die Türen sehr langsam zu gehen.

548593316_FalscheKommasundSemikkolons.jpg.832efb28198dde67a4933280df002e67.jpg

Der Fehler liegt in den AnimationKeys für die Türen "Stcock1A" und "Stcock1B" an der Position "044" (im obigen Bild gelb unterlegt und leider auch schon in meinem letzten Beitrag falsch angegeben o.O). Da müsste eigentlich "014" stehen! Dann reduziert sich nämlich die Zeitspanne für die Bewegung der Tür von aktuell 3 Sekunden auf die eigentlich beabsichtigte 1 Sekunde.

Du hast übrigens in allen Deinen AnimatinKey-Defintionen einige Zustandszeilen mit dem falschen "Ende-Zeichen" (Semilkolon statt Komma oder umgekehrt) abgeschlossen (siehe rote Markierungen). Ich bin überrascht, dass die x-Datei trotzdem problemlos eingelesen werden konnte. Bitte beachte, dass der Abschluss ";;;" (3 Semikolons) nur in der jeweils letzten Zeile stehen darf und alle anderen Zeilen jeweils mit ";;," (Komma am Ende) abgeschlossen werden müssen. Diese Korrektur musst Du in allen AnimationKeys Deiner x-Datei durchführen.

Viele Grüße
BahnLand

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...