Problem with shell command

Next
 From:  George (GKSL4)
1209.1 
Hi all,

I created a polyline, I extruded and I selected 4 circles and made a boolean diff. When I tried to offset, shell, I got the attached result. This not happened if I shell prior to boolean, diff, in this case worked as expected.

Happy Holidays and especially for you Michael, the best success for commercial Moi.

Regards,


George
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
1209.2 In reply to 1209.1 
Hi George, thanks for reporting this and posting an example file! Having the file really helps.

Unfortunately this is not an easy problem for me to fix, the bug is in the geometry library that I'm using. I will probably have to send this example over to them and wait for them to fix it up, I'm not sure how long it will take.

This is a good example of one of the difficulties with thickening.

The problem happens where the cut out piece crosses a corner. If you use Edit / Separate on those 2 planes there and then use Offset, you will see the "natural" individual offsets of those things look like this:



Shelling the full joined object then needs to extend these offset surfaces so that they touch. Extending the planes is pretty easy but the rather tricky part is doing a proper extension of the trim curves.

Right now the extension happens like this:


The problem is the circle cut extends in what seems like should be a pretty reasonable way, except it isn't because it does not end up touching the other neighboring edge. So there is a big gap in the trimming boundary in that circled red area. That's pretty messed up geometry - every edge of a trimming boundary should touch the next edge end to end, or else you can get some pretty messed up results (like you saw).

I was thinking of what the proper result would be here...

I guess the ideal thing would be to create a new straight line from the end of the circle edge which could meet up with the neighboring one, like this:



But the tricky thing there is that introduces a brand new edge into the mix - now the side walls can't be created just by a direct one-to-one loft between them, there is now a kind of special "corner" area that has to be filled. I don't think that the shelling mechanism of the geometry library that I am using has this piece of logic currently implemented, that's the kind of the root of the problem.

- 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:  George (GKSL4)
1209.3 In reply to 1209.2 
Thank you Michael for your answer.

I wish you Merry Christmas and happy holidays.


George
  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