sketchucation logo sketchucation
    • 登入
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    Ruby script for selecting color

    已排程 已置頂 已鎖定 已移動 Developers' Forum
    62 貼文 4 Posters 1.9k 瀏覽 4 Watching
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • nithi09N 離線
      nithi09
      最後由 編輯

      Hi TIG could you look at it my code I want to collect when user enter values in side the loop.but I get last value. How do I get all values if user choose 3 units? I mean Total projection
      here is my code

      <span class="syntaxdefault"><br />require </span><span class="syntaxstring">'Sketchup.rb'<br /><br /></span><span class="syntaxdefault">class Testmenu<br /><br />def initialize</span><span class="syntaxkeyword">()<br /><br /></span><span class="syntaxdefault">    ents </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />    group </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> ents</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_group<br />    ents </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> group</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />    <br />    prompt </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"Enter frontwall height; "</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Front wall custom height; "</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Enter backwall height; "</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"How many units on A wall; "</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    default </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"81\""</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"108\""</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"4"</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    list </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[[</span><span class="syntaxstring">"81\"|91\"|96 3/8\"|Custom height"</span><span class="syntaxkeyword">],</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    result </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> inputbox </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">prompt</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> default</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> list</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"A wall of Sunroom"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    <br />    return  if not result<br />    <br />    custom </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    <br />    if custom </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom height"<br /></span><span class="syntaxdefault">        <br />        front_height </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        back_height </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        num_unit </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_i<br />        <br />    else<br />        front_height </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        back_height </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        num_unit </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_i<br />    end<br />    </span><span class="syntaxcomment">#if (back_height - front_hieght) < <br /></span><span class="syntaxdefault">    show_unit_number </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 1<br />    <br />    while num_unit </span><span class="syntaxkeyword">></span><span class="syntaxdefault"> 0<br />    prom </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"A wall unit  #{show_unit_number};"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Door size; "</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom Door size;"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Window Size; "</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom Window size;"</span><span class="syntaxdefault">    </span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    values </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"Door"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    list </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"Door|Window"</span><span class="syntaxkeyword">,[</span><span class="syntaxstring">"87\"|81\"|75\"|69\"|63\"|57\"|Custom Door"</span><span class="syntaxkeyword">],</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,[</span><span class="syntaxstring">"87\"|81\"|75\"|69\"|63\"|57\"|51\"|45\"|39\"|33\"|Custom Window"</span><span class="syntaxkeyword">],</span><span class="syntaxstring">""</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    result_2 </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> inputbox </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">prom</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> values</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> list</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"A wall Door & Window"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    return nil if not result_2<br />        if result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Door"<br /></span><span class="syntaxdefault">                custom_door </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">            if custom_door </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom Door"<br /></span><span class="syntaxdefault">                door_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />                window_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0<br />            else<br />                door_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />                window_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0<br />            end<br />        <br />        elsif result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Window"<br /></span><span class="syntaxdefault">                custom_window </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">            if custom_window </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom Window"<br /></span><span class="syntaxdefault">                window_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />                door_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0<br />            else<br />                window_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />                door_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0<br />            end<br />        <br />        end<br />        <br />    num_unit </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> num_unit </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> 1<br />    show_unit_number </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> show_unit_number </span><span class="syntaxkeyword">+</span><span class="syntaxdefault">1<br />    projection </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> door_width </span><span class="syntaxkeyword">+</span><span class="syntaxdefault"> window_width<br />    end<br />    </span><span class="syntaxcomment">#total_projection = num_unit * projection<br /></span><span class="syntaxdefault">    <br />    <br />    UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">messagebox </span><span class="syntaxstring">"Your room projection; #{projection}"<br /></span><span class="syntaxdefault">    <br />end<br />end<br /><br />if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">not $Testmenu_menu_loaded</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  <br />  UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Tools"</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"TEST_MENU"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> Testmenu</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">new </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> <br />  <br />  $Testmenu_menu_loaded </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> true<br />end<br /></span>
      
      1 條回覆 最後回覆 回覆 引用 0
      • TIGT 離線
        TIG Moderator
        最後由 編輯

        The results = inputbox(...) returns an array representing the answers current in the inputbox's boxes when OK is pressed.
        So use that the extract the various values you want ??
        v0,v1,v2,v3 = results ?
        Lets those 4 variables to be the results... 😒

        TIG

        1 條回覆 最後回覆 回覆 引用 0
        • nithi09N 離線
          nithi09
          最後由 編輯

          I don't get it, let say user enter 3 units so the loop going to be three times going to be prompt? first unit1 up to user Door size or Window size so then unit2 and unit3
          for me to find out Total width = unit1 + unit2 + unit3 according to the user input. let me know I always get last input not from first to last I mean total

          1 條回覆 最後回覆 回覆 引用 0
          • TIGT 離線
            TIG Moderator
            最後由 編輯

            You are looping through various inputboxes and setting the same variables to the results each time ! 😒
            why not do something like this after the first results:

            allresults=[] ### set up an empty array before we start...
            ...loop
            allresults << results
            ...end loop

            Now you have an array containing several arrays, each of those arrays contains the results from each inputbox.

            So if you want the results from the second inputbox they are in the array that is allresults[1] etc.......

            TIG

            1 條回覆 最後回覆 回覆 引用 0
            • nithi09N 離線
              nithi09
              最後由 編輯

              It does not work. after first prompt nothing happening

              1 條回覆 最後回覆 回覆 引用 0
              • TIGT 離線
                TIG Moderator
                最後由 編輯

                @nithi09 said:

                It does not work. after first prompt nothing happening
                Without some clues how might I know what you have done ?
                After the first input where the user choses 'type' the while loop is where the inputboxes' results are added to the 'allresults' array.
                If you don't get something from the initial results then how do you expect later steps to happen ?

                TIG

                1 條回覆 最後回覆 回覆 引用 0
                • nithi09N 離線
                  nithi09
                  最後由 編輯

                  It's works I did it different way because I need width only here my code thanks for your help

                  <span class="syntaxdefault"><br />require </span><span class="syntaxstring">'Sketchup.rb'<br /><br /></span><span class="syntaxdefault">class Testmenu<br /><br />def initialize</span><span class="syntaxkeyword">()<br /><br /></span><span class="syntaxdefault">    ents </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />    group </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> ents</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_group<br />    ents </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> group</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />    <br />    prompt </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"Enter frontwall height; "</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Front wall custom height; "</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Enter backwall height; "</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"How many units on A wall; "</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    default </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"81\""</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"108\""</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"4"</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    list </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[[</span><span class="syntaxstring">"81\"|91\"|96 3/8\"|Custom height"</span><span class="syntaxkeyword">],</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    result </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> inputbox </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">prompt</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> default</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> list</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"A wall of Sunroom"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    <br />    return  if not result<br />    <br />    custom </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    <br />    if custom </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom height"<br /></span><span class="syntaxdefault">        <br />        front_height </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        back_height </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        num_unit </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_i<br />        <br />    else<br />        front_height </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        back_height </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        num_unit </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">result</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_i<br />    end<br />    <br />    <br />    <br />    show_unit_number </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 1<br />    total_projection </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">0<br />    <br />    while num_unit </span><span class="syntaxkeyword">></span><span class="syntaxdefault"> 0<br />    prom </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"A wall unit  #{show_unit_number};"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Door size; "</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom Door size;"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Window Size; "</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom Window size;"</span><span class="syntaxdefault">    </span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    values </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"Door"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    list </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"Door|Window"</span><span class="syntaxkeyword">,[</span><span class="syntaxstring">"87\"|81\"|75\"|69\"|63\"|57\"|Custom Door"</span><span class="syntaxkeyword">],</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,[</span><span class="syntaxstring">"87\"|81\"|75\"|69\"|63\"|57\"|51\"|45\"|39\"|33\"|Custom Window"</span><span class="syntaxkeyword">],</span><span class="syntaxstring">""</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">    result_2 </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> inputbox </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">prom</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> values</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> list</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"A wall Door & Window"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    return nil if not result_2<br />        if result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Door"<br /></span><span class="syntaxdefault">                custom_door </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">            if custom_door </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom Door"<br /></span><span class="syntaxdefault">                door_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />                window_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0<br />            else<br />                door_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />                window_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0<br />            end<br />        <br />        elsif result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Window"<br /></span><span class="syntaxdefault">                custom_window </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">            if custom_window </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom Window"<br /></span><span class="syntaxdefault">                window_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />                door_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0<br />            else<br />                window_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> result_2</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />                door_width </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0<br />            end<br />        <br />        end<br />    <br />    num_unit </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> num_unit </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> 1<br />    show_unit_number </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> show_unit_number </span><span class="syntaxkeyword">+</span><span class="syntaxdefault">1<br />    <br />    projection </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> door_width </span><span class="syntaxkeyword">+</span><span class="syntaxdefault"> window_width    <br />    total_projection </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> projection </span><span class="syntaxkeyword">+</span><span class="syntaxdefault">total_projection<br />    end<br />    UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">messagebox </span><span class="syntaxstring">"Your room projection; #{total_projection}"<br /></span><span class="syntaxdefault">    <br />    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">back_height </span><span class="syntaxkeyword">-</span><span class="syntaxdefault"> front_height</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> total_projection</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">12<br />        UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">messagebox </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Minimum Roof pitch is 1/12 please increase back wall height"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        return Testmenu</span><span class="syntaxkeyword">.new<br /></span><span class="syntaxdefault">    end    <br /><br />    <br />end<br />end<br /><br />if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">not $Testmenu_menu_loaded</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  <br />  UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Tools"</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"TEST_MENU"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> Testmenu</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">new </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> <br />  <br />  $Testmenu_menu_loaded </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> true<br />end<br /></span>
                  
                  1 條回覆 最後回覆 回覆 引用 0
                  • nithi09N 離線
                    nithi09
                    最後由 編輯

                    Hi TIG above code first messagebox if I use
                    UI.messagebox "Your room projection: #{total_projection}", MB_OKCANCEL then if user press CANCEL button I need to start over again. I tried like this
                    %(#FF0000)[if MB_OKCANCEL == 2
                    return Testmenu.new
                    end]but didn't work any Idea??

                    1 條回覆 最後回覆 回覆 引用 0
                    • TIGT 離線
                      TIG Moderator
                      最後由 編輯

                      You need to get a grasp of how references work...
                      ` ok = UI.messagebox("Your room projection: #{total_projection}", MB_OKCANCEL)
                      if ok == 2 ### pressed Cancel
                      Testmenu.new()
                      return
                      end#if

                      pressed OK`

                      TIG

                      1 條回覆 最後回覆 回覆 引用 0
                      • nithi09N 離線
                        nithi09
                        最後由 編輯

                        Hi TIG
                        How do I change font size and bold on sketchup default messagebox
                        thanks

                        1 條回覆 最後回覆 回覆 引用 0
                        • Dan RathbunD 離線
                          Dan Rathbun
                          最後由 編輯

                          @nithi09 said:

                          How do I change font size and bold on sketchup default messagebox

                          You cannot. The API does not give this level of control.

                          You can make a WebDialog that looks like a messagebox, and use CSS to control fontsize and bold, etc.

                          I'm not here much anymore.

                          1 條回覆 最後回覆 回覆 引用 0
                          • nithi09N 離線
                            nithi09
                            最後由 編輯

                            Ok thanks Dan

                            1 條回覆 最後回覆 回覆 引用 0
                            • nithi09N 離線
                              nithi09
                              最後由 編輯

                              Hi TIG if I want to add custom attribute to my door like partnumber how do I do in ruby
                              thanks

                              1 條回覆 最後回覆 回覆 引用 0
                              • TIGT 離線
                                TIG Moderator
                                最後由 編輯

                                To set it
                                door.set_attribute('dynamic_attributes', 'partnumber', 1234)
                                To get it
                                door.get_attribute('dynamic_attributes', 'partnumber', nil)
                                If it's 'nil' then it has not been set...

                                TIG

                                1 條回覆 最後回覆 回覆 引用 0
                                • thomthomT 離線
                                  thomthom
                                  最後由 編輯

                                  Don't you have to make a call to the DC system to make the component update according to the new attribute?

                                  Thomas Thomassen — SketchUp Monkey & Coding addict
                                  List of my plugins and link to the CookieWare fund

                                  1 條回覆 最後回覆 回覆 引用 0
                                  • TIGT 離線
                                    TIG Moderator
                                    最後由 編輯

                                    @thomthom said:

                                    Don't you have to make a call to the DC system to make the component update according to the new attribute?
                                    Yes.
                                    But that wasn't the question... 😉
                                    At the end of the process call the redraw thus - the other examples around can fail...
                                    dc_redraw(ent, true, false)
                                    Where 'ent' is the reference to the 'door' dc...

                                    def dc_redraw(ent, pbar_visible=true, undo=false)
                                        ldc=$dc_observers.get_latest_class()
                                        if undo
                                            ldc.method(;redraw_with_undo).call(ent, pbar_visible)
                                        else
                                            ldc.determine_movetool_behaviors(ent)
                                            DCProgressBar;;clear()
                                            ldc.method(;redraw).call(ent, pbar_visible)
                                            DCProgressBar;;clear()
                                            ldc.refresh_dialogs()
                                        end
                                        Sketchup.active_model.active_view.refresh
                                        rescue TypeError => e
                                        # suppress nil to float conversion error that happens
                                        # when redraw is called directly with true 2nd arg ?
                                    end#def
                                    

                                    TIG

                                    1 條回覆 最後回覆 回覆 引用 0
                                    • nithi09N 離線
                                      nithi09
                                      最後由 編輯

                                      Hi TIG if I want to create component definition inside the group in this example component name like Triangle and Cube, Then area for Triangle and volume for Cube How do I do
                                      thanks

                                      @nithi09 said:

                                      Hi TIG I didn't understand boundingbox method here is my code look at it. Also I attaching image of this

                                      <span class="syntaxdefault"><br />require </span><span class="syntaxstring">'Sketchup.rb'<br /></span><span class="syntaxdefault">class Testbox<br />def initialize</span><span class="syntaxkeyword">()</span><span class="syntaxcomment">#testbox1 <br /></span><span class="syntaxdefault">           <br />        model </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model<br />        ent </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities <br />        </span><span class="syntaxcomment">#mats = model.materials<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">#glass = mats.add "Glass"<br /></span><span class="syntaxdefault">        <br />        </span><span class="syntaxcomment">#ent = Sketchup.active_model.entites<br /></span><span class="syntaxdefault">        ent </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_entities<br />        group </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_group<br />        ent </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> group</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />        <br />        <br />        prompts </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"Width"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"Depth"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"Height"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"Colour"</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">        defaults </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"6'"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"4'"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">"5'"</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'Red'</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">        list </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[[</span><span class="syntaxstring">"6'|8'|10'|Custom"</span><span class="syntaxkeyword">],[</span><span class="syntaxstring">"2'|4'|1\""</span><span class="syntaxkeyword">],[</span><span class="syntaxstring">"5'|7'|9'"</span><span class="syntaxkeyword">],[</span><span class="syntaxstring">"Blue|Red|Green|White"</span><span class="syntaxkeyword">]]<br /></span><span class="syntaxdefault">        results </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> inputbox prompts</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> defaults</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> list</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Test_Box"<br /></span><span class="syntaxdefault">        return if not results<br />        <br />        w </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> results</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">        if w </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom"<br /></span><span class="syntaxdefault">        results_w </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> inputbox </span><span class="syntaxkeyword">([</span><span class="syntaxstring">"Enter Width;"</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxstring">"1'"</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Custom Size"</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        return nil if not results_w<br />        w </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> results_w</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        else<br />        w </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> w</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">to_l<br />        end<br />        <br />        wid </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> w<br />        dep </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> results</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        hei </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> results</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        color </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> results</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">        <br />        pts </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">wid</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">wid</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">dep</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">dep</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]]<br /></span><span class="syntaxdefault">        back_wall </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[[-</span><span class="syntaxdefault">5</span><span class="syntaxkeyword">,-</span><span class="syntaxdefault">36</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">],[-</span><span class="syntaxdefault">5</span><span class="syntaxkeyword">,-</span><span class="syntaxdefault">36</span><span class="syntaxkeyword">,(</span><span class="syntaxdefault">hei</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">36</span><span class="syntaxkeyword">)],[-</span><span class="syntaxdefault">5</span><span class="syntaxkeyword">,(</span><span class="syntaxdefault">dep</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">36</span><span class="syntaxkeyword">),(</span><span class="syntaxdefault">hei</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">36</span><span class="syntaxkeyword">)],[-</span><span class="syntaxdefault">5</span><span class="syntaxkeyword">,(</span><span class="syntaxdefault">dep</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">36</span><span class="syntaxkeyword">),</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]]</span><span class="syntaxdefault"> <br />        angle_ptr </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">],[</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,(</span><span class="syntaxdefault">hei</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">)],[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,-(</span><span class="syntaxdefault">dep</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">)]]<br /></span><span class="syntaxdefault">        triangle </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face angle_ptr<br />        base </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face pts<br />        backwall </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face back_wall<br />        <br />        hei </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">-</span><span class="syntaxdefault">hei if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">normal</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">dot</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">Z_AXIS</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        <br />        base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">back_material </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> color        <br />        base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">material </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> color<br />        <br />        mat </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">material<br />        mat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">alpha </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0.5<br />        <br />        base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">reverse</span><span class="syntaxkeyword">!<br /></span><span class="syntaxdefault">        base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">pushpull </span><span class="syntaxkeyword">-</span><span class="syntaxdefault">hei<br />        triangle</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">pushpull wid<br />        group</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">grep</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Face</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">each</span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">|</span><span class="syntaxdefault">face</span><span class="syntaxkeyword">|<br /></span><span class="syntaxdefault">      if face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">normal</span><span class="syntaxkeyword">==</span><span class="syntaxdefault">X_AXIS </span><span class="syntaxcomment">##&& face.normal==X_AXIS.reverse### == faces 'UP'... BUT you can use any vector to compare<br /></span><span class="syntaxdefault">        <br />        mats</span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">materials</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add </span><span class="syntaxstring">"Color_Texture"<br /></span><span class="syntaxdefault">        mats</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">texture </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">find_support_file </span><span class="syntaxstring">"panelskin1.jpg"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Plugins"<br /></span><span class="syntaxdefault">        mats</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">color </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> color<br />        face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">material</span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mats </span><span class="syntaxcomment">#"Magenta"<br /></span><span class="syntaxdefault">        face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">back_material</span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Magenta"<br /></span><span class="syntaxdefault">        <br />        mat1 </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">material<br />        mat1</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">alpha </span><span class="syntaxkeyword">=</span><span class="syntaxdefault">5<br />        <br />        elsif<br />        face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">normal</span><span class="syntaxkeyword">==</span><span class="syntaxdefault">X_AXIS</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">reverse<br />        </span><span class="syntaxcomment">#face.material= #"Magenta"<br /></span><span class="syntaxdefault">        mats</span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">materials</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add </span><span class="syntaxstring">"Color_Texture"<br /></span><span class="syntaxdefault">        mats</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">texture </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">find_support_file </span><span class="syntaxstring">"brick.jpg"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Plugins"<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">#mats.color = color<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">#face.material= mats<br /></span><span class="syntaxdefault">        face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">back_material</span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mats </span><span class="syntaxcomment">#"Magenta"<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">#mat1 = face.material<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">#mat1.alpha =0.5<br /></span><span class="syntaxdefault">        <br />        </span><span class="syntaxcomment">#break ### stop looking<br /></span><span class="syntaxdefault">      end<br />       <br />    </span><span class="syntaxkeyword">}</span><span class="syntaxdefault">    <br />        <br /> end<br />end<br /><br /><br />if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">not $Testbox_menu_loaded</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">  <br />  UI</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">menu</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Tools"</span><span class="syntaxkeyword">).</span><span class="syntaxdefault">add_item</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"TEST_BOX"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> Testbox</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">new </span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> <br />  <br />  $Testbox_menu_loaded </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> true<br />end</span>
                                      
                                      1 條回覆 最後回覆 回覆 引用 0
                                      • TIGT 離線
                                        TIG Moderator
                                        最後由 編輯

                                        Iterate the definition's entities, collecting faces and their areas.
                                        You then have the area of all faces inside it, it's always in sq".
                                        Provided that you know the instance/its-container is not 'scaled' then that's it: otherwise you might need to get the scaling[s] and apply it to the area value ?

                                        TIG

                                        1 條回覆 最後回覆 回覆 引用 0
                                        • nithi09N 離線
                                          nithi09
                                          最後由 編輯

                                          Hi TIG I think my question is wrong way I asked. basically I want above code three group like "Triangle group", "cube group",and two together group call "sample group" each one has name, part number and so on.like when you click on lady in the model entity info definition name and clik on component attribute it gives lots of info name susan, description,color,and material.when I try do like this group.name = "somthing" and group.set_attribute('dynamic_attribute','volume',widdephei)it doesnot work. I look at group, component api is confusing me.could you explain me with sample code.
                                          Thanks

                                          1 條回覆 最後回覆 回覆 引用 0
                                          • TIGT 離線
                                            TIG Moderator
                                            最後由 編輯

                                            OK.
                                            I think your question is, "How do I add an 'area' or 'volume' function to the DC code ?"
                                            There are already some threads about adding custom functions, so they can be used in formulas...
                                            There is an example of one for 'volume' already - here http://sketchucation.com/forums/viewtopic.php?p=464446#p464446

                                            You can add any 'attribute' to anything.
                                            The dictionary DC is "dynamic_attributes" [with a final S] - otherwise you are making a new dictionary with a slightly different name that the DC code ignores...

                                            TIG

                                            1 條回覆 最後回覆 回覆 引用 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 3 / 4
                                            • 第一個貼文
                                              最後的貼文
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement