While not quite as bad as some non-euclidean projective geometry, the geometry of 3D printed parts must be manifold and the spice must flow.
A 3D model is considered manifold if it is water tight and there are no holes in the geometry.While there are no obvious holes in the mesh below, at the point indicated it looks like the surface is not differentiable and is causing a problem.
Avoiding intersections like this will help ensure that your parts can be produced. Usually just moving the feature slightly will fix the problem.
Selecting Thrown Together from the View menu in OpenSCAD can also help trouble shoot problems. The patterned areas in the image above are indeterminate and will cause problems.
So, when performing composite solid geometry operations, it is important to remember that the piece you are subtracting must extend past the original part.
Monday, January 18, 2010
Subscribe to:
Post Comments (Atom)





3 comments:
If you apply a smoothing operation to the mesh to increase its polygon count, would that help?
Sometimes that will help, but usually its caused by the geometry being mathematically indeterminate. Floating point errors often causes geometry problems.
In python for example
>>> print repr(32.0/100.0)
0.32000000000000001
>>> print repr((132.0/100.0)-(100.00/100.00))
0.32000000000000006
So if you have two surfaces that are supposed to meet exactly, they may not.
I did try smoothing the mesh but OpenSCAD doesn't seem to do it consistently.
scale([1/100, 1/100, 1/100]) cylinder(h = (H)*100, r=(ID/2)*100, center = true);
While "watertightness" is a nice by-product of a manifold mesh, the real test of whether a mesh is manifold or not is that all edges must be shared by exactly two polygons (usually triangles). If we think about a hole (or a leak, in terms of watertightness) that would be a triangle with an edge used by only one polygon. But another way to make a non-manifold, but still technically watertight mesh is to take a manifold mesh and connect two arbitrary edges with a triangle -- that would create at least one edge shared by three polygons.
The computer has issues with this, because it can't decide what the inside and outside are, if there are multiple volumes enclosed by meshes.
In this case, it looks like you might have had an errant triangle, or an edge that didn't terminate correctly, because of how many edges shared that upper vertex. Making the step freed the vertex up.
Nice work on the part. I'll give it a test with my makerbot when she's up and running.
Post a Comment