sketchucation logo sketchucation
    • 登入
    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

    Explode and regroup script?

    已排程 已置頂 已鎖定 已移動 Extensions & Applications Discussions
    extensions
    26 貼文 3 Posters 4.7k 瀏覽 3 Watching
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • sdmitchS 離線
      sdmitch
      最後由 編輯

      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 條回覆 最後回覆 回覆 引用 0
      • G 離線
        gregswk
        最後由 編輯

        @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 條回覆 最後回覆 回覆 引用 0
        • pilouP 離線
          pilou
          最後由 編輯

          Always amazazed that few line can make! Bravo! 😎

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

          1 條回覆 最後回覆 回覆 引用 0
          • G 離線
            gregswk
            最後由 編輯

            @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 條回覆 最後回覆 回覆 引用 0
            • sdmitchS 離線
              sdmitch
              最後由 編輯

              @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 條回覆 最後回覆 回覆 引用 0
              • G 離線
                gregswk
                最後由 編輯

                @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 條回覆 最後回覆 回覆 引用 0
                • 1
                • 2
                • 2 / 2
                • 第一個貼文
                  最後的貼文
                Buy SketchPlus
                Buy SUbD
                Buy WrapR
                Buy eBook
                Buy Modelur
                Buy Vertex Tools
                Buy SketchCuisine
                Buy FormFonts

                Advertisement