MoI discussion forum
MoI discussion forum

Full Version: bauble

Show messages:  1-20  21-25

From: eric (ERICCLOUGH)
24 Jan 2010   [#1]
Hi all ...

I'm trying to make a bauble. I want it to boolean into one solid and can't achieve it.

There are 74 solids here but they don't like each other very much though they all intersect each other (I think).

I would appreciate some help ... maybe there is something lacking in my understanding of boolean union.

thanks
eric

Attachments:
seed symbol.3dm


From: Michael Gibson
24 Jan 2010   [#2] In reply to [#1]
Hi eric, it looks like they do all intersect, but not in a clean way - you've got a lot of things that barely graze each other which will tend to produce little slivery bits (which creates much complexity is prone to failure) and also you've got a whole bunch of duplicated stacked-up pieces in there which is also going to cause problems.

It looks like you may have generated a 360 degree polar array on a closed ring?

If you're going to make a 360 degree array you would want to have only a 180 degree surface.

Like for example here I have an object that spans only 180 degrees like this:



Now say I generate a 6-item polar array on it spanning 360 degrees, the result is like this:



So that's all fine.

But look what happens if I start with a completely closed loop like this:



Now if I generate a 6-item polar array on that closed loop, again with a full 360 degree polar array, it will generate this kind of a result:




But note there that since the object being arrayed stuck out on both sides of the array center point there are a bunch of pieces that are stacked on top of each other. For example item #1 and #4 are stacked, item #2 and #5 are stacked, and #3 and #6 are stacked.

It looks like that's what you've done in this case, because it looks like every piece you've got is a duplicate - select one and delete it and you'll see there is another one there in the same place (but 180 degrees rotated).


So you don't want to have all those excess quantities of duplicate stacked up objects, that is going to be very messy for the booleans to deal with.

Also even without those it is going to be hard to boolean anyway with all these barely grazing parts, you may need to do something like have them come to a central hub piece rather than so many things just barely passing through each other.

Another strategy that would be cleaner would be to have something like a full sphere and then cut it with profiles from the top to remove segments.

- Michael

Image Attachments:
eric_polar1.jpg  eric_polar2.jpg  eric_polar3.jpg  eric_polar4.jpg 


From: Michael Gibson
24 Jan 2010   [#3] In reply to [#2]
Hi eric, also another tip - don't try to have additional pieces like this little top hole here in the pieces you are all trying to union together:




That adds additional complexity to the booleans to try and detect a whole bunch of coincident but rotated pieces like the inside of that hole.

Try to keep things as simple as possible for a mass boolean like that and only add additional cuts like the top hole at the very end after the larger piece is all together.

- Michael

Image Attachments:
eric_polar5.jpg 


From: Michael Gibson
24 Jan 2010   [#4] In reply to [#1]
Hi eric, so above I was describing about the duplicated surfaces.

Here I'll try to describe why this is not a clean intersection between these pieces.

So here's just 2 of the pieces:



So the problem is that although it looks at a glance to be a nice intersection, the area indicated here in red:



Is actually fairly complex - the pieces are at a slight angle to one another so they have a kind of slight criss-cross pattern (but only to a very shallow depth) in that area. If you select one you can kind of see how they actually intersect with that crossing pattern:



Because it is such a shallow intersection it is hard for the boolean code to figure out how to process that without having some little slivery bits left over, for example here I've booleaned just these 2 and you can see a slivery kind of result in that area:




Now multiple that many many more times and you can see that you're getting slivers upon slivers upon slivers... That makes for a kind of chaotic mess of slivery thin bits for the booleans to try and sort through and make sense of.

- Michael

Image Attachments:
eric_grazing_union1.jpg  eric_grazing_union2.jpg  eric_grazing_union3.jpg  eric_grazing_union5.jpg 


From: Michael Gibson
24 Jan 2010   [#5] In reply to [#4]
Hi eric, so a cleaner way to get this done without a zillion little slivery intersections is to instead start with a big surface and then boolean away pieces.

So for example in your case one way to do that is to start with a sphere, and then draw a rectangle like this (note rectangle is only on one side of the center point to make array polar more simple rather than that "sticking out to both sides" type of thing):



Now do an Array circular to replicate it:



Select all the rectangles, and then do a boolean union to fuse them all together into one closed curve, like this:



In the 3D view it looks like this:



This is now all ready to go - in this case using boolean intersection is the easiest, that will keep the area that is inside the closed curve. If you wanted to do boolean difference, that is possible as well but you would have a bunch of separate "V" like curves for the cutters for that one to cut out wedges, rather than one closed curve like I have here.

Select the sphere, run boolean intersection, then select the closed curve, and it will give you this result:



Or as seen in 3D:



Now to hollow out the center draw another sphere and use boolean difference to remove it.

This process is much cleaner and more robust because it does not have so many little tiny slivery surfaces at shallow angles to one another.


I've attached the 3DM model file here with the curve and the sphere if you want to take a look.

- Michael

Attachments:
seed symbol_outer2.3dm

Image Attachments:
eric_outer_piece1.jpg  eric_outer_piece2.jpg  eric_outer_piece3.jpg  eric_outer_piece4.jpg  eric_outer_piece5.jpg  eric_outer_piece6.jpg 


From: Michael Gibson
24 Jan 2010   [#6] In reply to [#1]
Hi eric, so I think really that way I showed above with cutting longitudinal slices out of a sphere or revolved piece is probably the cleanest way.

An alternate way if you do want to work with individual solid pieces would be to build something like a central hub piece like this:



Then union each of your pieces to that hub rather than trying to union them directly to each other.

That would also avoid the kind of chaotic grazing slightly angled intersections as well, since the intersection between each hoop and the hub would be a clean and simple one.

But it tends to be harder to get the sharp pointy cuts with this method, the other way of cutting the full surface longitudinally is easier to get those orange wedge like segments in.


Does that all help to explain the problems that you were running into and some solutions for you? Please let me know if you need more details.


- Michael

Image Attachments:
eric_hub.jpg 


From: d^^b (DAVID)
25 Jan 2010   [#7] In reply to [#5]
Hi Michael:

It´s a bit of off topic.
I was following your example, and I made a Boolean-->Difference with a smaller sphere for get the result that you was explaining.
After that I drawn a line and I made Boolena-->Merge for get a semi solid, but the bottom semi solid looks "broken"
I attach the file ready for made the last command.

David

Attachments:
strange fuse.3dm


From: Frenchy Pilou (PILOU)
25 Jan 2010   [#8] In reply to [#7]
Put the line out of the model and then make the boolean merge ;)

Image Attachments:
line.jpg 


From: eric (ERICCLOUGH)
25 Jan 2010   [#9] In reply to [#6]
Thanks Michael ...

That really helps hugely. There were definitely things I did not understand about booleans. Now I have a little better feeling about what I can expect.

I am so impressed and amazed about how much time and effort you are willing to give MoI users. I wonder at how you do it and still keep your own production on track.

cheers,
eric
From: Frenchy Pilou (PILOU)
25 Jan 2010   [#10] In reply to [#9]
Answer on the forum is a moment of relaxation ;)
From: d^^b (DAVID)
25 Jan 2010   [#11] In reply to [#8]
Hi Pilou:

I don´t know what I am doing wrong, but I still get a rare result, even moving the line.



Image Attachments:
Untitled-1 copy.png 


From: Frenchy Pilou (PILOU)
25 Jan 2010   [#12] In reply to [#11]
Sorry I don't know what I can say !
It's works fine for me
Wait the Michael answer maybe something with the video card, the Navigator IE...
Have you the last version of the V2 beta?
Very mysterious!
From: Michael Gibson
25 Jan 2010   [#13] In reply to [#11]
Hi David, I was able to repeat your boolean merge problem over here.

It appears to be a bug in the display mesher, your actual object seems to be fine but just the display mesh generated for it is not correct.

If you export to a mesh format, the export mesher will do a more careful job and make a good result.

The display mesher is oriented towards doing things quickly and one of its shortcuts seems to have had a bad effect in this particular case.

I'll put it on my list of things to look at in the future.

For now if you can get a proper export, just ignore that particular error.


Actually you may even find that if you save the messed up model and re-load it again the error may be gone.


Pilou, you may not have seen it because the display error will not show if you have some different settings for the display mesh angle.

- Michael
From: Frenchy Pilou (PILOU)
25 Jan 2010   [#14] In reply to [#13]
Thx for the explanation of this mysterious thing :)
From: eric (ERICCLOUGH)
25 Jan 2010   [#15] In reply to [#13]
Hi MIchael ...

SOrry if this turns out to be a double post ... I sent a model a little while ago but it seems not to have arrived.

Here it is again ... it seems to be a single solid but won't upload to shapeways.

cheers,

eric

Attachments:
seed symbol 4.3dm


From: Michael Gibson
25 Jan 2010   [#16] In reply to [#15]
Hi eric, could you also let me know what parameters you are using for saving the STL file so I can test with the same parameters over here?

But there seems to be something wrong in this area of the model here:









Looks like possibly a bad trim in that area, maybe a self-intersection or something like that, I'll see if I can repair it for you.

Also, the model does not seem to be totally symmetrical - a couple of those pieces in that problem area are shaped differntly than their adjacent neighbors, is that intentional or should those little pieces all be the same around?

- Michael

Image Attachments:
eric_prob1.jpg  eric_prob2.jpg  eric_prob3.jpg 


From: Michael Gibson
25 Jan 2010   [#17] In reply to [#15]
Hi eric, I've attached a repaired model here, please give this one a try and see if it will work now.

I'm not sure how that area got messed up, but there was an area that had some edges missing, there was a big gap between some edges in a trimming loop in that spot.

Anyway, I repaired it by extracting that area using Edit/Separate, breaking it into some individual surfaces and doing some untrimming (that's where you select all edges and delete them to recover the underlying surface).

That let me reconstruct one of those side pieces, which I then moved slightly (the originals were slightly off center), then arrayed it and unioned it and joined the repaired piece back into the main model.


I don't really know how that messed up area got created, possibly some kind of intersection bug but unfortunately it is difficult to track down what happened just by looking at the completed model.

Let me know if you still have any problems with the repaired version.

- Michael

Attachments:
seed symbol 5_3DM.zip


From: BurrMan
25 Jan 2010   [#18] In reply to [#17]
I was just looking at the model too. I just wanted to point out for anybody that I used "ExplodeMove" to reveal the problem. Although Michael is much better at understanding what he found and fixed it, I found a pile of fragments in this area that the explodemove command revealed very quickly. I would have probably rebuilt the whole intersection. Perhaps all the fragments were just a byproduct of the one bad trimmed surface Michael repaired. ANyway, thought it may be useful.


From: eric (ERICCLOUGH)
26 Jan 2010   [#19] In reply to [#18]
Hi Michael ...

Yes, the pieces are not symmetrical ... they are the opposite sides on an unsymmetrical portion of a 2 dimensional symbol. A Tibetan letter (text) so to speak.

I'll see if this one (you fixed) will upload and let you know ... and thanks.

I do wonder how the error happened ... all duplicate parts should be the same ... they were made from one part and then arrayed.

eric
From: eric (ERICCLOUGH)
26 Jan 2010   [#20] In reply to [#19]
Hi Michael ...

The model you repaired uploaded to shapeways just perfectly.

I originally increased the polygons to about 75% on the export slider (the one that failed) ... I did the same thing with the repaired one.

thanks for all your help.

I have ordered a small 3d print of this and a few other things ... I'm very curious about how they'll turn out.

cheers,
eric

Show messages:  1-20  21-25