Mathematics related problem
-
prompts = ["Enter the bending moment" ] bending = [0.mm] results = inputbox prompts, bending, "Analyse Beam" @M = bending # Enter @M = 340000000 at this point for testing @K = ((@M).to_f / (@b*(@d**2)*@fck)) UI.messagebox (@K)
when I do this in sketchup,
I am getting @K = 1.9999I dont understand I put UI.messagebox for all values they are fine, when I run the same code in IRB its still fine. I have tried several other options changed the order here and there still stuck!
I have another question, instead of using [0.mm] can I use anything else? It should actually be Nmm, how can I make that appear on sketchup message box?
-
@meeta said:
I dont understand I put UI.messagebox for all values they are fine, when I run the same code in IRB its still fine. I have tried several other options changed the order here and there still stuck!
What is the problem/error? What is expected?
@meeta said:
I have another question, instead of using [0.mm] can I use anything else? It should actually be Nmm, how can I make that appear on sketchup message box?
bending = ["Nmm"]
?
btw, 0.mm is the same as 0. -
-
When I substitute your variables with the values you mentioned and run it in the Console I get:
` k = (340000000.0 / (300*(600**2)*40))
0.0787037037037037`
-
OMG i misquoted again... sorry about that
yes it is supposed to come
@K = 0.07870 -
Seems to be an issue with the inputbox:
(I entered 340000000 into the inputbox)
prompts = ["Enter the bending moment" ] ["Enter the bending moment"] bending = [0.mm] [0.0] results = inputbox prompts, bending, "Analyse Beam" [13385826.7716535]
But if you instead do:
prompts = ["Enter the bending moment" ] ["Enter the bending moment"] bending = ['Nmm'] ["Nmm"] results = inputbox prompts, bending, "Analyse Beam" ["340000000"]
So it seems that if the default value is a Number or Length - then Sketchup will return that type. In this case there was a problem as it converted 340000000 into inches.
It seems to only occur when you pass a Length - not a Number.
prompts = ["Enter the bending moment" ] ["Enter the bending moment"] bending = [0] [0] results = inputbox prompts, bending, "Analyse Beam" [340000000]
-
An input box always takes the 'type' of its input as that set by the initial default value: so start with:
1 if you expect an integer input e.g. 12
1.0 if you expect a float input e.g. 12.345
1.mm if you expect a length input e.g. 12.3, 1mm, 12.3mm, 12"
"" if you expect text-string input, e.g '1 gallon' [which you'd then parse for info] -
@tig said:
An input box always takes the 'type' of its input as that set by the initial default value:
This is something that should be on the manual. I'll add it to the list.
-
yes i can see what you mean.. this is confusing for me.. I will do some experiments and figure it out! thank you fellows
-
All you need to do is not pass on the default value as a Length class. Use Float, Integer or String.
-
-
@gruff said:
Perhaps I am just a raw beginner myself but it appears that in his original snippet meeta is setting @M = bending.
Shouldn't that be @M = result?yes your absolutely true.. i corrected that in my code and yet its showing the same results.. and besides if it were to be 0 then @M / 'anything ' = NaN? there is some problem there.. but I got a newer problem after sorting that out.. this is more interesting i reckon.. please have a look at this
@b = 300 @h = 280 weight =((25.0*@b*@h) / 10**6) prompts = ["Variable Load(kN/m) ", "Permanent Load(kN/m) ", "Max Moment known(Nmm)"] loads = [0.0, 0.0, 0.0] #At this point enter 21, 50.1 and 0 results = inputbox prompts, loads, "Loads apart from Self-weight/ Or if moment is known, Please enter" variable_load, permanent_load, moment = results if (moment != 0) @M = moment else uls = (1.35*variable_load + 1.5*permanent_load + 1.5*weight)*@length UI.messagebox(@M) UI.messagebox(weight) UI.messagebox(results) @M = 0.11*uls*@length @shear = 0.60 * uls UI.messagebox(uls) UI.messagebox(@M) end
I don't know why, the weight that it should be showing is 2.1, but its showing 0.0032 something at the very beginning of the code.. its really taking a toll on me now! I know that many UI boxes is absolutely silly but that's my way of debugging because I know no other way! pls recommend any other method for debugging!
-
@meeta said:
I know that many UI boxes is absolutely silly but that's my way of debugging because I know no other way! pls recommend any other method for debugging!
Output the values to the Ruby Console, use the
puts
method.puts "Hello World"
-
@thomthom said:
@meeta said:
I know that many UI boxes is absolutely silly but that's my way of debugging because I know no other way! pls recommend any other method for debugging!
Output the values to the Ruby Console, use the
puts
method.puts "Hello World"
yes i tried doing that,, but strangely the answer in ruby is always right but not in sketchup! so i figured something must be wrong in the code or in sketchup! hopefully its my code because that'll be easier to fix
-
@meeta said:
yes i tried doing that,, but strangely the answer in ruby is always right but not in sketchup! so i figured something must be wrong in the code or in sketchup! hopefully its my code because that'll be easier to fix
??
You are aware of the Ruby Console window in Sketchup, right? That's the one I'm referring to. That will let you see the values you get from the script running in SU's Ruby. -
@thomthom said:
You are aware of the Ruby Console window in Sketchup, right? That's the one I'm referring to. That will let you see the values you get from the script running in SU's Ruby.
oh you mean that ruby console,, i thought you were talking of the interactive ruby console.. sorry about them.. let me try it out now!
-
There are people that have worked out how to hook up debuggers to SU's ruby. But I've so far managed by using the Sketchup Ruby Console to output data throughout the script when I need to debug errors and abnormalities. It's the Sketchup Ruby Console that most people here on this forum will be referring to when they mention the Console.
-
ohh really? thanks i am newb with sketchup programming have been using sketchup for a few years though.. anyways now i wont look like a fool if anyone says console and i think of the irb! thanks
-
For most people here, the Sketchup Ruby Console is the debugging tool. Some are also using Jim's custom console which has some extended features.
-
FYI, I'd never used Ruby before I started making plugins for SU. And I only recently installed a normal Ruby installation on my computer - never touched a full Ruby installation before.
So there's no wonder we're getting confused here.
Advertisement