summaryrefslogtreecommitdiff
path: root/testdata/scad/features
diff options
context:
space:
mode:
Diffstat (limited to 'testdata/scad/features')
-rw-r--r--testdata/scad/features/background-modifier.scad5
-rw-r--r--testdata/scad/features/highlight-and-background-modifier.scad31
-rw-r--r--testdata/scad/features/highlight-modifier.scad5
-rw-r--r--testdata/scad/features/linear_extrude-scale-tests.scad17
-rw-r--r--testdata/scad/features/linear_extrude-scale-zero-tests.scad56
-rw-r--r--testdata/scad/features/linear_extrude-tests.scad11
6 files changed, 102 insertions, 23 deletions
diff --git a/testdata/scad/features/background-modifier.scad b/testdata/scad/features/background-modifier.scad
index 5430472..d67270e 100644
--- a/testdata/scad/features/background-modifier.scad
+++ b/testdata/scad/features/background-modifier.scad
@@ -3,3 +3,8 @@ difference() {
%cylinder(h=30, r=6, center=true);
}
%if (true) cube([25,6,3], center=true);
+
+%translate([0,-9,0]) difference() {
+ color("green") cube([10,4,10], center=true);
+ color("red") translate([0,-2,0]) sphere(3);
+}
diff --git a/testdata/scad/features/highlight-and-background-modifier.scad b/testdata/scad/features/highlight-and-background-modifier.scad
index 5dca703..d97408b 100644
--- a/testdata/scad/features/highlight-and-background-modifier.scad
+++ b/testdata/scad/features/highlight-and-background-modifier.scad
@@ -1,10 +1,31 @@
difference() {
sphere(r=10);
%#cylinder(h=30, r=6, center=true);
- %#if (true) cube([6,25,3], center=true);
+ %#if (true) cube([25,6,3], center=true);
}
-translate([13,0,0]) difference() {
- sphere(r=10);
- #%cylinder(h=30, r=6, center=true);
- #%if (true) cube([6,25,3], center=true);
+%#translate([0,-9,0]) difference() {
+ color("green") cube([10,4,10], center=true);
+ color("red") translate([0,-2,0]) sphere(3);
+}
+%translate([13,0,0]){
+ difference() {
+ sphere(r=10);
+ cylinder(h=30, r=6, center=true);
+ if (true) cube([25,6,3], center=true);
+ }
+ #translate([0,-9,0]) difference() {
+ color("green") cube([10,4,10], center=true);
+ color("red") translate([0,-2,0]) sphere(3);
+ }
+}
+#translate([26,0,0]){
+ difference() {
+ sphere(r=10);
+ cylinder(h=30, r=6, center=true);
+ if (true) cube([25,6,3], center=true);
+ }
+ %translate([0,-9,0]) difference() {
+ color("green") cube([10,4,10], center=true);
+ color("red") translate([0,-2,0]) sphere(3);
+ }
}
diff --git a/testdata/scad/features/highlight-modifier.scad b/testdata/scad/features/highlight-modifier.scad
index f228d08..2141f58 100644
--- a/testdata/scad/features/highlight-modifier.scad
+++ b/testdata/scad/features/highlight-modifier.scad
@@ -3,3 +3,8 @@ difference() {
#cylinder(h=30, r=6, center=true);
}
#if (true) cube([25,6,3], center=true);
+
+#translate([0,-9,0]) difference() {
+ color("green") cube([10,4,10], center=true);
+ color("red") translate([0,-2,0]) sphere(3);
+}
diff --git a/testdata/scad/features/linear_extrude-scale-tests.scad b/testdata/scad/features/linear_extrude-scale-tests.scad
deleted file mode 100644
index 9a82c9d..0000000
--- a/testdata/scad/features/linear_extrude-scale-tests.scad
+++ /dev/null
@@ -1,17 +0,0 @@
-difference() {
- linear_extrude(height=40, scale=[0, 0]) {
- square(10, center=true);
- translate([10,0]) circle(10);
- }
- translate([0,0,35]) sphere(10);
-}
-
-/*
-Test case ideas:
-o off-center starting point
-o Concave polygon
-o Disjoint polygons
-o multi-rotation twist
-o zero scales, zero scales in only one axis (for the above cases)
-o boolean operations on scaled extrusion (including zero scale)
-*/
diff --git a/testdata/scad/features/linear_extrude-scale-zero-tests.scad b/testdata/scad/features/linear_extrude-scale-zero-tests.scad
new file mode 100644
index 0000000..8a85203
--- /dev/null
+++ b/testdata/scad/features/linear_extrude-scale-zero-tests.scad
@@ -0,0 +1,56 @@
+// test cases for linear extrude with scale
+// by TakeItAndRun 2013
+
+// syntax: linear_extrude(height=a, slices=b, twist=c, scale=[x,y])
+
+a=3;
+b=20;
+c=0;
+x=1;
+y=1;
+
+module linear_extrudes_of_different_shapes(a=a,b=b,c=c,x=x,y=y) {
+ translate(00*[4,0,0])
+ // linear_extrude of shape with hole
+ linear_extrude(height=a, slices=b, twist=c, scale=[x,y])
+ difference() {
+ square(2,true); square(1,true);
+ }
+
+ translate(01*[4,0,0])
+ // linear_extrude of disjoint polygons shapes
+ linear_extrude(height=a, slices=b, twist=c, scale=[x,y]) {
+ translate([1,0,0]) square(1,true);
+ translate([-1,0,0]) square(1,true);
+ }
+
+ translate(02*[4,0,0])
+ // linear_extrude with a coplanar face
+ linear_extrude(height=a, slices=b, twist=c, scale=[x,y]) {
+ translate([.5,0,0])square();
+ translate([-.5,0,0])square();
+ }
+
+ translate(03*[4,0,0])
+ // linear_extrude with internal hole and one coplanar edge
+ linear_extrude(height=a, slices=b, twist=c, scale=[x,y])
+ difference() {
+ square(2,true);
+ translate([-0.5,0,0]) square(1,true);
+ }
+}
+
+
+// Test varying parameters
+translate(00*[0,3,0])
+linear_extrudes_of_different_shapes(c=0,x=0,y=y);
+translate(01*[0,3,0])
+linear_extrudes_of_different_shapes(c=0,x=x,y=0);
+translate(02*[0,3,0])
+linear_extrudes_of_different_shapes(c=0,x=0,y=0);
+translate(03*[0,3,0])
+linear_extrudes_of_different_shapes(c=180,x=0,y=y);
+translate(04*[0,3,0])
+linear_extrudes_of_different_shapes(c=180,x=x,y=0);
+translate(05*[0,3,0])
+linear_extrudes_of_different_shapes(c=180,x=0,y=0);
diff --git a/testdata/scad/features/linear_extrude-tests.scad b/testdata/scad/features/linear_extrude-tests.scad
index 67d892f..528eea2 100644
--- a/testdata/scad/features/linear_extrude-tests.scad
+++ b/testdata/scad/features/linear_extrude-tests.scad
@@ -12,4 +12,13 @@ translate([31.5,2.5,0]) linear_extrude(height=10, twist=-45) polygon(points = [[
translate([0,20,0]) linear_extrude(height=20, twist=45, slices=2) square([10,10]);
translate([19,20,0]) linear_extrude(height=20, twist=45, slices=10) square([10,10]);
-translate([-15,0,0]) linear_extrude(5) square([10,10]);
+translate([0,-15,0]) linear_extrude(5) square([10,10]);
+
+// scale given as a scalar
+translate([-25,-10,0]) linear_extrude(height=10, scale=2) square(5, center=true);
+// scale given as a 3-dim vector
+translate([-15,20,0]) linear_extrude(height=20, scale=[4,5,6]) square(10);
+// scale is negative
+translate([-10,5,0]) linear_extrude(height=15, scale=-2) square(10, center=true);
+// scale given as undefined
+translate([-15,-15,0]) linear_extrude(height=10, scale=var_undef) square(10);
contact: Jan Huwald // Impressum