2
$\begingroup$

(For those not familiar with the Ross Yoke Engine, this animation seems to be the clearest available animation of how the Stirling Engine works with the Ross Yoke. I didn't move the animation inline because it is embedded in the web page. - Marty)

So I am animating a Stirling engine and I'm trying to rig a proper Ross Yoke instead of a regular crank shaft, like so: enter image description here and can not, for the life of me, figure out how I would include the slide pin action. Basically I wind up with both pistons moving in phase. enter image description here I have the file in dropbox HERE

For the record, yes I do know the slide pin is way too low on the yoke; I will address that once I can actually figure out this rig. I've used blender for years for CAD stuff and I'm basically a novice when it comes to animation and rigging. Any help would be greatly appreciated, as I've basically exhausted my knowledge on the subject and whatever tutorials I can find.

$\endgroup$
8
  • 1
    $\begingroup$ blender.stackexchange.com/questions/102990/… $\endgroup$ Commented May 27, 2022 at 13:58
  • $\begingroup$ it is always a good idea to link a video how it should work - not everybody know how the Stirling engine is moving.... ;) $\endgroup$
    – Chris
    Commented May 27, 2022 at 15:32
  • $\begingroup$ @DuarteFarrajotaRamos thank you but it's the ross yoke part that I'm trying to get working and those are also alphas style Stirling engines, but on a crankshaft instead. $\endgroup$
    – Rebel Rae
    Commented May 27, 2022 at 23:14
  • 1
    $\begingroup$ I've added a pointer to an animation, but it's embedded in its web page and can't be embedded here, as far as I can tell. For those unfamiliar: Ross Yoke is a means of converting the linear motion of pistons in a Stirling Engine into rotational motion. $\endgroup$ Commented May 28, 2022 at 0:20
  • 1
    $\begingroup$ i can offer you this solution: [1]: i.sstatic.net/I33Nn.gif but....it has 3 dependency circles, and the positioning of my bones isn't perfectly right, but it works (and of course you can position them right and it will still work). The gif is exactly from my solution. Here are a lot of "knowitalls" and perfectionist - for them the solution is of course bullshit, but if you are interested in a working solution - i will offer that to you. But i just wanna be sure you are searching a solution, not perfection.... $\endgroup$
    – Chris
    Commented May 28, 2022 at 8:48

2 Answers 2

2
$\begingroup$

You mention a slider, so this assumes your Ross Yoke is of the type in which the yoke is constrained by a slider-post, which engages with a slot in the yoke.

This rig is arranged in the space of a 'Root' Empty, which enables it to be rotated and moved around without falling apart. That introduces one constraint that, as far as I can tell, would not be necessary if it was fixed to the World. We are looking down Z for these illustrations.

There is a right-triangle in the mechanism that lets us use Pythagoras to determine the height of the piston-heads:

enter image description here

If we know the location of right-hand end of the yoke, (the length of a) and the length of the piston-rod (c), then the height of the piston-head (b) is sqrt( b**2 - a**2 ) .

enter image description here

  • The Root is the cube at the base. The light blue rotating element, the little yellow slider-post, the circular Empties at the yoke tips, the pink piston-heads, and the dark-blue cylinders are all directly parented to it.
  • The green yoke's origin is at its lowest point, and it is parented to the rotator, off its center.
  • The yoke has a Locked Track constraint, orienting its Y towards the slider-post.
  • There are 2 plain-axis Empties, ('yL' and 'yR') parented to the yoke, positioned at its tips.
  • The 2 circular Empties ('yLL' and 'yRR') are parented to Root, but with Copy Location constraints on 'yL' and 'yR', This is to give us access to the location of the yoke-tips in Root space, by using 'Local Space' in a driver.

The length of the piston-rod is 3. The Y of the the right-hand piston-head ('pR') is driven by a function of the X and Y of 'yRR', and the X of 'pR' itself, using Pythagoras:

enter image description here

..similarly on the other side.

  • The piston-rods are parented to the Empties at the yoke-tips, and also have Locked Track constraints, aiming them at their respective piston-heads.

enter image description here

If your linkage is of the other type, constrained by a rocker arm, then there's a similar solution, (The best one I think of does use bones, with an IK elbow).. I'll add that if necessary.

$\endgroup$
2
$\begingroup$

Update:

Be aware -> i renamed some of the bones.

I made it to rig it without dependency cycles

Bone Rotated has now an IK constraint:

enter image description here

There is now an empty which has a copy location constraint to the rotator bone.

enter image description here

  • the rotated bone is now flipped and parented to the side bone

result:

enter image description here


ok, as i already mentioned in the comments, there are dependency cycles in my rig - so Blender says, there is an error, but...the animation works fine.

Also my positioning of some bones are not completely in the right place, but by changing the length + position of some bones you can correct that easily. I was just too lazy to correct that...

So...create an armature, give that bone some x rotation + keyframe, press Shift-E in the timeline -> constant interpolation, and you get the rotation of the lowest bone.

enter image description here

In edit mode, select the tail of the bone, press E and extrude another bone (Bone.003 in my case).

Add another bone (Fixed) like this, make sure it is not parented.

enter image description here

Now add damped track to Bone.003 with track to Fixed.

enter image description here

And add damped track to Fixed with track to Bone.003 (this will cause the dependency cycle).

enter image description here

Now copy bone 3 and move them a bit to the left and the other one a bit to the right and make sure that both are parented to bone.003, so they will move and rotate with bone.003.

enter image description here

From Bone.005 extrude another bone (left cylinder mover) straight up. (make sure it's parent is Bone.005 which it should be automatically if you extruded it with E).

Now extrude another bone from that newly created bone (Left cylinder). This bone i just created so that i could copy the z location from it.

Now add another bone for the cylinder movement, which has no parent (left cylinder). It gets this copy location constraint:

enter image description here

result:

enter image description here

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .