sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    πŸ›£οΈ Road Profile Builder | Generate roads, curbs and pavements easily Download

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

    Scheduled Pinned Locked Moved Plugins
    49 Posts 28 Posters 58.0k 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.
    • 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