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!
    ⚠️ Important | Libfredo 15.6b introduces important bugfixes for Fredo's Extensions Update

    CPoints at Bounding Box corners?

    Scheduled Pinned Locked Moved SketchUp Discussions
    sketchup
    15 Posts 3 Posters 639 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.
    • Rich O BrienR Offline
      Rich O Brien Moderator
      last edited by

      Is there a CPoints at Bounding Box corners plugin?

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

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

        hmm... not sure... a two step would be to use my Bounding box plugin and then run xLine on it.

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

        1 Reply Last reply Reply Quote 0
        • TIGT Online
          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 Online
              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 Online
                    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 Online
                        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 Online
                            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 Online
                                  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