You can animate an object or flowitem using 3D frames. This is done by creating multiple 3D shapes. Then within FlexSim you can tell an object which shape frame to display. This is useful if you want to change the look of an object like a Flowitem as it progresses through a model. An example of this might be a bottling line. The bottle starts out empty, then is filled and then a cap is placed on top. This could be displayed by using three different 3D shapes.
In versions of FlexSim prior to 7, shape frames had to be specified by the filename of a 3D shape. Now, shape frames are assigned manually by:
- Adding a Shape Frame to the object
- Setting a name for the frame
- Specifying the 3D shape path
Once added, shape frames can be changed either by name, or index. See the Commands below.
Shape frames can be modified in two places:
- In the Quick Properties window under Shape Frames (see below).
- In the General tab page of an object's properties window.
Quick Properties
The shape frames section of the Quick Properties window does not always display for objects. For a FixedResource, TaskExecuter, or other non-flowitem object, the Shape Frames section will only show up if that object already has shape frames assigned to it through the General tab page.
Flowitems however, always have the Shape Frames section displaying. This is because it is far more common to change the shape of a Flowitem as it changes through the model run, than it is to modify a Processor or Operator.
Shape Factors - When a shape frame is added to an object, it is given shape factors so that the shape will display inside the yellow box of the object. Clearing the shape factors from a shape frame will cause the shape frame to draw without regards to the object's yellow box, or the actual size of the 3D shape. Resetting the shape factors will reapply the originally calculated shape factors.
Commands
To change an object's shape frame or to query an object to find its current shape frame, you'll need to use the following commands:
setframe(current, 1); setframe(current, "Bottle2"); int curframe = getframe(current);
For convenience, object triggers like the OnReset, OnMessage, OnEntry/OnExit, OnLoad/OnUnload, etc. have a preset for changing an object's shape frame.