I am trying to animate an object so that it appear gradually one layer at time as though it was being 3D printed - almost like a timelapse of the object print
The easiest way is probably the boolean modifier. Set it to difference or intersection, whichever works better for you. Then, create an object (probably a cube) that either cuts off the parts you don't want or just includes the parts of your object you want the camera to see. Then animate the cube to move upwards as slow or fast as you want it to move. Obviously, set the cube to not be rendered.
Two downsides of this method: You need a clean topology, otherwise the boolean modifier might create awkward results. The more vertices your object has, the longer the first initialisation of each frame will be once you hit the render button and especially when editing. For a couple of hundred or thousand of vertices this is probably no concern though.
Another method might be to animate the camera's clipping. This will not create a filling face on the top, however. And the camera has to be on top of your "3d print". This method is very rudimentary in general.