To fully control an object (a rigid body) in 3D-space one needs in total of six controls that operate with two directions each. From Wikipedia:
Six degrees of freedom (6DoF) refers to the freedom of movement of a rigid body in three-dimensional space. Specifically, the body is free to move forward/backward, up/down, left/right (translation in three perpendicular axes) combined with rotation about three perpendicular axes, often termed pitch, yaw, and roll.
When the controls are restricted to a 2D surface, it's not possible to get all translation or rotation operations to be mapped to similar actions. (Meaning, there is no way to make a moving operation on more than two axis simultaneously.)
Controlling a 3D-object with a 2D-plane is perhaps easiest with a surface that is assumed to be able to track multiple input points, such as most tablets or touch operated smartphones. For the following, I assume that world's
xy plane is the 2D surface with the
z-axis going into the 2D-surface. (Or coming out, it doesn't really matter.)
The rotation of an object on
y-axis can be done by scrolling up/down and left/right and on
z-axis by a two-finger rotation.
The moving of an object on
y-axis can be done by two-finger scroll up/down and left/right and on
z-axis by pinch/zooming.
So, there are two "similar" types of action for two axis and a "different one" for the third axis, with both moving and rotating - the required six for complete control in total.
As what comes to "difficulties to fix the orientation of the object" - if the software is about furniture in rooms, like the chair comment might suggest, it might be useful to alleviate the user's rotating actions like allowing the objects to "snap to axis" when they are in level with the planes.