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

    Ruby script for selecting color

    Scheduled Pinned Locked Moved Developers' Forum
    62 Posts 4 Posters 1.9k Views 4 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • TIGT Offline
      TIG Moderator
      last edited by

      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 Reply Last reply Reply Quote 0
      • nithi09N Offline
        nithi09
        last edited by

        It does not work. after first prompt nothing happening

        1 Reply Last reply Reply Quote 0
        • TIGT Offline
          TIG Moderator
          last edited by

          @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 Reply Last reply Reply Quote 0
          • nithi09N Offline
            nithi09
            last edited by

            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 Reply Last reply Reply Quote 0
            • nithi09N Offline
              nithi09
              last edited by

              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 Reply Last reply Reply Quote 0
              • TIGT Offline
                TIG Moderator
                last edited by

                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 Reply Last reply Reply Quote 0
                • nithi09N Offline
                  nithi09
                  last edited by

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

                  1 Reply Last reply Reply Quote 0
                  • Dan RathbunD Offline
                    Dan Rathbun
                    last edited by

                    @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 Reply Last reply Reply Quote 0
                    • nithi09N Offline
                      nithi09
                      last edited by

                      Ok thanks Dan

                      1 Reply Last reply Reply Quote 0
                      • nithi09N Offline
                        nithi09
                        last edited by

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

                        1 Reply Last reply Reply Quote 0
                        • TIGT Offline
                          TIG Moderator
                          last edited by

                          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 Reply Last reply Reply Quote 0
                          • thomthomT Offline
                            thomthom
                            last edited by

                            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 Reply Last reply Reply Quote 0
                            • TIGT Offline
                              TIG Moderator
                              last edited by

                              @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 Reply Last reply Reply Quote 0
                              • nithi09N Offline
                                nithi09
                                last edited by

                                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 Reply Last reply Reply Quote 0
                                • TIGT Offline
                                  TIG Moderator
                                  last edited by

                                  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 Reply Last reply Reply Quote 0
                                  • nithi09N Offline
                                    nithi09
                                    last edited by

                                    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 Reply Last reply Reply Quote 0
                                    • TIGT Offline
                                      TIG Moderator
                                      last edited by

                                      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 Reply Last reply Reply Quote 0
                                      • nithi09N Offline
                                        nithi09
                                        last edited by

                                        Hi TIG I have different question about sliding window. After draw window in the model go to component attribute under behavior onclick when I write ANIMATE("X",0,25) it window slides. how do I write in ruby script for in my model
                                        Thanks

                                        1 Reply Last reply Reply Quote 0
                                        • nithi09N Offline
                                          nithi09
                                          last edited by

                                          Hi TIG I figure it out how to write animate. but I have a another question How do I make one group from bunch of small groups for example house has door group, window group, roof group (I mean door(),window(),roof()). now how do I do these three method in to one group? I need to make house group contain door group, window group, roof group. I search whole forum I could not find close to my situation. pls give me some Idea
                                          thanks

                                          1 Reply Last reply Reply Quote 0
                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          • 4 / 4
                                          • First post
                                            Last post
                                          Buy SketchPlus
                                          Buy SUbD
                                          Buy WrapR
                                          Buy eBook
                                          Buy Modelur
                                          Buy Vertex Tools
                                          Buy SketchCuisine
                                          Buy FormFonts

                                          Advertisement