对于 html 和 SketchUp 中的循环数据

For Looping data in html and SketchUp

我在 SketchUp 中有一组数据,需要以 table 格式呈现给 html。我有一个硬编码的代码示例。

ID = [["Harry", "22", "Male"],["Sam", "19", "Male"],["Christine", "23", "Female"]]

  dialog = UI::HtmlDialog.new(
    {
      :dialog_title => "Personal Info",
      :scrollable => true,
      :resizable => true,
      :width => 500,
      :height => 250,
      :left => 200,
      :top => 200,
      :min_width => 50,
      :min_height => 50,
      :max_width =>1000,
      :max_height => 500,
      :style => UI::HtmlDialog::STYLE_DIALOG
    })

for i in 0...Facelayers.length do
     html = "
     <!DOCTYPE html>
     <html>
     <style>
     table, th, td {
       border:1px solid black;
     }
     </style>
       <body>
         <h2>Personal Info</h2>
     <table style='width:75%'>
       <tr>
         <td>Name</td>
     <td>Age</td>
     <td>Gender</td>
       </tr>
       <tr>
     <td>#{ID[0][0]}</td>
         <td>#{ID[0][1]}</td>
         <td>#{ID[0][2]}</td>
       </tr>
       <tr>
     <td>#{ID[1][0]}</td>
         <td>#{ID[1][1]}</td>
         <td>#{ID[1][2]}</td>
       </tr>
       <tr>
     <td>#{ID[2][0]}</td>
         <td>#{ID[2][1]}</td>
         <td>#{ID[2][2]}</td>
       </tr>
     </table>
     </body>
     </html>
   "
   dialog.set_html(html)
   dialog.show 
   i=i+1
  end

如果你在 SketchUp 中 运行 这个程序,你将得到以下输出...

输出非常完美,再好不过了。但问题是它是硬编码的。

您会注意到 'ID' 数组中有三个不同姓名、年龄和性别的人。但是如果我有四个人呢?还是五个?甚至十个?

这部分需要以某种方式循环播放。有人可以帮我创建一个循环,它将打印 html 所需的所有信息吗?

感谢您的帮助!

Ruby 脚本

ids = [%w[Harry 22 Male], %w[Sam 19 Male], %w[Christine 23 Female], %w[Rafael 39 Male]]
@rows = ""

@dialog = UI::HtmlDialog.new(
  {
    dialog_title: 'Personal Info',
    scrollable: true,
    resizable: true,
    width: 500,
    height: 250,
    left: 200,
    top: 200,
    min_width: 50,
    min_height: 50,
    max_width: 1000,
    max_height: 500,
    style: UI::HtmlDialog::STYLE_DIALOG
  }
)

ids.each do |data|
  @rows.concat "<tr><td>#{data[0]}</td><td>#{data[1]}</td><td>#{data[2]}</td></tr>"
end

html = "
  <!DOCTYPE html>
  <html>
    <style>
      table, th, td {
      border:1px solid black;
      }
    </style>
    <body>
      <h2>Personal Info</h2>
      <table style='width:75%'>
        <tr>
          <td>Name</td>
          <td>Age</td>
          <td>Gender</td>
        </tr>
        #{@rows}
      </table>
    </body>
  </html>
"

@dialog.set_html(html)
@dialog.show

结果