diff options
-rw-r--r-- | testdata/scad/bugs/issue95-normalization-crash.scad | 135 |
1 files changed, 13 insertions, 122 deletions
diff --git a/testdata/scad/bugs/issue95-normalization-crash.scad b/testdata/scad/bugs/issue95-normalization-crash.scad index 10a3f66..7bca8ed 100644 --- a/testdata/scad/bugs/issue95-normalization-crash.scad +++ b/testdata/scad/bugs/issue95-normalization-crash.scad @@ -1,128 +1,19 @@ // // Reported by Triffid Hunter. -// Causes a crash in CCGTermNormalizer::normalizePass() +// Causes a crash in CSGTermNormalizer::normalizePass() // -pi = 3.141592653589; -sl = 0.5; +difference() { + union() { + translate([0, -20, 0]) cube([30, 2, 40]); + cube(); + } -w = 400; - -pulley_diam = 28; -bearing_diam = 22; //include size of bearing guides - -module crx(size=[1, 1, 1]) { - linear_extrude(height=size[2]) - square([size[0], size[1]], center=true); + translate([15.5, -19, 14]) { + cylinder(r=5, h=2); + rotate([-90, 0, 0]) difference() { + translate([0, 0, 2]) cylinder(r=2, h=3); + translate([0, 0, 4]) cylinder(h=2); + } + } } - -module cyl(r=1, h=1, center=false) { - cylinder(r=r, h=h, center=center, $fn=r * 2 * pi / sl); -} - -module lm8uu() { - cyl(r=15 /2, h=24); -} - -module nema17() { - translate([0, 0, -48]) crx([42, 42, 48]); - translate([0, 0, -1]) { - cyl(r=2.5, h=26); - cyl(r=22.5 / 2, h=3.1); - } - translate([0, 0, 2.1]) { - difference() { - cyl(r=pulley_diam / 2, h=11.5); - translate([0, 0, (11.5 - 8) / 2]) rotate_extrude() - translate([21.5 / 2, 0]) - square(8); - } - } - cyl(r=17.5 / 2, h=19.5); - for (i=[0:3]) { - rotate([0, 0, i * 90]) - translate([31 / 2, 31 / 2, -1]) { - cyl(r=1.5, h=11); - translate([0, 0, 5.5]) - cyl(r=4, h=30); - } - } -} - -module bearing608() { - cyl(r=bearing_diam / 2, h = 7); -} - -module rods() { - for (i=[0:1]) { - translate([25, 0, i * 70]) - rotate([0, -90, 0]) - cyl(r=4, h=420); - } - - translate([0, 10, -40]) { - cyl(r=3, h=150); - translate([0, 0, 34]) cylinder(r=10 / cos(180 / 6) / 2, h=6, $fn=6); - } - - translate([30, 10, -40]) { - cyl(r=4, h=150); - } -} - -module lm8uu_holder() { - render() - difference() { - union() { - translate([0, 0, -13]) difference() { - hull() { - translate([-9, -9, -1]) cube([18, 1, 28]); - translate([0, 1, -1]) cyl(r=18 / 2, h = 28); - } - translate([-10, 5, -1]) cube([20, 10, 28]); - translate([-10, -3, 11 - 5]) cube([20, 20, 4]); - translate([-10, -3, 11 + 5]) cube([20, 20, 4]); - } - } - translate([0, 0, -11]) { - hull() { - #lm8uu(); - translate([0, 10, 0]) cyl(r=6, h=24); - } - translate([0, 0, -3]) hull() { - cyl(r=5, h=30); - translate([0, 10, 0]) cyl(r=5, h=30); - } - } - } -} - -module x_end_motor() { - difference() { - union() { - translate([-10, -18, -19]) #cube([50, 2, 90]); - translate([30, 10, 60]) lm8uu_holder(); - translate([30, 10, -5]) lm8uu_holder(); - } - #rods(); - - translate([15.5, -19, 14]) { - rotate([90, 0, 0]) cyl(r=30 / 2, h= 50, center=true); - rotate([-90, 45, 0]) - #nema17(); - translate([-w, 4, 0]) - rotate([-90, 0, 0]) - bearing608(); - translate([0, 5, 0]) hull() { - #translate([0, 0, 24 / 2 - 1.5]) cube([1, 5, 1.5]); - #translate([-w, 0, bearing_diam / 2 ]) cube([1, 5, 1.5]); - } - translate([0, 5, 0]) hull() { - #translate([0, 0, 24 / -2]) cube([1, 5, 1.5]); - #translate([-w, 0, bearing_diam / -2 - 1.5]) cube([1, 5, 1.5]); - } - } - } -} - -x_end_motor();
\ No newline at end of file |