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

    Explode and regroup script?

    Scheduled Pinned Locked Moved Extensions & Applications Discussions
    extensions
    26 Posts 3 Posters 4.2k 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.
    • sdmitchS Offline
      sdmitch
      last edited by

      The problem is some groups being dropped on "top" of others already moved to the surface.

      So to avoid that conflict, I have modified the previous code I posted.

      mod = Sketchup.active_model
      sel = mod.selection
      gat = []
      sel.grep(Sketchup;;Group){|g|
       o = [g.bounds.center.x,g.bounds.center.y,g.bounds.min.z]
       p = mod.raytest([o,[0,0,-1]])[0];
       gat<<[g,Geom;;Transformation.new(p-g.bounds.min)] if p
      }
      gat.each{|g| g[0].transform!(g[1])}
      
      

      badra 5 skp 8.skp

      Nothing is worthless, it can always be used as a bad example.

      http://sdmitch.blogspot.com/

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

        @sdmitch said:

        The problem is some groups being dropped on "top" of others already moved to the surface.

        So to avoid that conflict, I have modified the previous code I posted.

        mod = Sketchup.active_model
        > sel = mod.selection
        > gat = []
        > sel.grep(Sketchup;;Group){|g|
        >  o = [g.bounds.center.x,g.bounds.center.y,g.bounds.min.z]
        >  p = mod.raytest([o,[0,0,-1]])[0];
        >  gat<<[g,Geom;;Transformation.new(p-g.bounds.min)] if p
        > }
        > gat.each{|g| g[0].transform!(g[1])}
        > 
        

        Oh my God, thank you so much, sdmitch!!
        It is working perfectly!! πŸ˜„ πŸ‘ πŸ‘ πŸŽ‰

        1 Reply Last reply Reply Quote 0
        • pilouP Offline
          pilou
          last edited by

          Always amazazed that few line can make! Bravo! 😎

          Frenchy Pilou
          Is beautiful that please without concept!
          My Little site :)

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

            @sdmitch said:

            The problem is some groups being dropped on "top" of others already moved to the surface.

            So to avoid that conflict, I have modified the previous code I posted.

            mod = Sketchup.active_model
            > sel = mod.selection
            > gat = []
            > sel.grep(Sketchup;;Group){|g|
            >  o = [g.bounds.center.x,g.bounds.center.y,g.bounds.min.z]
            >  p = mod.raytest([o,[0,0,-1]])[0];
            >  gat<<[g,Geom;;Transformation.new(p-g.bounds.min)] if p
            > }
            > gat.each{|g| g[0].transform!(g[1])}
            > 
            

            I'm sorry, Sdmitch... There is still one problem.. πŸ˜•
            Capture2.JPG
            Capture3.JPG
            The groups are moving by Z axis perfectly, but when it goes down to terrain, they are changing their X and Y positions. They are messing with each other.. πŸ˜•
            Why is it happening?

            1 Reply Last reply Reply Quote 0
            • sdmitchS Offline
              sdmitch
              last edited by

              @gregswk said:

              @sdmitch said:

              The problem is some groups being dropped on "top" of others already moved to the surface.

              So to avoid that conflict, I have modified the previous code I posted.

              mod = Sketchup.active_model
              > > sel = mod.selection
              > > gat = []
              > > sel.grep(Sketchup;;Group){|g|
              > >  o = [g.bounds.center.x,g.bounds.center.y,g.bounds.min.z]
              > >  p = mod.raytest([o,[0,0,-1]])[0];
              > >  gat<<[g,Geom;;Transformation.new(p-o)] if p
              > > }
              > > gat.each{|g| g[0].transform!(g[1])}
              > > 
              

              I'm sorry, Sdmitch... There is still one problem.. πŸ˜•
              [attachment=2:kcc5danh]<!-- ia2 -->Capture2.JPG<!-- ia2 -->[/attachment:kcc5danh]
              [attachment=1:kcc5danh]<!-- ia1 -->Capture3.JPG<!-- ia1 -->[/attachment:kcc5danh]
              The groups are moving by Z axis perfectly, but when it goes down to terrain, they are changing their X and Y positions. They are messing with each other.. πŸ˜•
              Why is it happening?

              Oops. My bad. I forgot to change the "origin" in the transformation. Code has been fixed.


              badra 5 skp 8.skp

              Nothing is worthless, it can always be used as a bad example.

              http://sdmitch.blogspot.com/

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

                @sdmitch said:

                Oops. My bad. I forgot to change the "origin" in the transformation. Code has been fixed.

                Wonderful, Sdmitch!
                Now it is perfect!!! πŸŽ‰ πŸŽ‰
                Thank you so much!!! πŸ˜„

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

                Advertisement