Artwork > Finished Works and Works in Progress
Paddle Steamer engine
johnar:
great to see it coming together. (awesome badge. ;) )
Are you really going to be able to start it up and get it running. (i'm sure you can). That will be so awesome. Would be, maybe, even awesomer if you can get a decent fire going inside the firebox as well. :)
hoping you still hav time to work on this machine....inspiring....
A little off topic but... inspires me to look into robotics, hydraulics, pistons etc..
Nice stuff ENSONIQ5 :)
ENSONIQ5:
The modelling isn't really finished but couldn't help jumping ahead and animating this SOB. Totally....doing....my....head....IN! Just setting up a short running cycle, 4 or 5 revolutions of the crankshaft, and it's really taking forever. Some elements just have to be keyframed at every frame otherwise they want to rotate the wrong way (I know why it does this, but it's still a pain!). And it would be great if you could hide elements in wireframe mode as well as the other modes (or is there a way and I've just forgotten....!), it's really difficult lining everything up with all the objects showing.
I was tempted to script all the motion as I've done before but there are two things that bother me with this. It is very difficult to script the motion of a conrod accurately, it isn't just a sine-wave reciprocal with a lateral motion in a single axis, the wave is slightly skewed ('egg shaped' is the best analogy). This basically means that the big ends don't track the crankshaft correctly (though this could possibly be countered in the script...something to think about...)
The main reason I am avoiding scripts is that there is no way to pass variables from one frame to the next, making it EXTREMELY difficult to animate acceleration and deceleration. If I can figure out a way to do this I may create a second scene with scripted motion instead (see, THAT's why I love Anim8or!). Hopefully will have something to show soon...
Blick Fang:
where's the like button? ;)
Raxx:
Hey ENSONIQ5, not sure why you're having issues hiding elements in wireframe mode, if you select an element in the scene and press 'h' or go to Edit->Hide, it works as expected.
As for your second dilemma, I can't really tell what's supposed to be going on at the other end of the conrod, so not sure. But there's always the trick of parenting the rod to one end that's moving or rotating, and then set it to face the other end piece, and so long as the two ends' motions are accurate then it'll look like it's working correctly.
For acceleration/deceleration, you'd have to use if statements based on what frame it is supposed to start accelerating/decelerating, to set the acceleration/deceleration multiplier based on either the frame or time squared or to-whatever-power, minus the number of frames or time that has already elapsed at the start of the acceleration/deceleration.
ENSONIQ5:
The reason I was having trouble hiding the elements was that it been so long since I've animated in Anim8or that I forgot you could. I was using visibility. *slaps forehead* Thanks Raxx!
I am using a lot of parent/child relationships but they can only go so far. Taking the near-side valve gear as an example, the upper valve drive rod is a child of the crankshaft, so it pivots smoothly around the eccentric on the shaft. I could then have the gear 'slider' as a child of the upper valve rod, and the lower valve rod as a child of the gear 'slider', but then the lower valve rod has to pivot smoothly around the other eccentric on the crank shaft. It's a "closed system" rather than a hierarchy, so at some stage manual tweaking to line things up is inevitable. I realise the above probably doesn't make any sense...
The gear mechanism's motion is so darned complex, the mechanical design causes some elements to move in very unusual patterns.
Regarding scripting acceleration, the problem occurs when using Frame or Time as an 'input' into a motion script, the output being the angular position of the element. Even using IF statements to govern the speed of rotation, as the motion is not cumulative there is no way for the system to calculate the angular position the element would be at if it had changed speeds over previous frames. For example, lets say an element decelerates from 100 RPM to 20 RPM from frame 500 to frame 600 by using IF statements in the script. At frame 600, the script will set the 'speed' to 20 RPM, and hence calculate the angular position of the element accordingly, but as it is not cumulative the actual position of the element will be set as if it had rotated at 20 RPM for all previous 599 frames. In a nutshell, the script defines the angular position of the shaft, not the speed, and there's the problem.
Previously I have used invisible objects as a kind of variable, in one instance I had all the scripts get the scale of an invisible sphere as a multiplication factor, which was great at keeping all the elements in time and I could change the speed by enlarging or shrinking the sphere, but the same acceleration/deceleration issue occurred if I tried to animate the sphere's scale. When decelerating, the rotating elements actually ran backwards, which makes sense when considering the above paragraph but was dang irritating. I even attempted to use invisible objects as running variables, having the script change an attribute of the object at the end of the calculation (ie. 'speed'), then picking it up at the start of the script for the next frame, but Anim8or wasn't having any of that and delivered a 'circular script' warning.
As I type this I'm thinking there might be a kind of 'best of both worlds' solution here. If a single element's motion was keyframed to include accel/decel events, for example the crankshaft, then every other moving element could use a script to pick up the crankshaft's angular position and use it to define its own angle or position. There'll be a lot of trial and error to get the factors right but it would be preferable to keyframing the whole thing by a long shot. My scripting is rusty as hell but I'm sure a bit of WD40 will get the gears moving again!
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version