problem with constaints

Why wont pin2a stay in its own “plane”
This thing works when it is aligned with the xyz coordinates.
But put it all at an odd angle…
And the pin2a goes sideways!
Any other solutions?
This is sooo frustrating!


Well the problem is that for some reason you have decided to add your model and everything else in it from an arbitrary user view instead of having it align with the global axis by adding from the top/front/side views . By doing that you have given everything a rotation which is screwing up your constraints . Anything with more then one axis to track/copy is behaving oddly, like pin2a not staying in its axis, etc …

The proper/easy thing to do when you intend to animate something is always to add all objects from the top view (Numbpad 7 … remember Blender’s default view when you first opened it ?) or at the very least from one of the default front/side views and then Ctrl-A to apply the scale and rotation . This especially true for empties because they will align themselves to the angle of the view at which you first add them and you cannot (for some reason) re-align them once they are added not aligned to the global axis .

You’ll kind of have to start over but it doesn’t seem that bad … the train and tracks are aligned to each other, which are the more complicated parts …

  1. get rid of all your parenting/hierarchies by selecting the child objects and hitting Alt-P to clear parents .
  2. just go ahead and delete the empties (or if you want to see how badly they are aligned to the global axes, leave them but they are useless at this point)
  3. now select all objects and hit Alt-R to clear rotation and Alt-G to clear location, once you do that your tracks/train will actually sit on the 3D grid …
  4. finally move your wheels back into place/scale them (and if you scale or rotate them in Object Mode be sure to Ctr-A to apply the scaling) and reparent and add new empties (from the top view !) parent the rods/pistons add constraints etc. and your animation should work out much better .

And if for some reason you need to align your train to the view you had before just add an empty and make it the uber parent of everything in your scene, once you do that the animations will still work fine even though you are not aligned to the global axes …

I have the train on another file agligned to the axis .
but for the camera view it has to be at an odd angle.
Please explain about the "add an empty and make it the uber parent of everything.

Just add an empty make it the parent of the train and anything else that the train is not the parent of and when you need to align it to the view you want just rotate/align the empty and every thing else will follow except that they will have local transformations that are not affected by the empty’s rotation …

Come to think of it didn’t I screw up a few posts ago about how you align an object to an empty already positioned in 3D space ? Well you could do that to an empty aligned to that position and Ctrl-Shift-P to move/align the rest of objects to that point … though since you have some objects not in the train’s parenting hierarchy (like the empties) you might want to add the “parent” empty or you could make the empties that are not parented the children of the train like the wheels … this is all to keep the relationships you set up intact, when you transform the parent object the children will follow keeping their relationship to each other as well as the parent in 3D space the same even though you have changed the original location rotation etc.

Also hitting N to bring up the Transform Properties window will help in keeping all this orientation stuff easier to follow .

I’m a bit slow.
I parented the train to the new empty.
and rotated it.
but it don’t quite get it about what to do with the other emptys that move the rods etc

Make them : 1) the children of the train mesh/object or 2) the children of the the empty/parent of the train mesh/object .

I’d do the first if that doesn’t create loops in the constraints (meaning it will cause odd unwanted effects in the animation or if you want to get “technical” just open the DOS “black box” window to see if there are lines that say “cycle in” something or other) … if it does just do the second option .

what do i do with the empties that are already parented to other empties?
Can i just orient the empties to the same -relative - orientation of the main object?
as everything that can be-is parented to the main object - the train.
why do i need an uber empty?
thanks for your patient help

You’ll have to get rid of the empties you have in the file you posted and like I said get rid of the parenting relationships you have before you Alt-R and Alt-G … orient your objects to the global coordinates then add new empties (from top view) to where they are currently positioned relative to each other and then reparent your objects, then add the constraints etc.

You can’t use the empties you have now because they are oriented in an odd way relative to the global axes and you cannot change this for some reason in Blender . You just need to add new ones that are properly aligned to the global axes from the top view .

If you have the train as the main parent then no - you don’t need an uber parent … that was only a suggestion .

And Just make sure the parenting relationships do not loop …