New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decompose objects into volumes before exporting #732
Comments
i tried to reproduce in linux, |
note the different number of geometries and the different cache size. i wonder if its a cache problem? if you clear cache do you get the same thing? |
It got removed from F6 to save processing, Need to do Design/Check_Validity OP was after doing other stuff, so there was stuff in the cache. 2014.03.26 Clean run.
F6, then Design/Check_Validity
|
ahh i didnt realize the output had changed... no more # of faces etc etc. . hrm.
from mainwin.cc so basically... i think uhm...with Marius new Geometry() system, it turns out that not all objects go through the Nef Polyhedron system. Now, 'valid()' is a function that was part of CGAL's Nef Polyhedron code... if there is no Nef Polyhedron ... then there is no NefPolyhedron.valid() function to call. So basically all objects that are not Nef Polyhedron will report 'not valid'. At least thats what it looks like from first glance. |
@donbright, sorry my fault. The The thing is, I would suggest removing the "check valid" menu option from non-developer builds. |
I always though the validity=no indicated a non-manifold situation, hence it is very applicable to people wanting to 3D print the object. |
No, the discussion in the pull request #635 came to the conclusion that |
The thing is, Nef polyhedrons are intrinsically guaranteed to be orientable quasi-2-manifolds. Quasi-manifolds in the sense that edges (and vertices) may be shared between two volumes (e.g. What Nef polyhedrons can also contain (but which could basically be prevented by OpenSCAD by utilizing the correct boundary conditions), is infinitely thin "slivers" (i.e. zero volume objects), lines and points. For exporting to STL/OFF and similar, these things should basically not matter. All Nef polyhedrons are convertible to STLs. OpenSCAD fails ("Object isn't a valid 2-manifold! Modify your design.") due to making the conversion via conversion to a single CGAL::Polyhedron, which require each edge to be part of a proper 2-manifold (i.e. maximally 2 facets must be incident to one edge). There are two simple solutions to that:
It is possible that certain software may fail importing STL/OFFs that contain multiple volumes (or multiple touching volumes). For these cases, we could simply offer the option of exporting the different volumes as separate files. I don't know if this is a real issue or not. *) I have implemented a simple such method that I could potentially port to OpenSCAD if of use. |
BTW, note those stats are shown for other designs, auto-union it with a sphere(5) for example (a sphere by itself doesn't show them). It then shows as valid too. (yes I know this is explained by above, but such inconsistencies, if kept, will need to be documented) |
|
I'm closing this, as our latest iteration of exporters now use an indexed PolySet implementation, where vertices belonging to different volumes have been duplicated. This works nicely for the Manifold backend. There may still be some corner cases for CGAL, but since this ticket is getting old, it's probably better to open new tickets for current issues. |
This issue has change into being about discussing volume decomposition on export, see the comment from @OskarLinde below.
Old:
Either the check is broken or the geometry is...
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The text was updated successfully, but these errors were encountered: