? [Question] - A Ruby Calculator ?
-
Hmmm there is a User32.dll sendkeys function but why not use ruby entirely.
I tried this code but it fails on the: require 'win32ole'
I downloaded and installed full ruby but it doesn't seem to make a difference.Perhaps you can get this to work?
require 'Sketchup' require 'win32ole' #--- def drive_vcb wsh = WIN32OLE.new('Wscript.Shell') # Do not know if we need to put the focus on SU since we are in SU. if wsh.AppActivate('- SketchUp') sleep(1) # Push Test keystrokes into SU wsh.SendKeys('100.00{ENTER}') end end if( not file_loaded?("test_me.rb") ) add_separator_to_menu("Draw") UI.menu("Draw").add_item($exStrings.GetString("test_me")) { drive_vcb } end #--- file_loaded("test_me.rb")
-
perhaps this thread might help
http://forums.sketchucation.com/viewtopic.php?f=180&t=21281put the attached file into plugins folder, no more load errors
this script sends "20" into sketchup - when vcb is active - this gets put in
-
A4chitect:
Thanks! It works on my PC now as well.Chris:
There you go. You can write a calculator with a Web page front end that uses code like that in 'test_me.rb' to drive the VCB. That would be a better solution as it would be native to SketchUp for Windows. Much much better than my Compiled app. -
This looks like a great tool for me as I need a calculator quite often. The way it seems to work best for me is.
- Put the formula in the calculator and press enter once.
- Back in SU select the tool ie Move and the handle point then click on the TG Cal and return the mouse to show the move direction and then press Enter.
Thanks
Keith -
running windows7 here.
-
Ah! that would be the problem then. Definite version issue.
Since I do not have Windows7 I cannot say that it will ever work for you.Are there modifications you can do to get it to run as though it were launched from WinXP? XP has tools to run older OS products through it's shortcut options.
Looks nice though.
-
tried it in XP compatibility mode. still crashed,
-
arrrrg!
-
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."
Advertisement