Union problem

Next
 From:  Andrei Samardac
5764.1 
Hallo Michael,
Tell me pleas why when I union this cilinder with two sphers I get this result (yellow object)?
I made cilinder, than revolve it's eges to make spheres and than union.

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:  Michael Gibson
5764.2 In reply to 5764.1 
Hi mir4ea, it's hard to know for sure just from a screenshot - if you can please also post the 3DM model file along with a question like this that makes it a lot easier to investigate your actual file. (EDIT - looks like you added it, or did I miss it in your initial post? - anyway thanks!)

But from what I can see in the screenshot, it looks like probably your cylinder is an open surface and not a closed solid - that will make a difference when doing booleans because booleans determine which pieces of things to keep based on which volume they are contained inside of. When some of your pieces do not actually have a volume themselves that "determine which pieces to discard based on their contained volume" does not apply anymore and you will get some kinds of inconsistent operation.

Instead of doing boolean union you could try doing boolean merge instead - that has a some logic built into it where if you have a bunch of surfaces that touch each other and define an inside volume when they are all intersected it should extract that volume. That is a somewhat different process than boolean union.

Or if you solidified the cylinder by selecting it and running the Planar command to cap its open ends, then you would have solids and could use boolean union.

Or another way is to use Edit > Trim to cut the pieces with one another and then pick on which pieces to discard yourself. Booleans are sort of like a "batch mode" version of trim and join where pieces are cut similar to Trim but unlike Trim the booleans automatically decide which pieces to keep and which pieces to discard based on which volume they are contained inside of.

 

Also I'm not sure if your sphere pieces at the ends are fully closed spheres or if they are half spheres that are also open - if you have a bunch of open surfaces that are touching each other edge-to-edge then it's better to use Edit > Join to glue them together, rather than boolean union. Booleans are much more focused on intersecting the surfaces and trying to remove some material from the pieces involved. If you don't want to remove any pieces but just glue edges together, then that's what Join does - it does not try to do any surface intersections, it only tries to glue edges together.


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:  Andrei Samardac
5764.3 In reply to 5764.2 
No all objects are solids, check the attachments. And I also include in this project another example. Thanx.

EDITED: 20 Jul 2013 by ANDREI SAMARDAC

  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
5764.4 In reply to 5764.1 
Hi mir4ea, thanks for attaching the model, I could have sworn I did not see it at first!

So it looks like all that I wrote above was incorrect, you do have all solids here - it looks like it's getting confused with handling the edges that are overlapping right on top of each other, normally that's more of an issue when the pieces are maybe slightly skimming each other a little bit and not as much of a problem when they are very exactly on top of each other but it looks like in your case here there's some bug where it's still getting confused about how to deal with the edges and seams that are stacked on top of one another.

If you rotate the spheres so that the "seam edge" of the sphere is inside the cylinder rather than resting right on the cylinder's own edge, it will behave better in this case, see attached example.


I would have thought though that your initial example should work since it looks like things are meeting very precisely, there is probably some kind of bug involved there but probably not an easy one to fix without potential side effects.

- 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:  Michael Gibson
5764.5 In reply to 5764.3 
Hi mir4ea,

> And I also include in this project another example. Thanx.

The "X" one in your second attachment is a different problem - that's a problem in the surface/surface intersector in handling singular "crown point" intersections. It's probably the biggest remaining surface/surface intersection bug that's in the geometry library.

You get the result you see there because all the intersections are not being generated, if you select the pieces and use Construct > Curve > Isect you'll see it only finds 3 of the intersections and is missing one.

I'm hoping at some point to get this fixed in the geometry library, it's a delicate area to mess around with though.

- 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:  Andrei Samardac
5764.6 In reply to 5764.5 
Thanx Michael,
Yes you are right, rotating the sphere solve this problem.
About X, wanted to mention that in 90 degree rotation it union well.
Thanx.
  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
5764.7 In reply to 5764.3 
Also the X one will actually work right if you get true analytic cylinder surfaces created, that's because the analytic cylinder/cylinder intersector will avoid this particular bug that's in the general purpose surface/surface intersection method.

So if you try in the attached example it should work.

- 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:  Michael Gibson
5764.8 In reply to 5764.3 
Hi mir4ea, also your original one with the cylinder and spheres in their original locations, the cylinder is not being recognized as an analytic cylinder.

Are you possibly building these cylinders by something like sweeping a circle rather than by extrusion or by draw solid > cylinder?

- 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:  Andrei Samardac
5764.9 In reply to 5764.7 
"analytic cylinder" you mean - cylinder created from draw solid menu?
  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:  Andrei Samardac
5764.10 In reply to 5764.9 
Yes, I created it by sweep.
  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
5764.11 In reply to 5764.9 
> "analytic cylinder" you mean - cylinder created from draw solid menu?

Yeah, or also extrusion of a circle will generate one also - if you turn on the control points of the sweep-constructed cylinder you'll see it has 4 control points in the straight direction instead of it only being 2 points in the straight direction. Basically sweeps are focused on making curvy shapes and go through a refinement/fitting process as part of the construction, one byproduct of that is that the surface will always be a cubic in that direction.

Extrusion or draw solid > cylinder make a more basic cylinder that also will be a special class of surface that can generate more precise results for some kinds of intersections.

- 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:  Andrei Samardac
5764.12 In reply to 5764.11 
Thanx for clear Explanation.
This is the screen of control points first extruded, and second by sweep.
I can not see 4 points in stright direction on sweeped cylinder, may be I did something wrong?



EDITED: 20 Jul 2013 by ANDREI SAMARDAC

  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
5764.13 In reply to 5764.12 
Hi mir4ea,

> I can not see 4 points in stright direction on sweeped cylinder, may be I did something wrong?

You're only seeing the control points on the curves there (the line and the circle you used as inputs to make the sweep), not any surfaces. In order to turn on control points of surfaces that are joined at trimmed edges you need to use Edit > Separate to break them into separate pieces and then you can turn on points. See here for more info on that:
http://moi3d.com/wiki/FAQ#Q:_Why_does_show_points_work_for_some_objects_but_not_others.3F

- 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
 From:  Andrei Samardac
5764.14 In reply to 5764.13 
Got it thanx.
  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