Ruby script for selecting color
-
Hi TIG it's working. but I want to see both way. I mean from outside to inside the box see through fine but inside to outside not see through how do I can do both way? or where do I can find clear glass texture
Thanks -
When you give the first face ['base' ?] its material you need to also apply it to the back face thus:
base.material = 'xxxx' base.**back_material** = 'xxxx'
where 'xxxx' is the material... -
Hi TIG how do I can add glass texture to only one wall of box out of four walls.above method applying whole box. I like to try only one wall glass.thanks
-
Well... you need to work out how to 'find' the face first, then once you have it give it a [preexisting] material - let's assume it's name is 'Glass'...
A face has a 'normal' - which the vector that tells us which way a face is looking...
So let's say the collection of faces [along with edges etc] is in ` - then you need to filter that to find just the faces and then from that exact face with a particular 'normal'...
Let's also assume it is a box so only one matching face.normal will be found...group.entities.grep(Sketchup;;Face).each{|face| if face.normal==Z_AXIS ### == faces 'UP'... BUT you can use any vector to compare face.material='Glass' face.back_material='Glass' break ### stop looking end }group.entities.grep(Sketchup;;Face).each{|face|
if face.normal==Z_AXIS ### == faces 'UP'... BUT you can use any vector to compare
face.material='Glass'
face.back_material='Glass'
break ### stop looking
end
}[/code:ngl1vctf] -
Hi TIG how do I find preexisting material on my box? is not 'Glass' thx
-
Your materials have names.
I used 'Glass' as an example.
The material must already exist in the model.
[I am skipping explaining how to create a material if it doesn't already exist, change its RGB and opacity etc... that wasn't your original question!]So use any existing material you want - just pass its 'name'...

-
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???
-
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 forface.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.reverseYou need to find and read code examples more....
-
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.
-
@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... -
Hi TIG It's working thanks.
How do I choose specific one face If I have multiple faces in same direction -
Find something unique about that face - like its bounds.min x/y/z ?
-
The sloping, upward looking face will have a
normal.z>0BUT ALSOnormal.z<1, it also has anormal.x<0- so that finds that kind of face ?
The triangular face hasnormal.x==1, BUT so does the rectangular one next to it.
You can differentiate them usingface.vertices.lengthon each,==3for the triangle and==4for the rectangle ?
Or if the difference is that it is below the red axis, testingface.bounds.min.y<0will find it...Tip on
bb=object.bounds
bb.widthis in X
bb.heightis in Y
bb.depthis 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 likeSketchUp show axes in 3d with Z typically up the screen rather that 'out-of-it'... bb.min,bb.maxandbb.centeretc should be self-evident ? -
thanks TIG for fast reply I am going to try. I will let you know!!
-
@nithi09: Please use [ code ] ... many lines of Ruby code here ... [ /code ] bbCode tags around large blocks of Ruby code.

-
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 </span><span class="syntaxstring">'Sketchup.rb'<br /></span><span class="syntaxkeyword">class </span><span class="syntaxdefault">Testbox<br />def initialize</span><span class="syntaxkeyword">()</span><span class="syntaxcomment">#testbox1 <br /> <br /> </span><span class="syntaxdefault">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 /> #glass = mats.add "Glass"<br /> <br /> #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="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="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 /> list = [[</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">, list, </span><span class="syntaxstring">"Test_Box"<br /> </span><span class="syntaxkeyword">return if </span><span class="syntaxdefault">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 /> if </span><span class="syntaxdefault">w </span><span class="syntaxkeyword">== </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="syntaxstring">"1'"</span><span class="syntaxkeyword">], </span><span class="syntaxstring">"Custom Size"</span><span class="syntaxkeyword">)<br /> return </span><span class="syntaxdefault">nil </span><span class="syntaxkeyword">if </span><span class="syntaxdefault">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 /> </span><span class="syntaxkeyword">else<br /> </span><span class="syntaxdefault">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 /> <br /> </span><span class="syntaxdefault">pts </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">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">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">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">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">]] <br /> </span><span class="syntaxdefault">angle_ptr </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">hei </span><span class="syntaxkeyword">if (</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">0</span><span class="syntaxkeyword">)<br /> <br /> </span><span class="syntaxdefault">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">face</span><span class="syntaxkeyword">|<br /> if </span><span class="syntaxdefault">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 /> <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">"panelskin1.jpg"</span><span class="syntaxkeyword">, </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="syntaxstring">"Magenta"<br /> <br /> </span><span class="syntaxdefault">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="syntaxstring">"Plugins"<br /> </span><span class="syntaxcomment">#mats.color = color<br /> #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 /> #mat1 = face.material<br /> #mat1.alpha =0.5<br /> <br /> #break ### stop looking<br /> </span><span class="syntaxdefault">end<br /> <br /> </span><span class="syntaxkeyword">} <br /> <br /> </span><span class="syntaxdefault">end<br />end<br /><br /><br /></span><span class="syntaxkeyword">if (</span><span class="syntaxdefault">not $Testbox_menu_loaded</span><span class="syntaxkeyword">)<br /> <br /> </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">) { </span><span class="syntaxdefault">Testbox</span><span class="syntaxkeyword">.new } <br /> <br /> </span><span class="syntaxdefault">$Testbox_menu_loaded </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">true<br />end</span>

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

-
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. -
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.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register LoginAdvertisement