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

    CPoints at Bounding Box corners?

    Scheduled Pinned Locked Moved SketchUp Discussions
    sketchup
    15 Posts 3 Posters 564 Views 3 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.
    • TIGT Offline
      TIG Moderator
      last edited by

      This one liner does it, adding the 8 cpoints to the corners of the bounding-box of any selection

      m=Sketchup.active_model;b=Geom;;BoundingBox.new;m.selection.each{|e|b.add(e.bounds)};8.times{|i|m.active_entities.add_cpoint(b.corner(i))}
      

      It could probably do with some trapping etc... but you get the idea ?

      TIG

      1 Reply Last reply Reply Quote 0
      • Rich O BrienR Offline
        Rich O Brien Moderator
        last edited by

        @unknownuser said:

        It could probably do with some trapping etc... but you get the idea ?

        Not really πŸ˜•

        Download the free D'oh Book for SketchUp πŸ“–

        1 Reply Last reply Reply Quote 0
        • TIGT Offline
          TIG Moderator
          last edited by

          If you read the code it gets the bounds of the selection and adds cpoints at the bounds corners - that's all you need to know πŸ˜•
          Select some geometry and copy/paste the code into the Ruby Console to see what it does...

          TIG

          1 Reply Last reply Reply Quote 0
          • thomthomT Offline
            thomthom
            last edited by

            Doesn't take into account groups / components that are not aligned to the model axis.

            Thomas Thomassen β€” SketchUp Monkey & Coding addict
            List of my plugins and link to the CookieWare fund

            1 Reply Last reply Reply Quote 0
            • Rich O BrienR Offline
              Rich O Brien Moderator
              last edited by

              @tig said:

              If you read the code it gets the bounds of the selection and adds cpoints at the bounds corners - that's all you need to know πŸ˜•
              Select some geometry and copy/paste the code into the Ruby Console to see what it does...

              I realise how to use it. It's was the trapping comment that had me puzzled.

              Thanks anyway. Both of ye πŸ‘

              Download the free D'oh Book for SketchUp πŸ“–

              1 Reply Last reply Reply Quote 0
              • TIGT Offline
                TIG Moderator
                last edited by

                It does... in that it returns the bounds of the selection, and NOT individual objects within the selection, and a selection's bounding-box is always parallel to the axes irrespective of the selected objects' transformation... πŸ˜•
                Rich didn't ask for cpoints at the corners of one selected object's bounds.
                I gave him cpoints at the corners of the selection's bounds - which might not be the same thing for rotated individual groups/instances...

                TIG

                1 Reply Last reply Reply Quote 0
                • Rich O BrienR Offline
                  Rich O Brien Moderator
                  last edited by

                  Being able to select a series of groups and components then it places cpoints at all bounding boxes would be sweet.

                  Download the free D'oh Book for SketchUp πŸ“–

                  1 Reply Last reply Reply Quote 0
                  • TIGT Offline
                    TIG Moderator
                    last edited by

                    Try this

                    m=Sketchup.active_model;m.start_operation("BBcpts");m.selection.each{|e|next unless e.class==Sketchup;;Group or e.class==Sketchup;;ComponentInstance;t=e.transformation;e=e.definition if e.class==Sketchup;;ComponentInstance;b=Geom;;BoundingBox.new;e.entities.each{|a|b.add(a.bounds)};8.times{|i|m.active_entities.add_cpoint(b.corner(i).transform(t))}};m.commit_operation
                    

                    adds cpoints at the 8 corners of each selected group/instance's bbox, accounting for transformations... One step undoable.

                    TIG

                    1 Reply Last reply Reply Quote 0
                    • Rich O BrienR Offline
                      Rich O Brien Moderator
                      last edited by

                      Is getting these control point within the group/component possible?

                      It's anchors for alignment that I'm looking for. If it's too much hassle forget it.

                      On a layer would be kinda cool too πŸ˜•

                      Download the free D'oh Book for SketchUp πŸ“–

                      1 Reply Last reply Reply Quote 0
                      • TIGT Offline
                        TIG Moderator
                        last edited by

                        I originally has them inside each container but [foolishly] assumed you wanted them outside!

                        m=Sketchup.active_model;m.start_operation("BBcpts");m.selection.each{|e|next unless e.class==Sketchup;;Group or e.class==Sketchup;;ComponentInstance;e=e.definition if e.class==Sketchup;;ComponentInstance;b=Geom;;BoundingBox.new;e.entities.each{|a|b.add(a.bounds)};8.times{|i|e.entities.add_cpoint(b.corner(i)).layer=m.layers.add("BBCP")}};m.commit_operation
                        

                        This version puts the cpoints within each container and uses layer 'BBCP' for them.

                        TIG

                        1 Reply Last reply Reply Quote 0
                        • Rich O BrienR Offline
                          Rich O Brien Moderator
                          last edited by

                          Can i put it in a class then a def and load it to plugins?

                          Or is it a module?

                          Actually forget it πŸ˜’

                          Download the free D'oh Book for SketchUp πŸ“–

                          1 Reply Last reply Reply Quote 0
                          • Rich O BrienR Offline
                            Rich O Brien Moderator
                            last edited by

                            Sorry, Thanks TIG πŸ‘

                            Download the free D'oh Book for SketchUp πŸ“–

                            1 Reply Last reply Reply Quote 0
                            • TIGT Offline
                              TIG Moderator
                              last edited by

                              module ROB
                              
                              menu=UI.menu("Plugins").add_item("BBcpts"){self.bbcpts()}unless file_loaded?(File.basename(__FILE__)) 
                              file_loaded(File.basename(__FILE__))
                               
                              def self.bbcpts()
                              ### paste the main code here...
                              end
                              
                              end
                              

                              Copy/paste the code into a file in the Plugins folder called ROB-bbcpts.rb
                              Usage: type ROB.bbcpts OR pick "BBcpts" off the Plugins menu etc...

                              TIG

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

                              Advertisement