"mechanical" animating

Is there a way to stop my mesh from being scaled by bones in pose mode?

The picture explains the problem better.

Include the .blend please but maybe giving it a constraint of copy rotation, location?

Check that you don’t have any object-level scaling on either the mesh or the armature; ‘Apply’ it (Ctl-A) if you do.

Best wishes,

Aha! I’ve figured it out. I had every part of it in the same vertex group. (so, for example, the lever action was in the group “lever” as well as “wholegun”)

This was wrong, instead of doing that I should simply have made the lever bone the child of the “wholegun” bone.