Tuesday, August 15, 2006


Offsetting and sharp points

I said I'd blog an explanation of how the CSG approach eliminates this problem. Here's a pic:

Ignore the inner offset triangle and quadrilateral for the moment; just stick with the outside edges. We have six lines A...F that are infinitely long and are considered half-planes solid on their sides with the black dots. Using . for intersection and + for union, the boolean expression that describes the outer shape is

A . B . C . D . (E + F)

Now, if you keep that expression exactly the same, but offset A...F towards their solid side, the result is the triangle and quadrilateral. The boolean expression takes care of things like the fact that the point where E and F meet, when offset, falls through the bottom face D.

This is exactly how the RepRap Java code (subversion repository - start here) solves the offset problem.

Thank you for the explaination. This was how it seemed the java code was working when I looked at it. How do you figure out the boolean expression? A binary spacial tree? Does it scale well when you add more sides?

Anyway, it still seems like it would have a problem with the seams. Move D down a bit more.. allow 4 or 5 threads widths between the interior angle and the bottom..? I suspect you will still have a triangle and quadralateral. Tracing a perimeter in this case might cause two problems:

1. You would be trying to squish too much material as you traced the inset E and F as it approached D.

2. Subsequent layers would print the perimeter identically. I suspect if you squeezed the two ears at the top together, the piece would have a tendency to fracture along the seam created between E and F. I think you'd also be able to observe the seam on side D.

Again, I'm not sure if this would be common in things to be printed, on a reprap, and maybe it's more a mathematical curiosity than any problem with the extrusion path.
Post a Comment

Links to this post:

Create a Link

<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to
Posts [Atom]