簡體   English   中英

調用distance_to_line Sketchup Ruby API會返回什么

[英]what is returned when calling distance_to_line Sketchup Ruby API

大家好

我試圖獲取從一個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紅寶石控制台中輸出的。

11"

11"

我嘗試distance_x.typename,但是它得到了錯誤:11.0:Length的未定義方法'typename'

我認為distance_to_line的輸出是一個數字。 為什么在我一次叫入推桿的同時得到雙倍的結果。
請幫助我,謝謝

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

是的, 文檔對返回類型不是很清楚。

我以前使用過SketchUp,但沒有在Ruby腳本中使用過。 我現在已經嘗試過了,每次輸入一行時,控制台都會輸出返回值(除了任何puts輸出)。 但是我無法完全復制您所看到的內容。

如果我一次輸入每一行,則在倒數第二行之后得到11.0 ,然后在倒數第二行之后得到:

11"
nil

#puts實際上返回的是'nil'。

如果將腳本保存在文本編輯器中並將其加載到SketchUp中,則會得到以下信息:

11"
true

根據SketchUp文檔,當“文件中沒有語法錯誤”時,“ True”是返回值。

但是正如我所說,我無法完全復制您所看到的內容。

如果將最后一行更改為“ distance_x”(刪除“ puts”一詞),您會看到什么? 對我來說,這只是返回值“ 11.0”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM