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

                            Advertisement