Yes; Animate() takes the range of values and divides the sample into intervals to produce a series of drawings, snapshots. So this is like a timeline. You can dictate the time period with the animatecustom(), first value, I don’t bother with easein or out.
With your example of animationslow you placed 3 values, so first click it samples 1 to 2, second click: 2 to 3, then third: 3 to 1. Stringing values has merit for multiple clicks. but generally, two is sufficient, then on next click, it returns to original. Careful not to have same values in string, as will always go to the first instance. You can create a car(?) that updates without returning to original, by using current() instead of fixed value. With current() must convert by 2.54 if using centimeters as it returns inches.
note: Current() is required for saved DCs if you want them to use the same size values with a swap. An example of a C cannel swap with a L lintel will take same length if on Y axis with current(“leny”)*2.54
I used smallest() as first period, could use if(steps<=28,steps,28) maybe neater?
intermediate would be if(and(steps>28, steps<=60), steps-28,32)
Any step could be multiply or divided for position to speed or slow the animation.
You could have multiple actions at any period
You can plug a number in to the “steps” attribute to test or see the frame at that value.