diff options
-rw-r--r-- | testdata/scad/bugs/issue591.scad | 25 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/regression/cgalpngtest/issue591-expected.png | bin | 0 -> 8778 bytes | |||
-rw-r--r-- | tests/regression/opencsgtest/issue591-expected.png | bin | 0 -> 8778 bytes |
4 files changed, 26 insertions, 0 deletions
diff --git a/testdata/scad/bugs/issue591.scad b/testdata/scad/bugs/issue591.scad new file mode 100644 index 0000000..f30142f --- /dev/null +++ b/testdata/scad/bugs/issue591.scad @@ -0,0 +1,25 @@ +// Creates the same "non-manifold" object (sharing one edge) using two techniques: +// o linear_extrude of two 2D objects +// o union of two linear_extrudes +// +// Subsequently cuts away the non-manifold part: +// -> the first technique fails, the second one succeeds +// +module cutoff() { + difference() { + children(); + translate([0,0,2.5]) cube(2, center=true); + } +} + +cutoff() { + linear_extrude(height=3, scale=[0,1], convexity=2) { + translate([1,0,0]) square(1,true); + translate([-1,0,0]) square(1,true); + } +} + +translate([0,2,0]) cutoff() { + linear_extrude(height=3, scale=[0,1]) translate([1,0,0]) square(1,true); + linear_extrude(height=3, scale=[0,1]) translate([-1,0,0]) square(1,true); +} diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ed5bdc3..a1c5cc6 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -891,6 +891,7 @@ list(APPEND BUGS_FILES ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue495.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue578b.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue582.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue584.scad + ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue591.scad ${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/issue585.scad) list(APPEND OPENCSGTEST_FILES ${BUGS_FILES}) diff --git a/tests/regression/cgalpngtest/issue591-expected.png b/tests/regression/cgalpngtest/issue591-expected.png Binary files differnew file mode 100644 index 0000000..07e1559 --- /dev/null +++ b/tests/regression/cgalpngtest/issue591-expected.png diff --git a/tests/regression/opencsgtest/issue591-expected.png b/tests/regression/opencsgtest/issue591-expected.png Binary files differnew file mode 100644 index 0000000..07e1559 --- /dev/null +++ b/tests/regression/opencsgtest/issue591-expected.png |