[Plugin] Rotate 90 around [X, Y, Z] axis
-
@hfm said:
okay, very nice script... but could you please also make it work on X and Y axis? And make it so that you can select a shortcut for the tools?
Tried to edit it myself but my knowledge of ruby is lacking
[did get the 15 degrees to work though ]I don't know much about ruby either, but here is a simplified version of the plugin:
rotate around the component origin instead of center
only around z axis and 90 degrees
no context menu, a line in the plugin menu instead (so you can add a keyboard shortcut (pop up menu, window>preferences>shortcutrequire 'sketchup.rb' ## ## Rotate selected component instance 90 degrees around Z axis ## ## Copyright (c) 2010 Clark Bremer (aka daiku) ## Northern Lights Timber Framing ## clarkb@northernlightstimberframing.com ## ## 05/02/12; rotation autour de l'origine du composant, axe z seulement, acces menu deroulant ou raccourci clavier ## 9/10/2010; Multiple Groups/Comps ## 5/17/08; All 3 axes. Input from Matt666 ## 4/24/08; Use center as rotation point instead of CI origin. Also works on groups now. ## # Add a menu item to launch our plugin. UI.menu("PlugIns").add_item("rotation90z") { rotate90z } # ----------------------------------------------------------------------------- def selected_comps_and_groups mm = Sketchup.active_model ss = mm.selection return nil if ss.empty? ss.each do |cc| return nil if not ((cc.instance_of? Sketchup;;ComponentInstance) or (cc.instance_of? Sketchup;;Group)) end ss end #def rotate90(sel, axis) def rotate90z sel = selected_comps_and_groups # axis == "z" rv = Geom;;Vector3d.new(0,0,1) # rv = Geom;;Vector3d.new(0,0,1) if axis == "z" # rv = Geom;;Vector3d.new(0,1,0) if axis == "y" # rv = Geom;;Vector3d.new(1,0,0) if axis == "x" ra = 90.degrees #rt = Geom;;Transformation.rotation(rp, rv, ra) #autour du centre de la boite enveloppe sel.each do |ent| # rp = Geom;;Point3d.new(ent.bounds.center) #rotation point rp = Geom;;Point3d.new(ent.transformation.origin) ent.transform!(Geom;;Transformation.rotation(rp, rv, ra)) end end #if( not file_loaded?("rot90.rb") ) # UI.add_context_menu_handler do |menu| # if menu == nil then # UI.messagebox("Error setting context menu handler") # else # if (sel = selected_comps_and_groups) # sbm = menu.add_submenu("Rotate 90") # sbm.add_item("Around Red") {rotate90 sel, "x"} # sbm.add_item("Around Green") {rotate90 sel, "y"} # sbm.add_item("Around Blue") {rotate90 sel, "z"} # end # end # # end #end #file_loaded("rot90.rb")
-
@glro said:
@hfm said:
okay, very nice script... but could you please also make it work on X and Y axis? And make it so that you can select a shortcut for the tools?
Tried to edit it myself but my knowledge of ruby is lacking
[did get the 15 degrees to work though ]I don't know much about ruby either, but here is a simplified version of the plugin:
rotate around the component origin instead of center
only around z axis and 90 degrees
no context menu, a line in the plugin menu instead (so you can add a keyboard shortcut (pop up menu, window>preferences>shortcutrequire 'sketchup.rb' > ## > ## Rotate selected component instance 90 degrees around Z axis > ## > ## Copyright (c) 2010 Clark Bremer (aka daiku) > ## Northern Lights Timber Framing > ## clarkb@northernlightstimberframing.com > ## > ## 05/02/12; rotation autour de l'origine du composant, axe z seulement, acces menu deroulant ou raccourci clavier > ## 9/10/2010; Multiple Groups/Comps > ## 5/17/08; All 3 axes. Input from Matt666 > ## 4/24/08; Use center as rotation point instead of CI origin. Also works on groups now. > ## > > # Add a menu item to launch our plugin. > UI.menu("PlugIns").add_item("rotation90z") { rotate90z } > # ----------------------------------------------------------------------------- > > > def selected_comps_and_groups > mm = Sketchup.active_model > ss = mm.selection > return nil if ss.empty? > ss.each do |cc| > return nil if not ((cc.instance_of? Sketchup;;ComponentInstance) or (cc.instance_of? Sketchup;;Group)) > end > ss > end > > #def rotate90(sel, axis) > def rotate90z > sel = selected_comps_and_groups > # axis == "z" > rv = Geom;;Vector3d.new(0,0,1) > # rv = Geom;;Vector3d.new(0,0,1) if axis == "z" > # rv = Geom;;Vector3d.new(0,1,0) if axis == "y" > # rv = Geom;;Vector3d.new(1,0,0) if axis == "x" > ra = 90.degrees > #rt = Geom;;Transformation.rotation(rp, rv, ra) #autour du centre de la boite enveloppe > sel.each do |ent| > # rp = Geom;;Point3d.new(ent.bounds.center) #rotation point > rp = Geom;;Point3d.new(ent.transformation.origin) > ent.transform!(Geom;;Transformation.rotation(rp, rv, ra)) > end > end > > > > #if( not file_loaded?("rot90.rb") ) > # UI.add_context_menu_handler do |menu| > # if menu == nil then > # UI.messagebox("Error setting context menu handler") > # else > # if (sel = selected_comps_and_groups) > # sbm = menu.add_submenu("Rotate 90") > # sbm.add_item("Around Red") {rotate90 sel, "x"} > # sbm.add_item("Around Green") {rotate90 sel, "y"} > # sbm.add_item("Around Blue") {rotate90 sel, "z"} > # end > # end > # > # end > #end > > > #file_loaded("rot90.rb")
How do I use this plugin I put the file in plugins and there is nothing in plugins dropdown and nothing when I right click.
-
Great plugin when mapped to a shortcut. Thanks Clark!
FYI everybody, Clark just headed up a local meetup about ruby programming.
-
Sorry, does anyone know hot to use this very useful plugin in SketchUp2016? I tried just putting it with other rb files in rooth folder, but it didn't work. Help please!
-
Hello! Thanks for the plugin! For some reason Im having problem assigning a keybouard shortcut for certain actions. The plugin does not appear in shortcuts list.
How can I do that?
Thank you.
-
@kmyklpenter said:
The plugin does not appear in shortcuts list.
Do you have a group or component selected in the model? Like other Context menu items, you need to have something selected that would make this plugin appear in the menu.
-
hello im a fan of this extension. simple yet useful. im just hope it to rotate even ungroup entities for the next version update.
-
How to make only the axis of a component or a group rotate?
-
Great plugin, thanks a lot
-
This Plugin is the bomb.. such a simple task, but mapped to shortcuts is so powerful. i use this everyday and would be genuinely lost without it. Thankyou!!
-
@freestylerboo said in [Plugin] Rotate 90 around [X, Y, Z] axis:
This Plugin is the bomb.. such a simple task, but mapped to shortcuts is so powerful. i use this everyday and would be genuinely lost without it. Thankyou!!
Imagine if there was a tool handled rotation, translation and scaling.....
-
@Rich-O-Brien said in [Plugin] Rotate 90 around [X, Y, Z] axis:
@freestylerboo said in [Plugin] Rotate 90 around [X, Y, Z] axis:
This Plugin is the bomb.. such a simple task, but mapped to shortcuts is so powerful. i use this everyday and would be genuinely lost without it. Thankyou!!
Imagine if there was a tool handled rotation, translation and scaling.....
This looks great!
Advertisement