[Plugin] FloorGenerator ( Updated 6-Apr-2017)
-
@tt_su said:
I think offset.rb modifies core classes which breaks plugins.
Shortly after finding and using offset.rb, it was pointed out that that could be a potential problem so I did away with the class and just used it as a method. The first versions of Floor Generator used this offset method until I tried to add the Herringbone pattern. It failed apparently because the way the faces are arranged it cause multiple edges to be reversed in the face and it couldn't handle that. So I had to create my own version.
-
hi,
i've used your script for several times, it's nice and run well. But suddenly, the script didn't load. When I check ruby console, it show some error message like this :
@unknownuser said:
Error: #<NoMethodError: undefined method
to_l' for nil:NilClass> C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:89:in
dialog'
C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:63:ininitialize' C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:33:in
new'
C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:33:inblock in <top (required)>' -e:1:in
call'What should I do to make the script run again?
Thank's before
-
@azumayugo said:
hi,
i've used your script for several times, it's nice and run well. But suddenly, the script didn't load. When I check ruby console, it show some error message like this :
@unknownuser said:
Error: #<NoMethodError: undefined method
to_l' for nil:NilClass> C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:89:in
dialog'
C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:63:ininitialize' C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:33:in
new'
C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:33:inblock in <top (required)>' -e:1:in
call'What should I do to make the script run again?
Thank's before
It is probably a problem related to the saved defaults. If the plugin runs at all, choose the reset option at the bottom of the pattern list to reset the defaults.
If that isn't possible, paste the following into the Ruby Console and press Enter.
["Brick","Tile","Wood","Tweed","Hbone","BsktWv","HpScth1","HpScth2",'HpScth3',"HpScth4","IrPoly","Hexgon","Octgon","Wedge","I_Block"].each{|o| Sketchup.write_default("FloorGenerator",o,nil)};
-
@sdmitch said:
@azumayugo said:
hi,
i've used your script for several times, it's nice and run well. But suddenly, the script didn't load. When I check ruby console, it show some error message like this :
@unknownuser said:
Error: #<NoMethodError: undefined method
to_l' for nil:NilClass> C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:89:in
dialog'
C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:63:ininitialize' C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:33:in
new'
C:/Users/Design/AppData/Roaming/SketchUp/SketchUp 2014/SketchUp/Plugins/SDM_FloorGenerator_WD.rb:33:inblock in <top (required)>' -e:1:in
call'What should I do to make the script run again?
Thank's before
It is probably a problem related to the saved defaults. If the plugin runs at all, choose the reset option at the bottom of the pattern list to reset the defaults.
If that isn't possible, paste the following into the Ruby Console and press Enter.
["Brick","Tile","Wood","Tweed","Hbone","BsktWv","HpScth1","HpScth2",'HpScth3',"HpScth4","IrPoly","Hexgon","Octgon","Wedge","I_Block"].each{|o| Sketchup.write_default("FloorGenerator",o,nil)};
Thank's sdmitch. It work again
-
Hello Everyone !
First of all, thank you for the great job you did to bring us that tool.
However, I have an issue : I wanted to be able to run it through a toolbar button (which I successfully did, but when I close the FG window the button is still activated and if I try to run it again the FG window doesnt show up anymore (even if I use other tools after that).
Could you please help me to fix it ?
-
@unsuns said:
Hello Everyone !
First of all, thank you for the great job you did to bring us that tool.
However, I have an issue : I wanted to be able to run it through a toolbar button (which I successfully did, but when I close the FG window the button is still activated and if I try to run it again the FG window doesnt show up anymore (even if I use other tools after that).
Could you please help me to fix it ?
Just don't "X" out of the WebDialog window, instead Right click in space or select any other tool. This will close the WebDialog window an unselect the Toolbar Icon.
-
@unknownuser said:
Just don't "X" out of the WebDialog window, instead Right click in space or select any other tool. This will close the WebDialog window an unselect the Toolbar Icon.
Sam. I think you could try trigger some actions during the closing of the dialog with "X", using @yourdialog.set_on_close { #set closing action here }. If you are not already using it, that is.
As usual concerning webdialogs, I don't know how reliable that method is.. -
I tried what you said jolran but I couldn't figure it out. How should I do it ?
Here is the code:...
[mod=:3izmkj1d]Please don't post entire blocks of code from other authors - it's bad manners...
Extracts are fine...[/mod:3izmkj1d] -
@jolran said:
@unknownuser said:
Just don't "X" out of the WebDialog window, instead Right click in space or select any other tool. This will close the WebDialog window an unselect the Toolbar Icon.
Sam. I think you could try trigger some actions during the closing of the dialog with "X", using @yourdialog.set_on_close { #set closing action here }. If you are not already using it, that is.
As usual concerning webdialogs, I don't know how reliable that method is..I wasn't. Another one of those things that is there but not a necessity so I just ignored it. Thanks for the suggestion.
-
@unknownuser said:
I tried what you said jolran but I couldn't figure it out. How should I do it ?
unsuns, I meant this to be tried by Sam at developer-level. I havent dug in his script, so this suggestion was a shot in the dark.
@unknownuser said:
I wasn't. Another one of those things that is there but not a necessity so I just ignored it. Thanks for the suggestion.
Hope it helps.
/Joel -
Can't I do it myself ? To help improve that script
-
Posted new version.
Unsuns, I would appreciate it if you would let me take care of my plugins. Thank you.
-
That's alright ! Thank you !
-
Did you test it ?
Now when I select a pattern it closes the window, so I have to reopen to adjust settings and if I select another pattern it's the same. -
@sdmitch said:
Posted new version.
Unsuns, I would appreciate it if you would let me take care of my plugins. Thank you.
Each pattern, cannot directly activate command, to repeat the icon to performγ
-
@unsuns said:
Did you test it ?
Now when I select a pattern it closes the window, so I have to reopen to adjust settings and if I select another pattern it's the same.Apparently not enough!
The .set_on_close had unintended consequences and has been removed. Although it did seem to fix the problem of X'ing out, it, for some bazaar reason, was triggered when the pattern was changed. My bad
-
The X-ing problem is back again !
-
@unsuns said:
The X-ing problem is back again !
Yes I know and it will be until I can figure out why changing the pattern selection causes the window to close.
Why do you insist on X'ing out of the window? If it is in your way then minimize it.
-
@jolran said:
Sam I'm looking at your code here. Cant remember which version this is. So you may have changed this behavior.
But in a callback you have a dialog close ?You have a select with an event onchange:
<select onChange='patternchanged(value)'>
The function then sends the callback
function patternchanged(value){ > window.location='skp;PatternChanged@'+value; > }
In the callback block you have a dlg.close. So everytime select change dialog closes..
@@dlg.add_action_callback("PatternChanged") {|d,p| > @@opt=p; puts p > if @@opt=="Reset" then > ["Brick","Tile","Wood","Tweed","Hbone","BsktWv","HpScth","Hexgon","Octgon","Two2One" ,"IrPoly"].each{|o| > Sketchup.write_default("FloorGenerator",o,nil)};@@opt="Tile"; > end > @@dlg.close; @@dlg=nil; self.dialog > }
I also see you have the command self.dialog trying to reopend the dialog ?
But it is set to nil before. Don't know if that messes things up..
Maybe a timing issue.Edit: sorry meant to post this in the devlopper forum where you posted specific question. Copied and pasted wrong...
Yes I finally figured that all out. I just had to add a variable that I set to true if the PatternChanged and the window was closed and recreated. I deleted the post to the Developer forum as soon as I figured it out so as not to embarrass my self further.
-
Sam I'm looking at your code here. Cant remember which version this is. So you may have changed this behavior.
But in a callback you have a dialog close ?You have a select with an event onchange:
<select onChange='patternchanged(value)'>
The function then sends the callback
function patternchanged(value){ window.location='skp;PatternChanged@'+value; }
In the callback block you have a dlg.close. So everytime select change dialog closes..
@@dlg.add_action_callback("PatternChanged") {|d,p| @@opt=p; puts p if @@opt=="Reset" then ["Brick","Tile","Wood","Tweed","Hbone","BsktWv","HpScth","Hexgon","Octgon","Two2One" ,"IrPoly"].each{|o| Sketchup.write_default("FloorGenerator",o,nil)};@@opt="Tile"; end @@dlg.close; @@dlg=nil; self.dialog }
I also see you have the command self.dialog trying to reopend the dialog ?
But it is set to nil before. Don't know if that messes things up..
Maybe a timing issue ?
Advertisement