Need Boolean Difference help
 1-7  8-22

Previous
Next
 From:  ed (EDDYF)
2825.8 
OK - I got the Boolean subtractions to work on my original model.

1. Cleaned up my two sine wave rails (pieced together from 6 circular arrayed segments) using the shortcut RebuildCurve set at 12 points. This simplified the curves.
2. Swept one sine wave rail using a 0.014 circle. Boolean dif the resulting tube from the ring.
3. Swept the second sine wave rail with a 0.015 circle. Boolean dif the resulting tube from the ring.

One important key is the sequence of steps above: Sweep and subtract the second rail AFTER subtracting the first tube. If I sweep both rails, then try to subtract, the second tube won't subtract. So, subtract the first tube before even constructing the second tube. The difference in profile diameters, 0.014 to 0.015, is not enough to impact the render, but my guess is the two profiles can be the same size if the sequence above is followed.

Render results shown below.

Thanks for your tips Michael & BurrMan.

Ed

EDITED: 2 Aug 2009 by EDDYF


Image Attachments:
Size: 376.2 KB, Downloaded: 44 times, Dimensions: 600x441px
  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
2825.9 In reply to 2825.8 
Nice render Ed!

I tried for quite a bit and couldnt get both at the same size. Going to practice Michaels method next to become more proficient using this technique.
  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:  manz
2825.10 In reply to 2825.1 
I reported this bug 15 months ago.
  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
2825.11 In reply to 2825.10 
Hi Steve, yes unfortunately it's a difficult one to fix - in this case the bug is not in the MoI code that I wrote but instead it is in the geometry library.

It will probably be able to get fixed eventually but it can be slow to get progress in some areas like this.

- 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
2825.12 In reply to 2825.6 
Hi Burr,

> I created a sphere and did a circle array of a line with 8 as
> an amount to get the isect points and using the curve through
> points "seemed" to create a proper circle?

Yeah it will be pretty close but if you measured some things like curvature you would see some small differences from an exact circle.


> Maybe for my own knowledge Michael could expound a bit on
> the through ponts curve tool in regards to how it creates
> Tangency and curvature.

A curve that is made with the "through points" tool will have curvature continuity throughout it, but continuity means how curvature values match up at one particular point, it doesn't mean how curvature is distributed and how rapidly it changes.

There is a slight tendency for the curvature to get kind of "bunched up" a little bit near each of the interpolated points.

In the future I would like to have some different options for a "through points" curve that would try to distribute curvature more evenly.

- 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
2825.13 In reply to 2825.4 
Hi Ed,

> Also, how much of difference in tube diameters would you
> suggest? 5%? 1%?

I'd think that something pretty small like 1% may be enough. But you may run into some issues if that difference becomes less than around 0.001 in size - it sounds like that was what you ended up using and that seems to have done a good job.

I do hope in the future that it will not be necessary to do that, but this is a pretty sensitive area to mess around with, it's one of those things that is easy to introduce new bugs with other situations when trying to alter things to fix a different case.

- 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:  manz
2825.14 In reply to 2825.11 
Hello Michael,

>>>>>>>Hi Steve, yes unfortunately it's a difficult one to fix - in this case the bug is not in the MoI code that I wrote but instead it is in the geometry library.

It will probably be able to get fixed eventually but it can be slow to get progress in some areas like this.<<<<<<<


You said that when I made the bug report, you also dismissed the possibility that the problem was with the sweep rather than the boolean.


I have attached a simple model of the ring, this was constructed in another 3d app. when imported into MOI, the pipes can be booleaned away without a problem (both pipes are 6 dia).
If you import and delete the pipes, then make a sweep with a 6 dia circle in Moi using the construction curves (which where used to construct the pipes in the other 3d app), then try to use those to boolean away, there are then problems.

So I need to ask again, "Is the problem with the boolean, or with the sweep?"

EDITED: 3 Aug 2009 by MANZ

  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
2825.15 In reply to 2825.14 
Hi Steve,

> So I need to ask again, "Is the problem with the boolean,
> or with the sweep?"

It's exactly the same answer as previously - it appears that the problem is in the surface/surface intersector which is one part of what the booleans depend on.


> I have attached a simple model of the ring, this was constructed in
> another 3d app. when imported into MOI, the pipes can be booleaned
> away without a problem (both pipes are 6 dia).

It looks like in your particular example here, those sweeps have somewhat lower accuracy and have a slight undulation to them, which avoids them intersecting exactly at a crown point. That actually helps to avoid the intersection bug though which seems to be related to things touching more exactly at a single point.

If you take the 2 tubes in your example and do a boolean union between them, you can see that the junctures between them look like this:





Note there that the intersection curves are not touching at a single common point - that's the difference between this and the other situation that has intersection problems.

It's pretty easy for differences in shape like this to produce different intersection results, and if there is a bug in one kind of intersection result, having a different result may avoid the bug - that appears to be all that you are seeing in this case.

It's pretty similar to the workaround of using slightly different radius values, it is producing a different kind of intersection rather than the "meeting at a single common crown point" one.

- 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
2825.16 In reply to 2825.14 
Thats funny,
I took your model from another program and did the boolean with it and it produced this result:



And then in the intersections you get this:



And this:



This is because the 2 curves are not the same length:

sweep rails=

490.562480799042

504.98067008109


Then I deleted the sweeps from the SAT file and re-swept the one with the seam edge facing "Out" in MoI, and mirrored it over to get the second sweep to boolean and produced a much better result!

Here's the file. :O

[EDIT] Also just took your SAT file into another CAD package and recieved the same error on Boolean operations with the second sweep! Could do one but the second would fail. didnt try to edit it to make it work over there. [EDIT]

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
2825.17 In reply to 2825.16 
Michael,
re some of your responses in the past regarding these types of issues, and other modeling kernels like acis and parasolids with many years and man hours working them....

In many cases what you will be doing is adjusting MoI to be "adaptive" in various area's, to change tolerances and such in real time to have these things complete as they MAY in other apps. Lets call it for the moment, "Dumbing down" the model. When MoI starts to do this is when I will ask for some sort of tick, or label, or notice that this is happening. More the tick that I could allow or disallow it as I would want to know when my geometry is being altered to work, or the operation is being altered to work with my poor geometry. With some of the higher end apps, and possibly MoI in the future, there can be analytical tools for me to know and check/change this, but until then, this would be my request from MoI.

Burr
  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:  manz
2825.18 In reply to 2825.15 
Hi Michael,

>>>>>It looks like in your particular example here, those sweeps have somewhat lower accuracy and have a slight undulation to them<<<<


My bad. My quick example was made too quick. I will just need to accept that MOI cannot boolean these types.
  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:  manz
2825.19 In reply to 2825.16 
>>>>>This is because the 2 curves are not the same length:

sweep rails=

490.562480799042

504.98067008109<<<<<<<




Sounds like you have serious problems with your software.

I have just verified the sweep curves, and checked them also in Rhino, and both are 486.7419mm in length.
  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
2825.20 In reply to 2825.19 
Well Manz...

If you check the file I posted, out of MoI, it was done with your solid, Your curves, and booleaned better than the file you originally posted! So I am wondering where your problem is? Maybe need some practice? :O

See you cant say it wont when I just did!

Sounds like your other package is misleading you into thinking everything is OK.
  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
2825.21 In reply to 2825.17 
Hi Burr, yeah I'm pretty conservative about modifying the model. If I ever do make something that would involve making major modifications to the model I would certainly also have some way to disable that.

It is normal for some kinds of things to be altered in certain ways in very small distances though, for example when joining 2 surfaces it is normal that they will join together to get one common shared edge even if their original edges are only within 0.001 units (or slightly larger in the case of join) nearby each other, rather than only joining things that are 100% completely exactly the same at a common edge.

That very small level of modification is normal with NURBS solid modeling, since many times surfaces can be created by a kind of adaptive fitting procedure that refines a surface result until it is accurate to that 0.001 units tolerance value.

So when I find ways to improve a model but keep it within that tolerance level of accuracy, that would be a more normal kind of alteration.

- 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:  Michael Gibson
2825.22 In reply to 2825.18 
Hi Steve,

> I will just need to accept that MOI cannot boolean these types.

Yes, there is currently a bug in the surface/surface intersection mechanism when 2 tubular things cross each other and intersect at a single top "crown point".

I think it will be possible for it to be improved in the future.

But for now the easiest way is to have a slight alteration in the tubes so that they do not intersect in that particular way - your lower accuracy sweep result happens to be one method that will do that, making a slight difference in the tube radius values is another way.

- 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

 

 
 
Show messages:  1-7  8-22