Imagine a 3D printer for a moment. The extruder can move along three axes; (X,Y, and Z). Now, imagine that you are a programmer, and you need to write code that will allow you to control the position of the extruder in 3D space, using only the X & Y position of a mouse cursor (No buttons or scroll wheel, just the position of the mouse).
When you move the mouse up, should the extruder go higher on the Z axis, or should the Y axis move deeper? Maybe a combination of the two? How do you determine that? How do you convey a 3D position using only a 2D input device?
This seemingly impossible scenario is a common challenge that any 3D modeling software must face, and I think SketchUp does surprisingly well in this regard.
In this tutorial, I will help you better understand how SketchUp tries to “read your mind” in determining which direction you intend to move objects when you are trying to move them along three axes simultaneously. I will also share 4 tips on how to force SketchUp to move objects exactly where you want them to go.
Watch the video or continue below
There are many times when you need to move an object to a position that has a different X Y and Z coordinate than its current position. When this occurs, the first thing most people will try to do is move it directly into position, only to find that SketchUp will not move the object into place, no matter how hard you try.
3D Movement Priority
Now there is a lot of calculating that SketchUp is doing “behind the scenes”, so to completely reverse engineer SketchUp’s inference system is sort of beyond what I’m trying to do here. And that’s not really the point of this tutorial anyways. The inference system is supposed to feel very intuitive, natural, predictable, and obvious. And I think it does a pretty darn good job at that. However, I think it is helpful to at least dive in just a little bit to try and understand exactly what SketchUp is doing.
Like I said, there are several factors that determine the “strength” of SketchUps various inferences, whether it’s a point lock, edge lock, face lock, or plane lock, so there are several combinations of things you can do to increase the likelihood of SketchUp moving an object the way you intend it to move.
The position of the camera plays a strong role in suggesting to SketchUp how to move the object. You might consider it to be an “invisible” third input in addition to the X and Y movement of the mouse. When you move an object across empty space, SketchUp will primarily move an object along a single plane (unless you are snapping to some other geometry in your model). The point from which you start the move will always intersect the plane, but the orientation of the plane will strongly depend on the orientation of your camera. The plane will always align with either the X|Y, X|Z, or Z|Y plane.
When you orbit the camera to a top view (looking down on your model), SketchUp will strongly favor locking to a plane perpendicular to the Z axis. If you align to a front view, the movement will lock to a plane perpendicular to the green axis. The same thing happens with the red axis.
Most times, you’re not modeling while the camera is perfectly aligned to an axis, so how does SketchUp choose which plane to lock to when you’re viewing the model at an angle?
There is a certain relationship between the mouse position, and how the axes origin is positioned between the camera view and the horizon in the distance. But this gets a little too nitty gritty, and really isn’t something that needs to be explored. Just know that if you move your mouse to a different position on the screen, SketchUp may jump to a different plane orientation which more closely represents the direction you’re trying to move.
So it’s a combination of the camera position and mouse position that determines which plane SketchUp will lock to, when moving an object across empty space.
Snapping to Geometry
When you move an object along “empty space”, it will always align to a plane (as described above). But as you hover over other geometry in your model, you begin to enter a minefield of inference points and faces to snap to. Snapping to Geometry will always override the default movement plane.
You can snap to end points, edges, faces, axes, temporary tracking from points (among other things) in your model. Learn more about the SketchUp Inference system here. The tricky part, is that the entities that you are moving can actually get in the way of what you are trying to snap to. This results in SketchUp “not seeing” the snap point (because they are hidden behind the faces of the object you are moving), and reverting back to the default plane of movement.
4 tips for Geometry Interference
It can be frustrating when SketchUp isn’t snapping to what you want it to. Here are several tips for solving these issues.
1 – Keep the destination closer to the camera – I’ve been trying really hard to figure out the best way to describe this tip. Basically, if the point you are trying to move to is further away from the camera than the starting point, you are less likely to snap to it. Instead, orbit the camera so that the destination point is closer to the camera than the starting point. SketchUp prioritizes things that are “in front of” other things.
2. Turn on XRay mode – With XRay mode on, (View > Face Style > X-Ray) you can see through faces, and the SketchUp inference engine will always prioritize edges and points. This is great for simple models, but when you have a ton of geometry in your model, there are too many points to snap to, and it can be hard to identify which point you actually want.
3. Temporary Axis lock – If you’re having trouble snapping to a point because the entities you are moving are getting in the way, you can temporarily get them out of your way by locking their movement to a random axis. After you’ve started a move, tap an arrow key to lock an axis, and this will allow you to hover your mouse over any point in your model while keeping the entities you are moving out of your way. Once you’ve locked onto the point, tap the arrow key again to release the axis lock, and your geometry will immediately snap to that point. Be sure not to move the mouse (or else you’ll lose the snap), and click to finish the move.
4. Use a temporary guide surface – Most times, when I start a model, I’ll create a large rectangle on the ground and make it a group. This surface acts as an inference guide, since SketchUp will almost always prioritize snapping to a face over snapping to a default movement plane.
The absolute most reliable, safe, and accurate way to ensure a movement in 3D space, is to not move in 3D space (all at once). Instead, move the object along one axis at a time. When moving an object, tap one of the arrow keys to lock the movement along a single axis. Repeat this for the other two axes.
The disadvantage is that it’s slower, but you’ll have precise control over the distance along each axis because you can type in a distance for each axis individually, or choose to snap to another point in your model for some.