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 What I am trying to do above creating box one side of box look like see through glass and rest solid coloured any idea???

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

        An image of what you expect might help us help you, we are not mind-readers.

        I have given you a general framework for code that finds "any face" by its direction and gives it a material.
        The example I gave was for face.normal==Z_AXIS
        which means it faces directly upwards,
        BUT you can compare it to any axis
        X_AXIS
        Y_AXIS
        and for the 'opposite direction'...
        X_AXIS.reverse
        Y_AXIS.reverse
        Z_AXIS.reverse

        You need to find and read code examples more....

        TIG

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

          Hi TIG could you recommend any good book specific for sketchup with code example. I have a book called "Automatic Sketchup" by Matthew Scarpino. It's not enough detail for me.

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

            @nithi09 said:

            Hi TIG could you recommend any good book specific for sketchup with code example. I have a book called "Automatic Sketchup" by Matthew Scarpino. It's not enough detail for me.
            That's an excellent start.
            Also get examples of others scripts [not too complex to start] and see how others do it...

            TIG

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

              Hi TIG It's working thanks.
              How do I choose specific one face If I have multiple faces in same direction

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

                Find something unique about that face - like its bounds.min x/y/z ?

                TIG

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

                  The sloping, upward looking face will have a normal.z>0 BUT ALSO normal.z<1, it also has a normal.x<0 - so that finds that kind of face ?
                  The triangular face has normal.x==1, BUT so does the rectangular one next to it.
                  You can differentiate them using face.vertices.lengthon each, ==3 for the triangle and ==4 for the rectangle ?
                  Or if the difference is that it is below the red axis, testing face.bounds.min.y<0 will find it...

                  Tip on bb=object.bounds
                  bb.width is in X
                  bb.height is in Y
                  bb.depth is in Z
                  this is NOT as you might initially assume - 'height' is NOT the Z - the bounds conventions come from the older CAD concept, where width/height are from the screen, when you typically looked at an object in plan, from above; and the 'depth' is the extent it projected 'out-of-the-screen'. 3D modelers like SketchUp show axes in 3d with Z typically up the screen rather that 'out-of-it'... bb.min, bb.max and bb.center etc should be self-evident ?

                  TIG

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

                    thanks TIG for fast reply I am going to try. I will let you know!!

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

                      @nithi09: Please use [ code ] ... many lines of Ruby code here ... [ /code ] bbCode tags around large blocks of Ruby code.

                      🤓

                      I'm not here much anymore.

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

                        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 /></span><span class="syntaxkeyword">require&nbsp;</span><span class="syntaxstring">'Sketchup.rb'<br /></span><span class="syntaxkeyword">class&nbsp;</span><span class="syntaxdefault">Testbox<br />def&nbsp;initialize</span><span class="syntaxkeyword">()</span><span class="syntaxcomment">#testbox1&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">model&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ent&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#mats&nbsp;=&nbsp;model.materials<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#glass&nbsp;=&nbsp;mats.add&nbsp;"Glass"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#ent&nbsp;=&nbsp;Sketchup.active_model.entites<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">ent&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_entities<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;group&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_group<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ent&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">group</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prompts&nbsp;</span><span class="syntaxkeyword">=&nbsp;[</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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">defaults&nbsp;</span><span class="syntaxkeyword">=&nbsp;[</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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;=&nbsp;[[</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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">results&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">inputbox&nbsp;prompts</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">defaults</span><span class="syntaxkeyword">,&nbsp;list,&nbsp;</span><span class="syntaxstring">"Test_Box"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxkeyword">return&nbsp;if&nbsp;</span><span class="syntaxdefault">not&nbsp;results<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">results</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;</span><span class="syntaxdefault">w&nbsp;</span><span class="syntaxkeyword">==&nbsp;</span><span class="syntaxstring">"Custom"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">results_w&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">inputbox&nbsp;</span><span class="syntaxkeyword">([</span><span class="syntaxstring">"Enter&nbsp;Width;"</span><span class="syntaxkeyword">],&nbsp;[</span><span class="syntaxstring">"1'"</span><span class="syntaxkeyword">],&nbsp;</span><span class="syntaxstring">"Custom&nbsp;Size"</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span class="syntaxdefault">nil&nbsp;</span><span class="syntaxkeyword">if&nbsp;</span><span class="syntaxdefault">not&nbsp;results_w<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;w&nbsp;</span><span class="syntaxkeyword">=&nbsp;</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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxkeyword">else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">w&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">w</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">to_l<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wid&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">w<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dep&nbsp;</span><span class="syntaxkeyword">=&nbsp;</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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hei&nbsp;</span><span class="syntaxkeyword">=&nbsp;</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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">results</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">pts&nbsp;</span><span class="syntaxkeyword">=&nbsp;[[</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">],&nbsp;[</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">],&nbsp;[</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">],&nbsp;[</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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">back_wall&nbsp;</span><span class="syntaxkeyword">=&nbsp;[[-</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">]]&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">angle_ptr&nbsp;</span><span class="syntaxkeyword">=&nbsp;[[</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">],[&nbsp;</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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">triangle&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face&nbsp;angle_ptr<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face&nbsp;pts<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;backwall&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face&nbsp;back_wall<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hei&nbsp;</span><span class="syntaxkeyword">=&nbsp;-</span><span class="syntaxdefault">hei&nbsp;</span><span class="syntaxkeyword">if&nbsp;(</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">)&nbsp;<&nbsp;</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">back_material&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">color&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">material&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">color<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mat&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">material<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mat</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">alpha&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">0.5<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">reverse</span><span class="syntaxkeyword">!<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">pushpull&nbsp;</span><span class="syntaxkeyword">-</span><span class="syntaxdefault">hei<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;triangle</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">pushpull&nbsp;wid<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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">{&nbsp;|</span><span class="syntaxdefault">face</span><span class="syntaxkeyword">|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;</span><span class="syntaxdefault">face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">normal</span><span class="syntaxkeyword">==</span><span class="syntaxdefault">X_AXIS&nbsp;</span><span class="syntaxcomment">##&&&nbsp;face.normal==X_AXIS.reverse###&nbsp;==&nbsp;faces&nbsp;'UP'...&nbsp;BUT&nbsp;you&nbsp;can&nbsp;use&nbsp;any&nbsp;vector&nbsp;to&nbsp;compare<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">mats</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">materials</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add&nbsp;</span><span class="syntaxstring">"Color_Texture"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">mats</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">texture&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">find_support_file&nbsp;</span><span class="syntaxstring">"panelskin1.jpg"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"Plugins"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">mats</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">color&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">color<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">material</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mats&nbsp;</span><span class="syntaxcomment">#"Magenta"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">back_material</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxstring">"Magenta"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">mat1&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">material<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mat1</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">alpha&nbsp;</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">5<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elsif<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#face.material=&nbsp;#"Magenta"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">mats</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">materials</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add&nbsp;</span><span class="syntaxstring">"Color_Texture"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">mats</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">texture&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">find_support_file&nbsp;</span><span class="syntaxstring">"brick.jpg"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"Plugins"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxcomment">#mats.color&nbsp;=&nbsp;color<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#face.material=&nbsp;mats<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">face</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">back_material</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mats&nbsp;</span><span class="syntaxcomment">#"Magenta"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#mat1&nbsp;=&nbsp;face.material<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#mat1.alpha&nbsp;=0.5<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#break&nbsp;###&nbsp;stop&nbsp;looking<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">end<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxkeyword">}&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;</span><span class="syntaxdefault">end<br />end<br /><br /><br /></span><span class="syntaxkeyword">if&nbsp;(</span><span class="syntaxdefault">not&nbsp;$Testbox_menu_loaded</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span class="syntaxdefault">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">)&nbsp;{&nbsp;</span><span class="syntaxdefault">Testbox</span><span class="syntaxkeyword">.new&nbsp;}&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span class="syntaxdefault">$Testbox_menu_loaded&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">true<br />end</span>
                        

                        TestBox.jpg

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

                          Thanks Thom, It's working fine now. I have a question if I change same code like this (using insted of method if I use class) doesn't happening any thing meaning not working). I am sorry I don't know how to wrap in code.

                          <span class="syntaxdefault"><br />require </span><span class="syntaxstring">'Sketchup.rb'<br /></span><span class="syntaxdefault">class Testbox<br />def testbox1 <br />                <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">#ss = model.selection<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">#obj = ss[3]<br /></span><span class="syntaxdefault">        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="syntaxdefault">4.feet</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">2.feet</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">""</span><span class="syntaxkeyword">,</span><span class="syntaxstring">""</span><span class="syntaxkeyword">,[</span><span class="syntaxstring">"Blue|Red|Green"</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 />        x </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 x </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">'Custom'<br /></span><span class="syntaxdefault">        resultsx </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 resultsx<br />        x </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> resultsx</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">].</span><span class="syntaxdefault">to_l<br />        else<br />        x </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> x</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">to_l<br />        end<br />        <br />        wid </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> x<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">                <br />        base </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face pts<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 />        </span><span class="syntaxcomment">#color = nil if color ==''<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 />        </span><span class="syntaxcomment">#base.reverse!<br /></span><span class="syntaxdefault">        base</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">pushpull hei<br />        <br />        <br /> end<br /> <br /> end<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">.new}</span><span class="syntaxdefault">  <br />  <br />  $Testbox_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 thanks it's works. I have different question now about menu I try create user Inputbox.this is my code I want when user select Door only door size & door custom size has to be active rest has to be disabled vice versa when user select window I am attaching picture to

                            <span class="syntaxdefault"><br /></span><span class="syntaxkeyword">require&nbsp;</span><span class="syntaxstring">'Sketchup.rb'<br /><br /></span><span class="syntaxkeyword">class&nbsp;</span><span class="syntaxdefault">Testmenu<br /><br />def&nbsp;initialize</span><span class="syntaxkeyword">()<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">ents&nbsp;</span><span class="syntaxkeyword">=&nbsp;</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 />&nbsp;&nbsp;&nbsp;&nbsp;group&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">ents</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_group<br />&nbsp;&nbsp;&nbsp;&nbsp;ents&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">group</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">1<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxkeyword">while&nbsp;</span><span class="syntaxdefault">x&nbsp;</span><span class="syntaxkeyword"><=&nbsp;</span><span class="syntaxdefault">4<br />&nbsp;&nbsp;&nbsp;&nbsp;prom&nbsp;</span><span class="syntaxkeyword">=&nbsp;[</span><span class="syntaxstring">"A&nbsp;wall&nbsp;unit&nbsp;&nbsp;#{x};"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"Door&nbsp;size;&nbsp;"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"Custom&nbsp;Door&nbsp;size;"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"Window&nbsp;Size;&nbsp;"</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxstring">"Custom&nbsp;Window&nbsp;size;"&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxkeyword">]<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">values&nbsp;</span><span class="syntaxkeyword">=&nbsp;[</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 />&nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;=&nbsp;[</span><span class="syntaxstring">"Door|Window"</span><span class="syntaxkeyword">,[</span><span class="syntaxstring">'87"|81"|75"|69"|63"|57"|Custom'</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'</span><span class="syntaxkeyword">],</span><span class="syntaxstring">""</span><span class="syntaxkeyword">]<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">res&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">inputbox&nbsp;prom</span><span class="syntaxkeyword">,&nbsp;</span><span class="syntaxdefault">values</span><span class="syntaxkeyword">,&nbsp;list,&nbsp;</span><span class="syntaxstring">"A&nbsp;wall&nbsp;Door&nbsp;&&nbsp;Window"<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="syntaxdefault">x&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">x</span><span class="syntaxkeyword">+</span><span class="syntaxdefault">1<br />&nbsp;&nbsp;&nbsp;&nbsp;end<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />end<br />end<br /><br /></span><span class="syntaxkeyword">if&nbsp;(</span><span class="syntaxdefault">not&nbsp;$Testmenu_menu_loaded</span><span class="syntaxkeyword">)<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span class="syntaxdefault">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">)&nbsp;{&nbsp;</span><span class="syntaxdefault">Testmenu</span><span class="syntaxkeyword">.new&nbsp;}&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;</span><span class="syntaxdefault">$Testmenu_menu_loaded&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">true<br />end<br /></span>
                            

                            TestMenu.jpg

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

                              prom = ["A wall unit #{x}:", "Door size: ", "Custom Door size:", "Window Size: ", "Custom Window size:" ] values = ['Door', "", "", "", ""] list = ["Door|Window", ['87"|81"|75"|69"|63"|57"|Custom'], "", ['87"|81"|75"|69"|63"|57"|51"|45"|39"|33"|Custom'], ""] res = inputbox prom, values, list, "A wall Door & Window"

                              prom= sets the prompts to the left of each input box line

                              values= sets the starting values - you only have 'Door' set for the first one, the "" after that say start with NO value. The default needs to be a value in the matching list entry OR a lone default-value.
                              To use the list's first in each case try:
                              values = ["Door", "87"", "60"", "87"", "60""]
                              ...notice how I escape the " inside "" using " then each box gets a default value.
                              I chose 60" as the default for the custom size - that's up to you...

                              list= gives the dropdown lists to choose from, each item in the dropdown is separated by a | any NON-dropdown 'single values' are shown as ""...

                              Please use () around arguments passed... e.g.
                              res = inputbox(prom, values, list, "A wall Door & Window")[/ruby]
                              Un-parenthesized lists my be deprecated in future ruby releases, and using () inside any arguments tat involve clacs etc when the set is un-parenthesized will cause issues now.

                              TIG

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

                                Hi TIG thanks for fast reply
                                My question is when user select let say window from listbox then door size and door custom size grayout is it possible. I mean dynamicalley.

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

                                  Not with the standard inputbox.

                                  You can do it using a complex webdialog...
                                  That's a 'whole new kettle-of-fish'... 😉

                                  If you want the user to choose window/Door then why not have a simple item inputbox first and depending on the answer chosen in that open a second inputbox giving different options ?
                                  That's easier than learning webdialog/html/js/css etc - unless you want a bigger challenge than you already have ??

                                  TIG

                                  1 Reply Last reply Reply Quote 0
                                  • thomthomT Offline
                                    thomthom
                                    last edited by

                                    Don't put a space between the = sign of the BBCode CODE block.

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

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

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

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

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

                                        TIG

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

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

                                          1 Reply Last reply Reply Quote 0
                                          • 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
                                            • 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