SolveSpace Logo SOLVESPACE -- parametric 2d/3d CAD
Examples
Tutorials
Features
Download
Reference
Technology
Library
Forum
Contact
USER FORUM

(you are viewing a thread; or go back to list of threads)

Instability of lathe surfaces (by Vasil)
Hi, Jonathan!

SolveSpace is one of the best 2D/3D modeling software I've ever seen (simplicity and easy to use is very impressive).

Everything works great except surfaces made by lathe operation. Almost every more or less complex boolean operation with lathe surfaces leads to geometry errors or even segfault of the program.

Triangulation often fails with problems of solving jacobian when number of triangles in surface is higher than several dozens (when N of triangles more than one or two hundreds, solver almost always cannot converge)

Is it possible to make booleans on lathe surfaces more robust? As one possible solution - to use some mature library as NURBS geometry kernel, like SINTEF (http://www.sintef.no).

With best regards,
Vasil
Sun Aug 24 2014, 05:00:21
(no subject) (by Jonathan Westhues)
I'm not sure what you mean by the third paragraph. A Jacobian matrix of the constraint equations with respect to the parameters is computed inside the constraint solver, but that has nothing to do with the NURBS Booleans. Those are what typically fail with complicated surface intersections. Those are also upstream of the triangulation.

Does the SINTEF library compute Booleans on brep? I've only looked at it briefly; I saw routines to compute surface intersections and stuff, but none to actually use that to union or difference the volumes.

In any case, the performance of those NURBS Booleans with complicated surfaces is definitely one of the major limitations of the program as it stands. As a workaround, you can switch to triangle meshes (by checking "force NURBS surfaces to triangle mesh"), though that of course loses the ability to export STEP files later.
Mon Aug 25 2014, 01:41:39
(no subject) (by Vasil)
I was wrong in third paragraph, that problem was from bug in fltkutils.cpp AllocTemporary function. I've just fixed it and everything is ok now.

About surfaces from revolution: just tried to increase number of rev surfaces in MakeFromRevolutionOf and get huge increase in robustness (especially in intersection of lathe and extrusion surfaces).
Mon Aug 25 2014, 08:22:09
Post a reply to this comment:
Your Name:
Your Email:
Subject:
(no HTML tags; use plain text, and hit Enter for a line break)
Attached file (if you want, 5 MB max):
© 2008-2022 SolveSpace contributors. Most recent update June 2 2022.