调用distance_to_line Sketchup Ruby API时返回的内容

时间:2014-01-14 03:26:00

标签: ruby sketchup

大家好

我试图获得从一个3D点对象到一条线的距离。这是我的代码:

line_x = [Geom::Point3d.new(0,0,0), Geom::Vector3d.new(1,0,0)]
a = [10,11,0]
distance_x = a.distance_to_line line_x
puts distance_x

这是Sketchup ruby​​控制台中的输出。

11"

11"

我尝试使用distance_x.typename但是它有错误:11.0的未定义方法`typename':长度

我认为distance_to_line的输出是一个数字。为什么我得到两倍的结果,而我只是一次拨打电话 请帮帮我,谢谢

2 个答案:

答案 0 :(得分:1)

Array.distance_to_line返回一个长度。

line_x = [Geom::Point3d.new(0,0,0), Geom::Vector3d.new(1,0,0)]
[Point3d(0, 0, 0), Vector3d(1, 0, 0)]
a = [10,11,0]
[10, 11, 0]
distance_x = a.distance_to_line line_x
11.0
distance_x.class
Length

是的,docs对返回类型不是很清楚。

答案 1 :(得分:0)

之前我使用过SketchUp,但没有使用Ruby脚本。我刚刚尝试过,我看到控制台每次输入一行时都输出返回值(除了输出任何输出)。但我无法准确再现你所看到的内容。

如果我一次输入一行,我会在第二行后面获得11.0,然后在最后一行之后输入:

11"
nil

'nil'是#puts实际返回的内容。

如果我将脚本保存在文本编辑器中并将其加载到SketchUp中,我会改为:

11"
true

'True'是根据SketchUp documentation“文件中没有语法错误”时的返回值。

但正如我所说,我无法准确再现你所看到的内容。

如果您将最后一行更改为'distance_x'(删除单词'puts'),您会看到什么?对我来说,这只返回值'11 .0'。