Closed praetp closed 1 month ago
maybe related? https://github.com/openscad/openscad/pull/5164
and apparently you are not using manifold in your command line args? this means that it is something with CGAL?
maybe related? #5164
and apparently you are not using manifold in your command line args? this means that it is something with CGAL?
Indeed, could be related to that commit.
Yes, i am using manifold. Note the --enable all
. Omitting manifold also does not make a difference. If I remove all features (except textmetrics - I do need that one), it still fails.
Workaround for me is to now use an older binary...
Reproducer: with https://github.com/UBaer21/UB.scad,
use <ub.scad>
Rund(.5) Voronoi(30,dicke=1);
This will crash when you preview it.
Some discoveries and thoughts:
int64
object space, while polygon2d itself (and thus CGAL triangulation) uses double
world-space. While Clipper guarantees no intersections and overlaps, converting from int64 to double may result in precision loss and introduce aliasing which yields tiny intersections.Ideally, we could fix this by using a triangulator which doesn't introduce new vertices but still allows intersections. Manifold offers such a triangulator, but it's not available for non-experimental builds. This may become a longer-term possibility, but short-term it's not doable.
Another possible fix is to reduce the precision in int64 space to reduce loss when converting to double. I suggest starting with reducing the precision with a single bit and see where that leads.
While #5271 made this a bit more robust, we still have occasional failures.
The following design processed as openscad zebra.scad -o out.png
now crashes with Assertion failed: (fit->vertex(1)->info().id != -1), function createTriangulatedPolySetFromPolygon2d, file cgalutils-triangulate.cc, line 151
.
$fn=64;
text(text="R",font="naturePro",size=5);
Note: In manifold mode this naturally doesn't fail, but there is a triangulation bug. Will open a separate issue for that.
Fixed by #5282
Hi,
I was using the nightly snapshot of June 15th and everything worked. When I upstepped to Jul 27th (or even Jun 23rd), openscad started to crash for some workloads in my docker container (however, not on my desktop PC). So it does smell like some dependency issue.
Some output from openscad --info (from within docker container)
Command-line args:
openscad -o output.png --summary all --view axes,scales --colorscheme Nature --autocenter --viewall --imgsize=600,600 --enable all --hardwarnings [....]
Stacktrace (sorry , no debug symbols in this build - why not include them in every snapshot?)As it only crashes from within my docker container it is a bit hard to give a small reproducible scenario :-( I am very sure it worked before however.
My application is trying to render some license plate. Important to note is that it does not crash for every every license plate. It crashes for "1ABC001", but it does not crash for "1ABC002". Very strange.