sketchucation logo sketchucation
    • Login
    πŸ›£οΈ 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 57.9k 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 Offline
                          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