diff options
Diffstat (limited to 'testdata/scad/features')
| -rw-r--r-- | testdata/scad/features/difference-2d-tests.scad | 29 | ||||
| -rw-r--r-- | testdata/scad/features/difference-tests.scad | 22 | ||||
| -rw-r--r-- | testdata/scad/features/linear_extrude-tests.scad | 7 | 
3 files changed, 52 insertions, 6 deletions
| diff --git a/testdata/scad/features/difference-2d-tests.scad b/testdata/scad/features/difference-2d-tests.scad new file mode 100644 index 0000000..bb798c2 --- /dev/null +++ b/testdata/scad/features/difference-2d-tests.scad @@ -0,0 +1,29 @@ +difference() { +  square(10, center=true); +  circle(r=4); +} + +translate([12,0]) difference() { +  square(10, center=true); +  translate([2,2]) circle(r=2); +  translate([-2,-2]) circle(r=2); +} + +// Subtracting something from nothing +translate([12,12]) difference() { +  square([0,10], center=true); +  # circle(r=4); +} + +// Non-geometry (echo) statement as first child should be ignored +translate([0,12]) difference() { +  echo("difference-2d-tests"); +  square(10, center=true); +  circle(r=4); +} + +// Subtract 3D from 2D +translate([24,0]) difference() { +  square(10, center=true); +  sphere(r=4); +} diff --git a/testdata/scad/features/difference-tests.scad b/testdata/scad/features/difference-tests.scad index b770764..0751213 100644 --- a/testdata/scad/features/difference-tests.scad +++ b/testdata/scad/features/difference-tests.scad @@ -3,27 +3,26 @@ difference();  // No children  difference() { } +// Basic  difference() {    cube([10,10,10], center=true);    cylinder(r=4, h=20, center=true);  } -translate([12,0,0]) difference() { -  cube([10,10,10], center=true); -  cylinder(r=4, h=10.5, center=true); -} - +// Two negative objects  translate([0,12,0]) difference() {    cube([10,10,10], center=true);    cylinder(r=4, h=11, center=true);    rotate([0,90,0]) cylinder(r=4, h=11, center=true);  } +// Not intersecting  translate([12,12,0]) difference() {    cube([10,10,10], center=true);    translate([0,0,7.01]) cylinder(r=4, h=4, center=true);  } +// Barely intersecting  translate([24,0,0]) difference() {    cube([10,10,10], center=true);    translate([0,0,6.99]) cylinder(r=4, h=4, center=true); @@ -34,3 +33,16 @@ translate([24,12,0]) difference() {    cube([0,10,10], center=true);    # cylinder(r=4, h=20, center=true);  } + +// Non-geometry (echo) statement as first child should be ignored +translate([24,-12,0]) difference() { +  echo("difference-tests"); +  cube([10,10,10], center=true); +  cylinder(r=4, h=20, center=true); +} + +// Subtracting 2D from 3D +translate([12,0,0]) difference() { +  cube([10,10,10], center=true); +  circle(r=6); +} diff --git a/testdata/scad/features/linear_extrude-tests.scad b/testdata/scad/features/linear_extrude-tests.scad index 680bf53..fbd1858 100644 --- a/testdata/scad/features/linear_extrude-tests.scad +++ b/testdata/scad/features/linear_extrude-tests.scad @@ -9,7 +9,12 @@ linear_extrude(height=10) square([10,10]);  translate([19,5,0]) linear_extrude(height=10, center=true) difference() {circle(5); circle(3);}  translate([31.5,2.5,0]) linear_extrude(height=10, twist=-45) polygon(points = [[-5,-2.5], [5,-2.5], [0,2.5]]); -translate([0,20,0]) linear_extrude(height=20, twist=45, slices=2) square([10,10]); +translate([0,20,0]) linear_extrude(height=20, twist=30, slices=2) { +    difference() { +        square([10,10]); +        translate([1,1]) square([8,8]); +    } +}  translate([19,20,0]) linear_extrude(height=20, twist=45, slices=10) square([10,10]);  translate([0,-15,0]) linear_extrude(5) square([10,10]); | 
