SketchUp的自动化实战 (二)获取内部空间
之前在做光伏插件的时候用到了投影功能,
投影功能有很多应用场景,
今天我们来制作一个获取柜体 内部空间 的插件。
思路分析
-
通过
InputPoint.pick
获取鼠标在内部空间点击的位置; -
通过
Model.raytest
获取当前点往XZY轴六个方向的投影面; -
通过获取内部空间的5个投影面推断出开口面;
我们定义一个工具类去实现释放鼠标左键的响应的事件,
再通过InputPoint.pick
获取点击模型上的点:
对应代码:
class InnerSpace
# ...
# 左键松开事件
def onLButtonUp(_flags, x, y, view)
# 通过视图获取点坐标
pick_point = Sketchup::InputPoint.new
pick_point.pick(view, x, y)
pick_point.position
# ...
end
# ...
end
再通过Model.raytest
往XYZ方向投影,
收集投影线击中的物体: