Sketchup.send_action "viewTop:"
Sketchup.send_action 'viewPerspective:'
要将当前视图变为顶视图,你可以使用 SketchUp Ruby API 的 set_view
方法和 Camera
类。下面是示例代码及其详细解释:
# 获取当前模型的相机对象
camera = Sketchup.active_model.active_view.camera
# 将相机视角设为 Top 视角
camera.set_eye([0, 0, camera.target.z + camera.height * 2])
首先,我们使用 Sketchup.active_model.active_view.camera
方法获取了当前模型的相机对象,并将其存储在 camera
变量中。
然后,我们使用 set_eye
方法设置相机的眼睛位置,以实现 Top 视角的效果。set_eye
方法需要传递一个包含相机位置的数组参数,该数组的三个元素分别代表相机位置的 X、Y、Z 坐标值。
在这里,我们将相机位置的 X 和 Y 坐标值都设置为 0,因为 Top 视角相机在平面上正对着原点。而相机位置的 Z 坐标值是通过计算得到的,使用了相机的目标高度和参数值 2 来计算。这样可以使相机位于指定高度上方,以正视 Top 视角。具体计算公式如下:
z = camera.target.z + camera.height * 2
其中,camera.target.z
是相机目标的 Z 坐标值,camera.height
是相机的高度。
camera.set_target([0, 0, camera.target.z])
接着,我们使用 set_target
方法设置相机的目标位置,这里我们将其设为原点。与 set_eye
方法类似,set_target
方法也需要传递一个包含坐标值的数组参数,分别代表目标位置的 X、Y、Z 坐标值。
需要注意的是,由于我们已经将相机的 Z 坐标值设置为了目标高度加倍,所以在这里无需再次调整 Z 坐标值。
camera.up = [0, 1, 0]
最后,我们使用 up
属性来设置相机的上向量。在 Top 视角下,上向量应该是垂直于地面的,即 [0, 1, 0]
。
通过以上三步操作,我们就可以将当前视图变成 Top 视角了。