Considering posting a short video of the simulation run. That way people who don't have Plant Simulation can just use the video in their presentation. It looks good. Thanks.
this is awesome, thanks for sharing this walking worker with the nice graphics with us! I have exported your object to make it usable in all my models.
Using a little trick, you actually can do that.
Although it is impossible to create self animations directly on MUs you can create a viewer object on an MU. (I would suggest to do so in the class).
Such viewer objects are capable of self animations as every "normal" object (e.g. a SingleProc) is.
To create a viewer object in an MU that represents the entire MU, select the graphic of the MU and call "Make Viewer Object" from that graphic's context menu.
If there is no single graphic that represents the entire MU, you might want to group the graphics first.
If a nested MU (e.g. an Entity on a Transporter) shall be affected by the self animations you add to the "main MU" this way, you will want to forward this nested MU. To do so, you have to write some code in SimTalk:
Assume, t is the transporter that carries the entity and the self animating inner viewer object is named "Content". The SimTalk code "t._3D.AnimationObject := "Content"; " will configure the transporter (and its derivates) to forward every MU that enters the transporter to its nested viewer object "Content".
Now you have to add the needed animation paths to the nested viewer object (e.g. by copying via tables) and the Entity will follow every move of "Content"'s self animation.
We ran some tests, but it is not really obvious to get it running properly. I suspect that the current state of Plant does not allow a simple kinematic model of e.g. a walking human. One just needs a small kinematic chain, graphics and some simple rotations. All this stuff is available within Siemens! Maybe something for development to look at...
Thanks for you support anyway!
Actually, with some preparations, this is possible (if you can split your desired animation in several animating parts). As long as you don't want to model ball joints (which is possible but somewhat more difficult since the rotation axis would have to be redefined continuously), you can define arbitrary rotation (or other) animations:
Assume o is the object you want to animate. A simple joint has a fixed rotation axis so it is sufficient to define that axis once in the 3D properties dialog for this object - the rotation axis is found in the middle of the "Transformation" property page. Now you can plan arbitrary combinations and sequences of animations for that object and play them. In the case of a joint this is a pure rotation which can be planned with
o._3D.SelfAnimations.scheduleRotation(<startAngle>, <targetAngle>, <angleVelocity>);
If o is a pure viewer object with name "x", e.g. directly nested in the object p, this would be
p._3D.getObject("x").SelfAnimations.scheduleRotation(<startAngle>, <targetAngle>, <angleVelocity>); instead.
E.g. to rotate the base of the robot <r> from 0° to 180° with 90°/s, this would be r._3D.SelfAnimations.scheduleRotation(0, 180, 90);
The subsequent call
now starts the animation.
Base upon that pattern, it is possible to model quite complex animations.
Note that the time source for these animations is the event controller if a simulation is running and the CPU time otherwise.
To react on failures in your machine, you can pause your animation with