Boolean Madness

Next
 From:  Brian (BWTR)
2728.1 
This is about the 10th version I have tried to get an acceptable boolean.

What I would consider an everyday simple task.

NOT happy.

Brian
Attachments:

Image Attachments:
Size: 127.5 KB, Downloaded: 52 times, Dimensions: 1024x640px
Size: 145.8 KB, Downloaded: 73 times, Dimensions: 1024x640px
  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
2728.2 In reply to 2728.1 
Hi Brian, it looks like the problem is the tubes are not well formed, they have some areas where parts of them are kind of bunched up and self-intersecting:








When a surface bunches up and intersects itself in that way, it will usually prevent the booleans from working successfully.

In this case, it looks like you had a radius for the tube that was larger than the radius of the bend it was going around. That will produce this kind of bunching problem.

Here's another illustration that may help to explain.

Here there is a line (similar to the tube radius in your model) that is trying to move along a path curve, around a bend that is tighter than that distance:



As it moves, you can see that the result is not clean , there is a bunching and self-crisscrossing that will happen:



You've got that same kind of thing happening in your model as well.


You'll need to get a tube without those kinds of self-intersections in them in order to use them in booleans. There are a few different alternatives, possibly building the tubes in sections rather than as one long piece, or with a smaller radius, or with not as tight of a bend in those areas.

- 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
2728.3 In reply to 2728.1 
Hi Brian, I've attached an updated version of your model here (BrianBoolean.zip) that can now be booleaned.

The way I formed the cutters was to build these sections which were boolean unioned together:



Then I removed the flat parts to open up a hole:



Then used Construct / Blend to place a smooth blend in between the edges that were now open, to get this result:



Now that has no self-overlapping parts and can be used in a boolean.

Hope this helps,

- 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:  BurrMan
2728.4 In reply to 2728.2 
Dont want to step on toes MG, the bunchy part has been left out of the boolean op so it can work, but still good advice in modeling. (If you see the bunchy, redo something).

The problem with his model was his seam edge was glancing and intersecting back and forth by just a smidgeon. Yet another thing to notice during the construction phase. I rotated the orinal circle to re-produce the pipe with the seam edge "OUT" of the model.

Here's your file with the bools (add and subtract) I saved all the materials for brian to review. I forgot to save a copy of the original master object, but if you need it brian, you can just merge it from the old file posted.


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:  BurrMan
2728.5 In reply to 2728.3 
Oh thats interesting Michael. It looks as though when you re-created it with nice geometry, then that seam edge didnt affect the bool as it wasnt glancing back and forth through all the other seem edges!

Still nice to know.

[EDIT] Looks like we cross-posted. No offense meant.
  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
2728.6 In reply to 2728.4 
Hi Burr, yeah definitely having a seam that kind of skims along the other surface and sometimes dips under it and sometimes above it can make the booleans upset too.

- 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
2728.7 In reply to 2728.5 
Hi Burr,

> No offense meant.

None taken! :)

Yes - if the seam is a little more accurate along the surface it can be ok, the worst is if it is skimming kind of above and below repeatedly.

But yeah still not a bad idea to get the seam out of the way, though - when the seam gets intersected it definitely makes for more possibility to have small edge or face fragments. Actually after looking at my version, I did notice that there is one of those kinds of fragments here:



So yeah that would be better in my version too with the seam on the top so that it is out of the way and not running into other things and making small fragments.

Those kinds of small fragments tend to gum up filleting quite a bit.

- Michael
Attachments:

  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:  Brian (BWTR)
2728.8 In reply to 2728.7 
Michael and Burr thanks,

Your post 2728.2 was my original way I wanted to go and it frustrated me for ages.---heaps of files trashed with an expletive!
And I needed to REMEMBER this!

"Then I removed the flat parts to open up a hole"

The rules take up a page,

The "special rules" take up volumes?

STILL browned off.
But thanks anyway.

Brian
  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
2728.9 In reply to 2728.8 
Hi Brian, yup 3D modeling can be difficult and frustrating at times, no doubt about it!

It's always a kind of ongoing process for me to try and make things easier and more robust.

- 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:  Brian (BWTR)
2728.10 In reply to 2728.8 
And I still can not get the "Joined Sufaces" to become a solid.

And I don't think I care about the answer.

Had enough.

Brian
Image Attachments:
Size: 100.8 KB, Downloaded: 39 times, Dimensions: 1024x640px
  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
2728.11 In reply to 2728.10 
Hi Brian, well let me know if you change your mind and would like any more information. If you'd like to post your model file for what is not being joined I would be happy to take a look at it and try to give you some tips.

I tried to show some step-by-step screenshots previously there, and also you can take a look at the result model that I posted which is a closed solid.

- 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:  Paolo (PAOLOLOBBIA)
2728.12 In reply to 2728.1 
Hi Brian,

I analyzed your model in rhino and found a strange surface.
Just replace it like the example below:

EDITED: 5 Jul 2009 by PAOLOLOBBIA

Image Attachments:
Size: 52.1 KB, Downloaded: 60 times, Dimensions: 662x601px
  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:  WillBellJr
2728.13 
Michael, is there a reason why those small line segments show up in your models? (Especially since they're not usually intentional!)


It would be nice if there was a script or diagnostic function to check models for problems like this (or a posting of your phone number so we have a direct tap to your brain when modeling! :-P )



It's threads like these where I learn so much about NURBS modeling - like Brian, I can be trying to accomplish something and it just doesn't work, it makes me feel I'm "not good at NURBS modeling"...


But when you see >techniques< and resolutions like this, it shows that it's not about being good but all about having knowledge on HOW to repair issues that in most cases you're not aware of within the geometry.

And unfortunately, tidbits like this are usually NOT in a manual!


It would be great if the Wiki had a Troubleshooting section that collected up problems and solutions like these - they're a great resource for learning how to become a better NURBS modeler! ;-)

-Will
  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
2728.14 In reply to 2728.13 
Hi Will,

> Michael, is there a reason why those small line segments
> show up in your models? (Especially since they're not
> usually intentional!)

In this case it was basically a side effect of trying to deal with an inaccurate portion of the model.

If you look at this spot here where these 2 surfaces meet:



You can see there that those surfaces are not tangent with one another, that is a slight kink there where they meet.

Having that kink means that it is harder to make a sweep that follows that as just simple pieces without any juncture between them. But since the kink is pretty small I decided to just delete a curve control point at that spot to smooth out my sweep so it could be just one surface through that spot.

However, doing that causes the sweep to be slightly different in shape in that area from the base surface, and with edge running along the side of it, the edge now doesn't hug right exactly along the surface so when it is cut in the boolean (edges are cut in booleans same as surfaces) it will result in some small pieces.


Here is a zoom in on that area before doing the boolean so you can see how the edge is situated, and why that results in a small fragment after intersections:



Really the best way to avoid this is to ensure a greater accuracy in your original curve structure before building surfaces, so that segments there are set up to be tangent to one another rather than only slightly creased.

Otherwise, any inaccuracies in your original curves tend to become magnified as you try to build more and more stuff hanging off of them. Tangency is especially important for things that involve some kind of offset from them, like fillets, sweeping tubes, etc...

Things that are only off from a few degrees of tangent are not good for the filleter, because it creates kind of micro gap between different fillet segments that the filleter has to try to deal with.

It's a lot easier to solve these issues by taking some care that your initial curve framework is accurate and pieces are not just "eyeballed" to look pretty tangent.

But it also depends on what you are doing, if you are not going to be hanging more things off of that stuff (like fillets, sweeps, etc..) then you can get away with kind of sloppy junctures a little more.

- 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:  WillBellJr
2728.15 In reply to 2728.14 
Hi, thanks for the explanation - yes, I've run across situations like that and deleting the extra point(s) is usually good enough.


When you put in the object type display (solid, surface, curve etc.,) it gave me a much higher level of confidence when working on my various objects. I knew if I didn't see "Solid", I knew there was a hole in my object somewhere that would cause me problems later.

Little segments like that makes me wish there was a diagnostic tool or a way to highlight little slivers or perhaps have a tolerance that could be set that would avoid adding segments below a certain length to help avoid issues that crop up from things like this.

I guess you really have to be diligent and can't just eye your models like you mentioned.

-Will
  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:  Michael Gibson
2728.16 In reply to 2728.15 
Hi Will, yup I have some plans for adding in some other various kinds of diagnostic/analysis tools in the future.


> When you put in the object type display (solid, surface,
> curve etc.,) it gave me a much higher level of confidence
> when working on my various objects. I knew if I didn't see
> "Solid", I knew there was a hole in my object somewhere
> that would cause me problems later.

Yup, that's basically one type of "always on" diagnostic tool right there, really.

It's definitely a great habit to check that thing to see if you've got what you expected (like is it a closed curve, or a solid, or not).


> or perhaps have a tolerance that could be set that
> would avoid adding segments below a certain length
> to help avoid issues that crop up from things like this.

Unfortunately this part would be pretty difficult to handle when things are being intersected with one another.

If the proper result of the intersection would mean little bits are formed, it is hard to think about how to avoid that without doing something like leaving holes in those areas...


But yeah when you're going to hang various further steps off of an initial curve structure, nothing really beats having those initial curves being formed well.

- 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
 

Reply to All Reply to All