@chris fullmer said:
Have you looked at my tutorials on beginning ruby Martin?
No, I haven't but I am VERY interested. MartinRinehart at gmail dot com.
@chris fullmer said:
Have you looked at my tutorials on beginning ruby Martin?
No, I haven't but I am VERY interested. MartinRinehart at gmail dot com.
@unknownuser said:
I am asking for a plugin that can create a polygon with any number of segments, in which you can specify a length for the segments and create the polygon.
Not sure I understand. You want something like the Polygon tool but its distance would be the line segment length, not radius?
@chrisglasier said:
The part I might be interested in is not yet started.
Chris, I tried your plugin. You won't need the Ruby half of the tutorial. You're way past where I'm going.
I'm identifying a small subset of Ruby that is suitable for teaching beginning programmers and then using that language subset to create geometry. For "UI" we'll put pseudo-constants into the beginning of each Ruby and then edit the code:
# stairs.rb
RISE = 7
RUN = 9
NSTEPS = 14
...
Going farther requires Ruby, HTML, CSS and JavaScript - too much for a tutorial on SketchUp modeling.
@chrisglasier said:
Even if you are not interested in managing scenes (from your book I know you are!)
Hope you like the book, but you haven't paid for it. Feedback please!
On topic, is it your contention that the existing JS/Ruby communication is as simple as possible? Lots of software is produced with the management directive "We've got to ship something, even if it's ugly." Engineer says (to self) "This is crap but it'll work." and (to boss) "OK, I'll go with what we got."
Not clear what you are looking for. Elaborate or post a picture?
@matteo said:
Do you find disturbing the white background?
Not at all. White or off-white rules.
Nice avatar!
@jahman said:
do you have a tutorial for creating and using textures?
Chopra, Chapter 7.
And very nice work!
I think you will get 90% of what you want if you enlarge the window component's definition to window_and_all_the_surrounding_stuff. Cut a bigger opening and move in a window_and_all_the_surrounding_stuff and you're done. Ditto for doors.

I have finally got control of communication between Ruby and JavaScript. And I have concluded that, for something small (sending a string from either to the other) this was way too complicated.
Anybody have ideas for making this easier so that those who come after don't have to fight through this stuff?
And an explanation of "skp:get_data@" as an URL would be welcome. An explanation that errs on the side of verbosity would be welcome.
@jim said:
I'm happy it doesn't work.
No you're not, Jim. Plugins are easy to delete, which I'm sure you'd do if some plugin author thinks he knows better than you what toolbars you should be looking at. But there's a lot of potential for plugins whose purpose in life is to let you organize your toolbars your way.
Think about plugins specific to showing/hiding toolbars. I don't use toolbars (keyboard shortcuts rule!) but I'd like a tiny one that I could tailor to show stuff like an Add Scene and Update Scene at movie-making time and turn them off when the model's not ready for movies. I'd even like a button that turns the large toolbar on when I need no-shortcut stuff like Follow Me and the Protractor.
And I'd like a plugin that converts the View/Toolbars submenu into a toolbar.
This area looks like it was implemented by an engineer badly in need of sleep, no? Straightforwardly, you would have a toolbars collection and each would have a name attribute, no?
If you don't mind losing the names, something like:
toolbars = []
UI.toolbar_names.each{ |n| toolbars.push( UI.toolbar(n) ) }
I've done this. Turning off all toolbars (View/Toolbars menu) I ask:
toolbars.each { |t| puts t.visible? }
It prints "false" 13 times. Turn on a few toolbars, run it again and it still prints "false" 13 times.
Has anybody sorted out what works and what doesn't here?
There is a link to this blog post in the WebDialog docs, but the link is broken.
Is this an appropriate place for an item like this?
I revisited Scott Lininger's invaluable blog post ( http://sketchupapi.blogspot.com/2008/02/sharing-data-between-sketchup-ruby-and.html ) for maybe the hundredth time today.
It would really be improved if someone could delete all the spam in the responses. TIA.
@chris fullmer said:
So if you ever hit sort by color, it will be on that next time you open SU.
Beautiful! No more confusion here, I was sorted by color (whatever that means). Now I'm sorted by name, as everyone has been saying.
@tig said:
In the layer-browser they are listed default_layer first, them the rest in alphabetical order.
Either we're not communicating or maybe my SU is broke. By "layer-browser" do you mean the window named "Layers"? The list in my Layers window is definitely not alphabetical.
@plot-paris said:
I have a dream, that you can open several models within SketchUp. they show up as tabs (not much unlike the scene tabs)
The world needs more dreams! This would be great.
While we're at it, how about the ability to split the SU window into panes, vertically or horizontally? And the ability to split the panes into more panes, and ... (Actually, I'm describing the Konqueror browser, Linux, KDE. It's great.)
I think its fair to say that the warehouse models are generally pretty heavy. You needed a QD tree. You made an upside-down icecream cone. Do you UL it to the warehouse? Probably not. You needed a realistic tree. You spent days on it. That's the one you UL to the warehouse.
I would LOVE to have some passable light-weight trees, by the by. Anyone stumbling across some, please post the good news!
One of the first models I DLd from the Warehouse was a model of Air Force One. Looked just like the real thing.
Square to circle is a simpler thing. Start in 2D. Drag out a nice big rectangle. Group it. Draw the circle on the rectangle's face. 12 sides would be easier than the default 24. Draw a square inside the circle, still on the rectangle's face. Draw connecting lines from the circle's vertexes to the square's end or mid points. Delete the original rectangle.
Now into 3D. Double click the square. Use the Move tool to pull it up as high as your plane is long. Scale the circle and then the square, as needed. Group and Qrotate to turn your rocket into an airplane.
@tig said:
We sort the layer_names alphabetically and add them onto an array starting with the default_layer_name
Your post and code are most helpful, but ...
I'm looking at a little test model. It's layers, per the layer window, are:
Layer0
stairs
ground_floor
roof
basement
second_floor
garage
My mother was a librarian. She taught me about sorting. "basement", "garage", ...
It's layers, per the Ruby Console, are:
Layer0
basement
ground_floor
garage
second_floor
stairs
roof
It's layers, per Entity Info dropdown are:
Layer0
(others, in alpha order)
In my testing, I've become convinced that the Ruby Console array is ordered in the sequence the layers were entered.
For the rest, I'm sure I don't know. I just tested File/New, (in Layers window click "+" and press Enter), 4 times. This is what the Layers window says:
Layer0
Layer4
Layer2
Layer3
Layer1
(Repeat above test. Order is now 0, 4, 1, 3, 2).
Outer arrays are covered here:
http://www.martinrinehart.com/models/tutorial/tutorial_02.html#precision
Inner arrays are covered here:
http://www.martinrinehart.com/models/tutorial/tutorial_08.html#bed3
(Inner: page down a couple times, until you see the array of ballusters. Start just above the array with "We are about to use an inner array.")
You use an outer array when you make a railing and you know how far apart the ballusters should be. You use an inner array where you can position the first and last, but aren't sure about what spacing will look best.