Boolean Union Problem

Next
 From:  LOTRJ
2625.1 
Hello Michael.

You're probably familiar with the War Rocket miniature game since Phil has posted several models that he has made for it. I'm modeling the ships for the Zenithian Saucer Men, and I'm having some boolean union trouble on the Class 3 saucer.

1. When I try to union the dome to the engine platform section the calculations complete, but the geometry comes out all messed up.
2. When I try to union the engine platform to the rest of the saucer, the boolean command exits without doing anything.



I have tried all the tricks that I know to get it to work, including saving and reopening the file, selecting the objects in different orders, scaling the objects up first, moving the parts or otherwise modifying them slightly, copying and pasting into the same file, copying and pasting into a new file, and even copying and pasting into version 1.0.

I've attached the current 3dm file, I'm using the April 2.0 beta.

Also, I may need to make some minor design changes before doing the final union, so I'll need to be able to re-create any fix you may have on my own later.

EDITED: 10 May 2009 by LOTRJ


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  BurrMan
2625.2 In reply to 2625.1 
Here's Mine. I first selected the saucer and engine and did a seperate/join to get a solid there. then for the dome, I nudged it down a bit and did the same thing to get a solid. I think the issue with the dome is there is a funky space towards the back that may be creating slivers with the boolean. Bringing it down a bit might just have gotten rid of the undesirable slivers. you could try getting rid if that creavace since it will not be needed or seen anyway.

EDITED: 19 Jun 2012 by BURRMAN

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2625.3 In reply to 2625.1 
Hi LOTRJ - first I'll take a look at combining the dome and engine.

The problem seems to be at this juncture:



If you zoom in there a ways you can see the edges kind of stray a little ways away from the axis line:



Something is going wonky there with the edges and intersecting surfaces all coming to a nexus there.

One other thing to add to the list of tricks is to give Trim a try if the booleans fail, and in this case it seems to work.

Try these steps:

1 - select both the dome top part and the engine platform.

2 - run Edit/Trim.

3 - The prompt in Trim will say "Select cutting objecdts or Done for mutual trim". In this case you want to do a mutual trim where each object is acting as both a cutter and also being cut itself. So right-click or push "Done" now.

4 - It will crunch for a few seconds and then a new prompt appears: "Select pieces to remove or push Done to keep all". But in this case it is easier to pick the pieces to keep rather than the pieces to remove. So go to the option for Mode: and switch it to Mode: Keep. Now click on the visible part of the dome and the visible part of the platform to select those fragments, and right-click or push "Done".

5 - Now the internal parts have been discarded, so you can now select the Dome piece (which is not a solid right now, it is an open set of surfaces that touch the other engine piece), and then the engine piece, and use Edit/Join to glue those pieces into a solid.


That should give you a good dome + engine result, basically those steps are using Trim + Join to do what Boolean Union is supposed to do automatically, but something in the booleans is getting confused with that one juncture point.

Please let me know if that gets you a good first part combined, I'll now take a look at combining in the saucer.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2625.4 In reply to 2625.2 
Hi Burr, you beat me to it! :)

It looks like you got a result with all edges joined to another edge, so it will be labeled as a solid, but it seems to have some internal pieces that did not get trimmed away...

Like for example if you delete this surface:



You can kind of see some "stuff" on the inside underneath it instead of it being all empty in there:



- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  LOTRJ
2625.5 
Thanks, trimming and joining worked on the dome and is a nice addition to my bag of tricks. :)

I tried the same thing to join the engine platform to the saucer, but it took a long time to calculate and the end product was a joined surface, not a solid.

[Edit]

I seem to have succeeded by first moving the engine platform down ever so slightly, then the boolean union to the saucer worked. Then I trimmed and joined the dome on. Hopefully this works for the final! :)

EDITED: 11 May 2009 by LOTRJ

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2625.6 In reply to 2625.5 
Hi LOTRJ - I think that the second Trim + Join is going to work, just that there are a few non-obvious pieces poking through in a few areas that you also need to pick to keep, or else you'll get holes there.

To find these pieces, before trimming select the 2 solids and run Construct / Curve / Isect.

This will calculate the intersection curves between the 2 parts, and they will be added to the model as just regular curve objects and they will be selected so you can see them.

After those are created, try to zoom around and inspect the intersections (zoom in a starting point and then rotate around and follow it), you'll see a few places where pieces of the solids are poking through - the one piece is not totally "submerged" in the other:

There is one little piece here:








There is a companion to that on the mirror side, and then there is also this one in the front in the bottom:




Also you may want to just hide the solids after you make the intersection curves so that all you see on the screen are the intersection curves by themselves, that makes it a little easier to see little separate bits floating around.

So those are 3 little areas that have tiny fragments that you need to select if using Trim mode = Keep or else they are going to get discarded and have holes there.

I think if those get selected then you'll be set, I'll give that a try in a minute here myself.

One other note - when you do get a joined srf instead of a solid, it can be handy to have this script set up on a keyboard shortcut:

script:var gd = moi.geometryDatabase; gd.deselectAll(); var breps = gd.getObjects().getBreps(); for ( var i = 0; i < breps.length; ++i ) breps.item(i).getNakedEdges().setProperty( 'selected', true );

That will highlight the "naked edges" (edges that are not joined) so you can see where the holes are exactly, that can help to you figure out what is going on. Try to hit Reset after that so you can zoom in on the selected edges, or if there are a bunch of them in different areas you may want to do a Copy and then hide everything and then do Paste to get just those curves showing on the screen to see where they are.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2625.7 In reply to 2625.5 
Hi LOTRJ - just saw your edit - yeah probably when you moved it around a bit it got things "fully submerged" and got rid of those little tiny poking out areas that I had those 3 screenshots of in the previous post.

I would bet though that Trim + Join would work without moving if you selected those pieces in those 3 areas that were poking through.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2625.8 In reply to 2625.1 
By the way, this is going to be an awesome addition to the fleet - I hope you'll post the physical part when you're done, it is really cool to see those.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
2625.9 In reply to 2625.7 
Hi LOTRJ, I just verified that Trim+Join does work to get a solid with stuff in your original location, if you zoom in and pick those 3 additional little pieces that were poking through to keep as well.

So just in case you don't want to move anything around later or something, that method is available.

I'll take a look and see if anything sticks out very easily about why the booleans did not work well in these cases, but it tends to be awfully difficult to figure things out in debugging when there are a lot of pieces, sort of like looking for a needle in a haystack...

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  LOTRJ
2625.10 
Thanks so much, it's just really nice to have this level of user support from a software developer. :)

Hopefully you can figure out the problem. I'll be sure to post any pics of the Zenithian class 3's when I get some!

If it helps with the de-bugging any, the main tools that I used for the dome were network, offset, trim, and shell.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  BurrMan
2625.11 In reply to 2625.4 
>>>>>It looks like you got a result with all edges joined to another edge, so it will be labeled as a solid, but it seems to have some internal pieces that did not get trimmed away...
>>>>>>

Ahhhh, much better result. Thanks for the new method. Didnt think of "trim" first.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All