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.
    • 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
                              • 1 / 4
                              • First post
                                Last post
                              Buy SketchPlus
                              Buy SUbD
                              Buy WrapR
                              Buy eBook
                              Buy Modelur
                              Buy Vertex Tools
                              Buy SketchCuisine
                              Buy FormFonts

                              Advertisement