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

    Mysterious change of group bounding box coords

    Scheduled Pinned Locked Moved Developers' Forum
    3 Posts 2 Posters 121 Views 2 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 sdmitch

      I created a group and saved its' bounding box corner coordinates. I then added a series of faces on the yz plane, in a seperate group, that intersected the first group then a series of faces on the xz plane using the following code.

      <span class="syntaxdefault">mod&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model<br />ent&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mod</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_entities<br />sel&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">mod</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">selection<br />corg&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">sel</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">first<br />wid&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">corg</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">bounds</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">width<br />hgt&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">corg</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">bounds</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">height<br />dep&nbsp;</span><span class="syntaxkeyword">=&nbsp;</span><span class="syntaxdefault">corg</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">bounds</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">depth<br />cor</span><span class="syntaxkeyword">=[];</span><span class="syntaxdefault">facx</span><span class="syntaxkeyword">=[];</span><span class="syntaxdefault">facy</span><span class="syntaxkeyword">=[]<br /></span><span class="syntaxdefault">chopx</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_group</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">cex</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">chopx</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br />chopy</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">ent</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_group</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">cey</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">chopy</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">entities<br /></span><span class="syntaxkeyword">for&nbsp;</span><span class="syntaxdefault">i&nbsp;in&nbsp;0..7<br />&nbsp;cor</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">i</span><span class="syntaxkeyword">]=</span><span class="syntaxdefault">corg</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">bounds</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">corner</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">i</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">end<br />dx</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">wid</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">10</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">dy</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">hgt</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">10</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">dz</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">dep</span><span class="syntaxkeyword">/</span><span class="syntaxdefault">10<br />vx</span><span class="syntaxkeyword">=[</span><span class="syntaxdefault">dx</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">vy</span><span class="syntaxkeyword">=[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">dy</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">vz</span><span class="syntaxkeyword">=[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">dz</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">facx</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]=</span><span class="syntaxdefault">cor</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">facx</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]=</span><span class="syntaxdefault">cor</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">facx</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]=</span><span class="syntaxdefault">cor</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">6</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">facx</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]=</span><span class="syntaxdefault">cor</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">facy</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]=</span><span class="syntaxdefault">cor</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">facy</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]=</span><span class="syntaxdefault">cor</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">facy</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">]=</span><span class="syntaxdefault">cor</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">5</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">facy</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">3</span><span class="syntaxkeyword">]=</span><span class="syntaxdefault">cor</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">tr</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">Geom</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Transformation</span><span class="syntaxkeyword">.new(</span><span class="syntaxdefault">vx</span><span class="syntaxkeyword">);&nbsp;</span><span class="syntaxdefault">puts&nbsp;</span><span class="syntaxstring">"\nbefore"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">cor<br />1.upto</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">9</span><span class="syntaxkeyword">)&nbsp;do<br />&nbsp;</span><span class="syntaxdefault">facx</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">each</span><span class="syntaxkeyword">{|</span><span class="syntaxdefault">p</span><span class="syntaxkeyword">|&nbsp;</span><span class="syntaxdefault">p</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">transform</span><span class="syntaxkeyword">!&nbsp;</span><span class="syntaxdefault">tr</span><span class="syntaxkeyword">}<br />&nbsp;</span><span class="syntaxdefault">cex</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">facx</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">end<br />tr</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">Geom</span><span class="syntaxkeyword">;;</span><span class="syntaxdefault">Transformation</span><span class="syntaxkeyword">.new(</span><span class="syntaxdefault">vy</span><span class="syntaxkeyword">);&nbsp;</span><span class="syntaxdefault">puts&nbsp;</span><span class="syntaxstring">"\nafter"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">cor<br />1.upto</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">9</span><span class="syntaxkeyword">)&nbsp;do<br />&nbsp;</span><span class="syntaxdefault">facy</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">each</span><span class="syntaxkeyword">{|</span><span class="syntaxdefault">p</span><span class="syntaxkeyword">|&nbsp;</span><span class="syntaxdefault">p</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">transform</span><span class="syntaxkeyword">!&nbsp;</span><span class="syntaxdefault">tr</span><span class="syntaxkeyword">}<br />&nbsp;</span><span class="syntaxdefault">cey</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add_face</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">facy</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">end<br /></span>
      

      This is the resultschopped group.png

      and the bounding box coordinates before and after the first set of faces.

      before
      (18.014671", 3.751921", 0")
      (52.749799", 3.751921", 0")
      (18.014671", 64.897048", 0")
      (52.749799", 64.897048", 0")
      (18.014671", 3.751921", 1.89")
      (52.749799", 3.751921", 1.89")
      (18.014671", 64.897048", 1.89")
      (52.749799", 64.897048", 1.89")
      
      after
      (49.276286", 3.751921", 0")
      (52.749799", 3.751921", 0")
      (49.276286", 64.897048", 0")
      (52.749799", 64.897048", 0")
      (49.276286", 3.751921", 1.89")
      (52.749799", 3.751921", 1.89")
      (49.276286", 64.897048", 1.89")
      (52.749799", 64.897048", 1.89")
      
      

      I've tried adding .clone when saving the bounding box coordinates but it made no difference. Any ideas?

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

      http://sdmitch.blogspot.com/

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

        It was hard to follow your code with all the multiple statements on one line.

        But the reason your co-ords change is because you are transforming them.

        facx[0]=cor[0]
        This makes facx[0] reference cor[0] - they both point to the same value.

        You then transform the points in facx here: facx.each{|p| p.transform! tr}

        If you want to avoid this you must clone the point:
        facx[0]=cor[0].clone

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

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

          thomthom, Thanks for the help. The solution was to obvious I guess.

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

          http://sdmitch.blogspot.com/

          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