sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] Rotate 90 around [X, Y, Z] axis

    Scheduled Pinned Locked Moved Plugins
    49 Posts 28 Posters 57.6k Views 28 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T Offline
      tor
      last edited by

      Well, what I was hoping for is to select a component from the component browser to place into the model, then as it is moving with the mouse at the insertion point, rotate it, so that it's in the correct orientation. Kind of a building block assembly system. And, sometimes a component would need to be rotated, sometimes not.

      Obviously, I can put the component "down", rotate, then move it, but was just hoping to simplify that process in the creation of numerous modular assemblies.

      But it seems that the component being placed is not actually selected, per se, so no shortcut key works on it.

      Tor

      1 Reply Last reply Reply Quote 0
      • I Offline
        InterArchi
        last edited by

           Thank u
        
        1 Reply Last reply Reply Quote 0
        • EarthMoverE Offline
          EarthMover
          last edited by

          Is there a plugin out there that will do this to multiple components at the same time? Or one that will rotate each around it's own z axis simultaneously?

          3D Artist at Clearstory 3D Imaging
          Guide Tool at Winning With Sketchup
          Content Creator at Skapeup

          1 Reply Last reply Reply Quote 0
          • daikuD Offline
            daiku
            last edited by

            @earthmover said:

            Is there a plugin out there that will do this to multiple components at the same time? Or one that will rotate each around it's own z axis simultaneously?

            Easy change. Updated file at the top of the thread. CB.

            Clark Bremer
            http://www.northernlightstimberframing.com

            1 Reply Last reply Reply Quote 0
            • EarthMoverE Offline
              EarthMover
              last edited by

              That was fast. Thanks a ton!!

              3D Artist at Clearstory 3D Imaging
              Guide Tool at Winning With Sketchup
              Content Creator at Skapeup

              1 Reply Last reply Reply Quote 0
              • G Offline
                glro
                last edited by

                @jim 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 always wanted to make a rotator that is sensitive to the view. For example, it would rotate the selection around the axis that is closest to the axis from the camera to the target. If you wanted ro rotate around the Z, you could select the entities, go to Top view and press the shortcut. If you wanted to rotate around the Y axis, select the entities, go to the Front view and use the same shortcut.

                What do you think?

                My idea is that, having to change the view would take away the advantage of having the rotator sensitive to the view

                I have another suggestion: Rot90.rb rotate the component around (ent.bounds.center); would it be possible to rotate around the origin instead, as you did in your mover2.rb plugin?

                1 Reply Last reply Reply Quote 0
                • G Offline
                  glro
                  last edited by

                  @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>shortcut

                  require '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")
                  
                  1 Reply Last reply Reply Quote 0
                  • M Offline
                    Mainline411
                    last edited by

                    @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>shortcut

                    require '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.

                    1 Reply Last reply Reply Quote 0
                    • D Offline
                      d12dozr
                      last edited by

                      Great plugin when mapped to a shortcut. Thanks Clark!

                      FYI everybody, Clark just headed up a local meetup about ruby programming. 🎉

                      3D Printing with SketchUp Book
                      http://goo.gl/f7ooYh

                      1 Reply Last reply Reply Quote 0
                      • W Offline
                        waltersalter
                        last edited by

                        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!

                        1 Reply Last reply Reply Quote 0
                        • K Offline
                          Kmyklpenter
                          last edited by

                          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.

                          1 Reply Last reply Reply Quote 0
                          • Dave RD Offline
                            Dave R
                            last edited by

                            @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.
                            Screenshot - 3_18_2020 , 7_52_15 AM.png

                            Etaoin Shrdlu

                            %

                            (THERE'S NO PLACE LIKE)

                            G28 X0.0 Y0.0 Z0.0

                            M30

                            %

                            1 Reply Last reply Reply Quote 0
                            • O Offline
                              oman3000
                              last edited by

                              hello im a fan of this extension. simple yet useful. im just hope it to rotate even ungroup entities for the next version update. 😄

                              1 Reply Last reply Reply Quote 0
                              • V Offline
                                Vizan
                                last edited by

                                How to make only the axis of a component or a group rotate?

                                1 Reply Last reply Reply Quote 0
                                • T Offline
                                  tubkanobaka
                                  last edited by

                                  Great plugin, thanks a lot 🤓

                                  1 Reply Last reply Reply Quote 0
                                  • F Offline
                                    freestylerboo
                                    last edited by

                                    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!!

                                    Rich O BrienR 1 Reply Last reply Reply Quote 0
                                    • Rich O BrienR Online
                                      Rich O Brien Moderator @freestylerboo
                                      last edited by

                                      @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.....
                                      SketchUp_DVdFogvryr.gif

                                      Download the free D'oh Book for SketchUp 📖

                                      V 1 Reply Last reply Reply Quote 0
                                      • V Offline
                                        Vizan @Rich O Brien
                                        last edited by

                                        @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.....
                                        SketchUp_DVdFogvryr.gif

                                        This looks great!

                                        1 Reply Last reply Reply Quote 0
                                        • 1
                                        • 2
                                        • 3
                                        • 3 / 3
                                        • First post
                                          Last post
                                        Buy SketchPlus
                                        Buy SUbD
                                        Buy WrapR
                                        Buy eBook
                                        Buy Modelur
                                        Buy Vertex Tools
                                        Buy SketchCuisine
                                        Buy FormFonts

                                        Advertisement