Mysterious change of group bounding box coords
-
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 </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model<br />ent </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">mod</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_entities<br />sel </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">mod</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">selection<br />corg </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">sel</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">first<br />wid </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">width<br />hgt </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">height<br />dep </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">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 </span><span class="syntaxdefault">i in 0..7<br /> 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">); </span><span class="syntaxdefault">puts </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">) do<br /> </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">| </span><span class="syntaxdefault">p</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">transform</span><span class="syntaxkeyword">! </span><span class="syntaxdefault">tr</span><span class="syntaxkeyword">}<br /> </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">); </span><span class="syntaxdefault">puts </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">) do<br /> </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">| </span><span class="syntaxdefault">p</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">transform</span><span class="syntaxkeyword">! </span><span class="syntaxdefault">tr</span><span class="syntaxkeyword">}<br /> </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 results

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?
-
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 makesfacx[0]referencecor[0]- they both point to the same value.You then transform the points in
facxhere:facx.each{|p| p.transform! tr}If you want to avoid this you must clone the point:
facx[0]=cor[0].clone -
thomthom, Thanks for the help. The solution was to obvious I guess.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better π
Register LoginAdvertisement