? [Question] - A Ruby Calculator ?
-
Tell you what xrok1,
Here is a small Ruby script Calculator that binds to the Tools menu.
Bind it to a shortcut key and your in business.[Edit]
See the attached zip file two posts down...
[/Edit] -
Thanks, Gruff!
-
A minor thing - require 'Sketchup' causes sketchup.rb to load a second time. Loading sketchup.rb again doesn't really break anything, but it does create a duplicate Ruby Console entry in the Window menu.
It should be - require 'sketchup' (small s)
-
You are really having a bad day, Huh. Sorry for any confusion.
Attached is a zip file that contains both ruby_calc.rb and win32old.so.
Unzip and place them both in your plugins folder under sketchup.
I found it handy to bind the menu 'Tool/Ruby Calc' to a shortcut key. (I use Alt+Q)
This calculator doesn't have a history, but it will take any Ruby formatted Math equation and use it to drive the VCB.
-
Thanks for the advice Jim.
I updated the Ruby_Calc Zip attachment with your change. For any who get this far there are two calculators in this thread.
- TG_Calc.exe which is a Compiled Windows program. It has a number of features.
- Ruby_Calc.rb which is just a simple calc with no features.
Both only work with Windows and require the win32ole.so file.
both work by pumping keystrokes into the SU environment. -
I thought this worked. I tried the zip file contents in both SU2013 and SU2014.
I also tried installing via the SketchUcation Plugin Store. -
The script hasn't got
require 'langhandler'
Add that after therequire 'sketchup'
If an earlier loading script has already required it it might mask the lack of it.
However the line:
UI.menu("Tools").add_item($exStrings.GetString("Ruby Calc")) { rubycalc }
will also fail if$exStrings
is undefined as it loads - as that might get setup by another script too.
Frankly I'd forget about the langhandler completely, and change it to read:
UI.menu("Tools").add_item("Ruby Calc"){rubycalc}
-
Thanks TIG. Works now per your post.
If I wanted to add info to the taskbar below such as:
= Subtract, [] = Multiply, [/] = Divide, [%] return remainder, [**] = exponent, [ ( ) ] = group functions"*
what would be the proper ruby format and where should it be inserted?*# Ruby Calc
by Gruff
Oct 29th 2009
Many thanks to a4chitect for the win32ole section
Ruby Calc is a simple SketchUp for Windows calculator.
Feel free to hack and wack it.
Since it is run as a loose procedure rather than a class
it does not kick SU out of the currently running tool
Bind the Menu Item 'Ruby Calc' to a short cut key
For ease of use. (I use Alt-Q)
require 'sketchup'
[highlight=#ff0000:rs61bj0c]require 'langhandler'[/highlight:rs61bj0c]
require 'win32ole'#---
def rubycalc
prompt = [""]
default = [" "]
input = UI.inputbox prompt, default, "Ruby Calc"
fanswer = eval input[0]
sanswer = fanswer.to_s + "{ENTER}{ENTER}"Create an instance of the Wscript Shell
wsh = WIN32OLE.new('Wscript.Shell')
#Try to activate the Sketchup window:
if wsh.AppActivate(' - SketchUp Pro') || wsh.AppActivate(' - SketchUp')
wsh.SendKeys(sanswer)
else
puts "Impossible"
end
end#---
if( not file_loaded?("ruby_calc.rb") )
add_separator_to_menu("Tools")
[highlight=#ff0000:rs61bj0c]UI.menu("Tools").add_item("Ruby Calc")[/highlight:rs61bj0c] { rubycalc }
endfile_loaded("ruby_calc.rb")*
-
v 2.0.0 cleanup by Dan Rathbun : 16 Aug 2014
-
Module wrapped in
Gruff::RubyCalc
-
Method renamed:
Gruff::RubyCalc::command()
- statusbar help text displayed during input
- evaluation rescue wrapped with retry
- exits for empty input and cancellation
- Tweekable text placed in module constants
-
-
Gruff has not logged in to SCF for a year and 4 months. Is he OK ?
-
Thank you for your help, Dan and TIG.
-
Hi! Does it work in SU2016 ? I have a message, " Could not activate SketchUp application window."
-
@turbodizayn said:
Hi! Does it work in SU2016 ? I have a message, " Could not activate SketchUp application window."
I just tested version 2 of "ruby_calc_2.rb" in SketchUp 2016, and this works.
Version 2 is in this post:
http://sketchucation.com/forums/viewtopic.php?f=180&t=22660&view=unread#p535117
What is "it" you refer to ?
Advertisement