Mechanical Calculator Animated
For the final project of my Advanced Engineering Graphics course, groups were tasked with making an animation of a complex mechanical design. This course centered around communicating the functions of complex designs through animation, so the animation had to demonstrate core mechanical functionality of the design. I gravitated towards something purely mechanical, and the idea of a mechanical calculator came to mind. In a way, these were some of the first computers - using clever design in order to carry out complex computation.
The most prominent mechanical calculator is the Curta - capable of carrying to 5 decimal places, adding, subtracting, multiplying, dividing, taking square roots, and more.
An assembly view of the Curta calculator from vcalc.net
Yet, the device can fit in your pocket. It's an incredibly impressive design, but had unfortunately been taken by a group several semesters earlier and so was off the table. We then opted for another calculator with digital plans available - the Antares P6 desktop mechanical calculator. This Italian model is also capable of complicated operations, but given that there were nearly 1,000 parts to worry about, we were just going to demonstrate simple addition.
Moving the rotary assembly of a massive mechanical calculator
How Mechanical Calculators Work
All mechanical calculators have a major rotating axis - the way that operations are carried out is by turns of the handle of a calculator. So the challenge is to take some numerical input, and translate that to an output through this rotary motion. The answer? Gears. Lots and lots of gears.
Labeled assemblies of a calculator similar to the P6 from calmeca.free.fr
The best way to explain the function is with an explanation of the order of operations, referencing the labeled assembly image above:
The user changes the input levers to whatever number they would like to add.
The input display will change accordingly.
The user uses the rotary system to make the operation happen.
The accumulator receives input from the input levers, and the addition is made.
The operation counter ticks up one.
It's relatively easy to imagine how an operation like 12+5 would work - 1 operation adding 12 to a zeroed out calculator, and another adding 5 to that. But what about an operation where carrying is involved - like 12+9?
The solution is that the accumulator wheels each have a single gear tooth connected in between the 9 and 0 digits. This tooth comes in contact with a chamfered component of the input discs which slides over to the next 10's place for 1 digit before sliding back - thus ticking up the 1 (in the tens place) to a 2 in the 12+9 operation. That probably didn't make much sense - and that's the point of the project. I'll clear things up in a minute.
My group of 3 spent a lot of time planning out what the progression of the project would look like before we even started modeling. It took a while to figure out the workflow, but everything came together eventually.
First, we had to convert the drawings into parts in PTC Creo. Other CAD programs could have been used, but Creo offers the most powerful parametric design tools - with a lot of parts which were similar but not quite the same, the Master/Slave design feature and Repeat Similar Joint recognition saved a lot of time. For example, each of the 13 input discs were different, though they all had the same features and many of the same components. I was able to do work in Creo that would have taken me 3 times longer in Fusion. This all comes at the expense of Creo being a lot tougher to get the hang of.
Fortunately, the plans for this calculator were given as subassemblies, so everything was able to be assembled in Creo before moving on to a much more freeform software.
3DS Max - Assembly
Unfortunately, all of the constraints and joints made in Creo don't get translated into 3DS Max, our animating software of choice, upon importing. All the parts are in the right place but remain completely unconstrained. Given more time, I would have preferred to make a perfect model - go through every component and constrain whichever local translation and rotation axes were necessary to make the assembly realistic. This way, the one master model could be used for every animation - gears would turn automatically and everything would work exactly the way that it would in the real work thanks to the wiring of motion and constraints of transformation. Unfortunately, like many final projects, there had to be some compromise. In order to efficiently make the animations, different models were used for different animations, hiding or freezing non-critical components. So, we had to figure out what animations we wanted and make the appropriate models
3DS Max - Rigging and Animation
Next was actually keying all of the frames for the animations. Since we imported our parts as assembled, and wanted to show assembly animations, we had to work backward - animating the disassembly of components and reversing the footage later. For certain components, more than just the typical transformation was needed to efficiently make animations of functionality, so I had to learn how to use both motion wiring (i.e. for every degree that A rotates, move B by 'x' mm in Z) and Master/Slave motion techniques (i.e. when A is in position X, B is in position Y, C is in position Z. When A is in position X', B is in position Y', C is in position Z'). There would have been a lot more of this in the 'perfect' model, where almost all motion becomes automatic.
After animating the disassembly and/or motion of models, the camera and focus position was animated in order to get a dynamic view of what was being shown at each point during an animation.
3DS Max- Materials and Lighting
This is where things start getting a little tricky. Between the three of us, we all had to have the same materials and the same scene and lighting conditions across our non-shared files. So, I thought it was best to first assign materials to the overall model, then separate that into the smaller animation models, and then make a master scene file which each model would be imported into. It took a lot of work to get the models looking realistic, and it still didn't look quite as good as I would have liked. But with the limited rendering power that a college students laptop can supply, I don't think we did half bad.
3DS Max - Rendering
After making sure that everything in the animation was just right and after rendering a decent amount of sample frames, it was time to render everything. We had to pick a mediocre rendering engine for the project due to the time and computation constraints, but that doesn't mean that it was easy. My laptop pulled quite a few all-nighters rendering hundreds of frames of my animations while I slept - uneasily at that. But eventually, all of the footage was ready to go.
After Effects - Editing
After some minor fixes to the actual footage and the addition of a bit of text, everything just had to be stitched together and music had to be added before the project was finished.
A More Effective Explanation
Now that I have the animations to assist in my explanation, let's go through those steps again:
1. Input Levers
The rotation of the input drives out teeth of the disc, making it act as a gear:
2. Input Display
As the levers are driven, they interact with the teeth of input display gears, changing the displayed digits
3. - 4. Addition Operation
The driven out teeth of the input discs interact with those of the accumulator, changing the display of the accumulator.
4a. Addition Operation with Carry
The tooth on the accumulator gear bumps a component near the input discs up. This component drives the carry pin of the disc over one digit, thus pushing the next accumulator disc forward one digit.
5. Operation Counter
There is a single tooth (sort of) fixed to the rotary input which drives the counter gears forward once every turn.
Putting it all together was a lot of work, but I'm proud of the final video, below:
My animations run from 1:00-3:00 and 4:20-6:00